PHP审计:SQL注入类
PHP审计:SQL注入类
漏洞本质:特定函数+可控变量
本章内容:基于SQL注入的代码审计
一.数据库监控
eg.1:QQ业务源码系统-(无过滤)
1.数据库SQL监控排查可利用语句定向分析
2.刷新页面seay数据库监控得到可能存在的变量127.0.0.1
3.找到代码中对应执行的sql语句
4.定位函数ywdd发现XFF头注入
这里可以改变XFF在数据库监控验证变量是否可控
5.构造payload插入数据包:
X-Forwarded-for: 127.0.0.1' and 1=2 union select 1,user(),3,4,5#
二.正则匹配
常用sql注入函数正则匹配,IDE内ctrl+shift+f全局检索
(update|select|insert|delete|).?where.=
eg.2:Bluecms源码系统-(无过滤)
三.动态调试技术
动态调试配置:phpStudy + PhpStorm + XDebug
https://blog.csdn.net/nzjdsds/article/details/100114242
1)先确定PHP版本有Xdebug
2)php.ini配置写入并开启Xdebug
3)PhpStorm设置端口及IDEY并测试
4)PhpStorm开启监听并运行断点访问
四.文件对比技术
工具:Beyond Compare 4
CNVD拿1DAY
eg.3LmxCMS V1.4后台Bo.cl.php文件存在SQL注入漏洞
https://www.cnvd.org.cn/flaw/show/CNVD-2020-59466
过程省略
构造payload:
http://localhost/lmxcms1.4/admin.php?m=book&a=reply&id=1)%20and%20updatexml(0,concat(0x7e,user()),1)%23
eg.4LmxCMS V1.4前台Ta.cl.php存在SQL注入漏洞
https://www.cnvd.org.cn/flaw/show/CNVD-2019-05674
1.定位对应文件以及参数:
2.跟踪定位SQL语句:
3.查看过滤为addslashes,可通过urldecode两次编码绕过:
4.构造payload:
http://localhost/lmxcms1.4/?m=tags&name=a' and updatexml(0%2Cconcat(0x7e%2Cuser())%2C1)%23
5.使用Beyond Compare 4对比1.4与1.41文件代码不同,发现更新版本过滤情况:更新为先过滤,再解码从而规避注入。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现