目录
前置知识
正则表达式挖掘思路(通用漏洞思路)
功能点挖掘思路(通用漏洞思路)
案例一:数据库监控-QQ 业务源码系统-(无过滤)
案例二:正则表达式-Bluecms 源码系统-(无过滤)
案例三: CNVD 拿 1DAY-梦想 CMS 源码系统-(有过滤)
梦想 CMS 后台 Bo***.cl***.php 文件存在 SQL 注入漏洞
LmxCMS V1.4 前台 Ta***.cl***.php 存在 SQL 注入漏洞
案例四:两种代码审计的思路
文件对比技术
动态调试技术
前置知识
正则表达式挖掘思路(通用漏洞思路)
功能点挖掘思路(通用漏洞思路)
案例一:数据库监控-QQ 业务源码系统-(无过滤)
效率高但是只针对sql注入
源码部署以后,利用代码审计的数据库监控程序
导入项目进行语句查找,like后面的数据得删掉,因为ip不在里面写,是数据包中导入的ip是从这个函数中得来的,全局搜索这个函数的来源
查找这个函数的来源
函数定位
看到这里就明白了可以进行xff注入
成功
后面就是正常的手工注入的流程
案例二:正则表达式-Bluecms 源码系统-(无过滤)
使用正则表达式过滤
(update|select|insert|delete|).*?where.*=
这里我用的的是vscode,点击目录,按住ctrl+shift+f,输入正则表达式
需要关注这种变量可以控制的
查看定义
查看到了query函数
对用户输入没有进行完整的过滤
让sql语句输出出来,以此来方便调试
执行
sql注入无回显,可以利用延时注入
这里直接扔到sqlmap中
案例三: CNVD 拿 1DAY-梦想 CMS 源码系统-(有过滤)
mvc框架(各司其职)
梦想 CMS 后台 Bo***.cl***.php 文件存在 SQL 注入漏洞
cnvd地址:https://www.cnvd.org.cn/flaw/show/CNVD-2020-59466
mvc框架访问方式
分析
id参数是由用户输入
终于看到了sql注入语句
让sql语句输出
触发sql语句
query函数里面执行sql语句里面有sql注入的报错语句,可以执行报错注入
测试payload
m=Book&a=reply&id=1)%20and%20updatexml(0,concat(0x7e,user()),1) --+
LmxCMS V1.4 前台 Ta***.cl***.php 存在 SQL 注入漏洞
cnvd地址:https://www.cnvd.org.cn/flaw/show/CNVD-2019-05674
查看该目录,发现有两个变量
查看函数定义
存在的绕过点
sql注入点
继续跟踪查看到了sql注入语句
让sql语句输出
触发
把sql注入语句进行两次url编码
注入
案例四:两种代码审计的思路
文件对比技术
利用软件beyond compare直接选择文件夹比较,把两个文件拖进去
这里下载了两个版本lmx,利用软件beyond compare,有颜色变化的就是做过修改的地方
这个文件
查看新旧版本在编写上的区别,从而推断出来旧版本的问题
动态调试技术
配置参考文献:https://blog.csdn.net/nzjdsds/article/details/100114242
首先需要开启phpstudy的xedebug
然后再php.ini文末加入下面的代码
[XDebug]
xdebug.profiler_append = 0
;效能监测的设置开关
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
;profiler_enable设置为1的时候,效能监测信息写入文件所在的目录
xdebug.profiler_output_dir="D:\phpstudy\tmp\xdebug"
;设置的函数调用监测信息的输出路径
xdebug.trace_output_dir="D:\phpstudy\tmp\xdebug"
;生成的效能监测文件的名字
xdebug.profiler_output_name ="cache.out.%t-%s"
; IDE与XDebug协作
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000
xdebug.idekey = phpstorm-xdebug
;.dll文件的路径
zend_extension="D:\phpstudy\PHPTutorial\php\php-5.4.45\ext\php_xdebug.dll"
配置phpstorm
配置端口
验证是否配置成功
下断点
执行后会自动启动页面
要触发data数据这里需要利用刚才的payload
m=tags&name=%25%36%31%25%32%37%25%32%30%25%36%31%25%36%65%25%36%34%25%32%30%25%37%35%25%37%30%25%36%34%25%36%31%25%37%34%25%36%35%25%37%38%25%36%64%25%36%63%25%32%38%25%33%30%25%32%63%25%36%33%25%36%66%25%36%65%25%36%33%25%36%31%25%37%34%25%32%38%25%33%30%25%37%38%25%33%37%25%36%35%25%32%63%25%37%35%25%37%33%25%36%35%25%37%32%25%32%38%25%32%39%25%32%39%25%32%63%25%33%31%25%32%39%25%32%33
往下执行可以看到执行到哪一步了,并且可以看到对应的变量和值