SQL注入
正则搜索(update|select|insert|delete).*?where.*=
示例一:
bluecms源码下载:source-trace/bluecms
以项目打开网站根目录,并以ctrl+shift+f打开全局搜索
(update|select|insert|delete).*?where.*=
并开启正则匹配
最快寻找脆弱点的方法:
1、是否有可控的值
2、文件路径和文件名字猜测文件作用
3、有无过滤,或者过滤是否严格
这里就不浪费时间,直接测试ad_js.php文件内的sql注入
发现使用了自定义的getone函数,那么跳转到对应函数声明
查看getone函数
发现这里调用了类里的query函数
发现这里使用mysql_query函数,进行的sql语句,中间没有任何过滤,那么就存在sql注入
$ad_id参数来自于get传参
查看blue_ad内有7个字段
payload:1 union select 1,2,3,4,5,6,user()
发现没有回显,查看源代码
原来回显藏在html注释里面了
示例二:
emlog V6.0.0源码下载:https://soft-10-2.xiaoguaniu.com/soft/202105/Emlog_V6.0.0_XiTongZhiJia.zip?t=1731583487&ip=112.193.34.227&sign=25a70a465fbab4f660c316a902907b96
依旧使用正则搜索法寻找定位脆弱点,为了节约时间,直接定位漏洞文件comment.php
这里有调用一个自定义函数,看函数名应该是通过IP删除评论的意思
这里将$sql变量传入了db的query方法
发现这直到sql执行都没有过滤方法,那么存在sql注入
刚刚是通过$CACHE->updateCache(array(‘sta’,‘comment’));转到执行的,这个代码文件路径:/admin/comment.php
并且要使得$action= ‘delbyip’
插入调试代码 echo ‘qdy’;
构造发包,发现执行了调试代码,但是报错
寻找报错代码
缺少token,登录后台后复制token
发现还需要$ip参数,加入echo 调试
IP取值
构造payload
/admin/comment.php?action=delbyip&token=c0d72b51591583bca22cbc112e85b4ff&ip=127.0.0.1’+and+updatexml(1,concat(0x7e,user(),0x7e),1)–+
成功
mysql监听工具
https://codeload.github.com/cw1997/MySQL-Monitor/zip/refs/heads/master
存中…(img-oyGEHH9H-1731596090466)]
成功
mysql监听工具
https://codeload.github.com/cw1997/MySQL-Monitor/zip/refs/heads/master