PHP代码审计实战之XDcms

xiaoxiao2021-02-28  11

这里主要讲v2.0.8版本的XDcms中的一个基于错误的SQL注入漏洞,较v2.0.7版本而言修复了很多注入漏洞,使得注入漏洞大为减少。

至于CMS的下载配置等就不说了,直接审计吧~

先整体看,点击index.php,先判断是否存在文件config.inc.php,若不存在则重定向去安装;然后就是通过require()函数包含/system/common.inc.php文件:

查看/system/common.inc.php文件,看到很多都是定义变量,期间都有包含一些文件,每个文件都点击进去查看一下,其中最值得关注的就是最后的fun.inc.php:

查看该文件发现先包含了几个文件然后就是定义各个函数,其中一个global.inc.php文件显得比较重要,因为涉及到全局变量的东西:

进入global.inc.php文件中查看,有发现对接收的参数进行过滤的操作:

看到其中有两个对输入参数进行过滤的函数,进行查看,知道该函数的定义是在fun.inc.php中:

该过滤作用很强,几乎绕过不了,但是可以发现的就是调用该函数进行过滤时只是对GET方法进行过滤,在这里没有对POST等方法进行过滤,接着搜索一下关于$_POST的内容看看,其中POST很多都进行了过滤,但是有的会遗漏,其中有文件是涉及到SQL的delete语句便利用不到了,找到其中的一个文件\system\modules\member\index.php:

注意到$fields这个变量没有被过滤且是一个数组,因为该页面是注册页面的主页,所以通过注册一个用户的信息并用火狐的Live HTTP headers插件来进行抓包:

POST发送的内容为:username=aaaaaa&password=123456&password2=123456&fields[truename]=aaaaaa&fields[email]=aaaaaa&submit=+ע+

转载请注明原文地址: https://www.6miu.com/read-1750189.html

最新回复(0)