文章总结: 本文详细分析了一套PHP小众源码中的SQL注入漏洞挖掘过程,发现dostrslashes()函数对单引号的过滤存在缺陷,结合input()和where()函数的多重过滤机制仍可被绕过,最终通过find()函数执行恶意SQL语句导致注入,并展示了漏洞证明。 综合评分: 85 文章分类: 代码审计,漏洞分析,web安全,安全开发
代码审计 一次SQL注入漏洞挖掘
原创
moonsec moonsec
moonsec
2026年4月14日 11:08 广东
在小说阅读器读本章
去阅读
免责声明:本公众号所提供的文字和信息仅供学习和研究使用,不得用于任何非法用途。我们强烈谴责任何非法活动,并严格遵守法律法规。读者应该自觉遵守法律法规,不得利用本公众号所提供的信息从事任何违法活动。本公众号不对读者的任何违法行为承担任何责任。
一、简介
最近分析了一套php的小众源码。发现了一个SQL注入漏洞 觉得有点意思。
二、过程
在index.php 存在函数 doStrslashes()函数
这个函数的作用是对全局输入的参数过滤 主要的作用是将特殊字符'转换成\'
创建函数进行测试
对特殊字符过滤
这套系统还有其他方式接受参数 input函数
跟进函数分析
主要的作用是对传入的参数进行分类获取。这样依旧会进行过滤 因为一开始的时候 必须经过 doStrslashes函数再进入input函数。 传入的参数对进入where函数
跟进where函数 对token的值进行处理。
接着进入 escapeString函数 作用是对\'在进行一次过滤
变成 $0 = '1\\\''
经过处理最终 token = '1\\''变成这样 这种情况会造成SQL注入
进入 find函数
根据 buildWhere函数
最后到达execute函数执行 调用query执行sql语句
报错进入 error函数 把报错的内容显示出来。
漏洞证明
三.安全培训
如果你想系统掌握网络安全实战技能,从入门到进阶完成一次能力跃迁,我们提供了高质量的培训课程,内容涵盖 Web 安全、内网渗透、红队对抗、代码审计等方向。课程由实战经验丰富的讲师教学,适合零基础或有一定基础的学员。有兴趣了解课程详情,扫一扫 添加月师傅微信
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:moonsec moonsec moonsec《代码审计 一次SQL注入漏洞挖掘》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







评论