zzcmsV8.2之SQL注入漏洞审计

1、漏洞发现:

发现注入点存在/user/del.php文件下。

zzcmsV8.2之SQL注入漏洞审计

注入点存在于第141行(142为自己添加的测试代码),注入参数为tablename,此处tablename接收时未经过任何安全检查。

zzcmsV8.2之SQL注入漏洞审计

可见,只对$id进行了安全检查。

 

2、漏洞验证:

首先,通篇阅读del.php文件,掌握逻辑结构,发现主要针对tablename传入的参数值进行选择和判定。

zzcmsV8.2之SQL注入漏洞审计

zzcmsV8.2之SQL注入漏洞审计

这里的使用tablename进行查询的语句都存在注入点,选走后一个条件构造,将参数值设置为一个文件中没有出现过的表名,则进入最后一个else条件。

然后抓包,构造payload(没有回显,采用时间盲注):id%5B%5D=1&tablename=zzcms_zx where id=1 and if((ascii(substr(user(),1,1)) =112),sleep(5),1)%23

如果查询到user()的第一个字母是‘r’(我的用户是root),则休眠5秒。

zzcmsV8.2之SQL注入漏洞审计

zzcmsV8.2之SQL注入漏洞审计

也可以将$sql输出,放到navicat里面测试,效果更明显。

这样就可以写poc**了。