Bypass-绕过

bypass方法知识点

  • 等价替换
  • 大小写替换
  • 不常用函数
  • 特殊符号
  • 编码
  • 注释

等价替换

等价符号

    <> 等于 BETWEEN
    =  等于 like

等价函数

    hex() bin()         等于   ascii()
    sleep()             等于   benchmark()
    mid()substring()    等于   substr()
    @@user              等于   user()
    @@version           等于   version()
例子
    And ‘1’ like IF(ascii(substr(user(),1,1)) LiKe 113,1,sleep(5))

 Substr()截取user()用户名第一位 为r
 Ascii(‘r’) 将r 转换成ascii码
 If()判断114 Like(=) 113 如果等于值为1如果不等于Sleep(延时)5秒

大小写替换

like    等于  LiKe,Like,LiKE
and     等于  AND,aND,And

不常用函数

 一般经常在报错注入中使用,原因是因为waf可能没考虑到这些函数的危害。

        floor()
        extractvalue()
        updatexml()
        exp()

特殊符号

    + - @ ! ~

编码

 普通的URL编码就不再过多叙述,但是在有些数据传输过程中可以采用双重URL编码测试

Unicode编码

个别特殊符号

单引号
    %u0027、%u02b9、%u02bc%u02c8、%u2032、%uff07、%c0%27、%c0%a7、%e0%80%a7
空格
    %u0020、%uff00、%c0%20、%c0%a0、%e0%80%a0
左括号
    %u0028、%uff08、%c0%28、%c0%a8、%e0%80%a8
右括号
    %u0029、%uff09、%c0%29、%c0%a9、%e0%80%a9

十六进制编码

 在有的情况下通过注入点写shell的时候,我们一般把shell code转换为十六进制,其一因为数据库自动转换,其二是因为可以逃避WAF针对特殊字符拦截。

注释

 某些情况下,针对不同的数据库采用不同的注释混淆,也可以bypass

普通注释:/**/、-- 、# ...
内联注释(mysql,maredb):/*!*/

(注)不定期更新方法.....

鸣谢:一夜知安,原帖地址:https://zhuanlan.zhihu.com/p/25724834

本文由 秋边丶 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论