发现一个布尔型注入点:
判断库名长度:
首先想到可能处理了空格,简单fuzz下:
发现or (偶数个~) 也可以bypass,如下图:
就用这个进一步获取库名长度:
还是被拦截,猜测是处理了length()或database()函数,函数和括号之间可以拼接一些字符,fuzz如下:
利用注释换行符组合可绕过:
继续判断数据库长度:
首先想到database()被拦截,同样的方法直接加入注释换行符bypass:
substr没有拦截直接跑库名:
借助burp的intruder跑:
借助regexp正则匹配也是ok的,payload如下:
'%20or%0adatabase%23%0a()regexp'%5el'%09or%09'2'like'1
最终跑出结果如下图: