第二章:遇到阻难!绕过WAF过滤
字数 1093 2025-08-11 21:26:21

绕过WAF过滤的SQL注入技术详解

0X01 目标站点获取

  • 首先需要确定目标站点,本例中为http://kypt8004.ia.aqlab.cn/
  • 目标页面为shownews.asp,这是一个典型的ASP动态页面

0X02 注入点查找

  1. 访问目标网站并寻找可能存在SQL注入的页面
  2. 测试常见注入点参数(如id、name等)
  3. 本例中通过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并解压
  • 将整个文件夹拖入浏览器扩展程序(本例使用火狐浏览器)

注入步骤

  1. 添加Cookie请求头:id=171
  2. 访问目标URL:http://kypt8004.ia.aqlab.cn/shownews.asp
  3. 确认与直接访问效果相同,说明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

  1. 使用获取的凭证登录后台:admin/welcome
  2. 成功获取flag:zkz{welcome-control}

0X06 技术总结

完整渗透流程

  1. 查找可注入页面(如带参数的动态页面)
  2. 测试是否存在SQL注入点
  3. 检测WAF存在并分析拦截规则
  4. 尝试不同注入方式绕过WAF(本例使用Cookie注入)
  5. 逐步获取数据库信息
  6. 获取管理员凭证并破解
  7. 登录后台获取最终目标

WAF绕过技巧

  • 当GET/POST参数被拦截时,尝试:
    • Cookie注入
    • HTTP头注入
    • 其他非标准参数注入
  • 使用工具修改请求头(如ModHeader)
  • 尝试不同编码方式绕过过滤

防御建议

  1. 对所有输入参数进行严格过滤,包括Cookie
  2. 使用参数化查询或ORM框架
  3. 实施最小权限原则
  4. 对敏感信息进行加密存储
  5. 定期进行安全审计和渗透测试

附录:常用注入语句参考

基础检测

and 1=1
and 1=2
'"

字段数探测

order by n

联合查询

union select 1,2,...,n

数据获取

union select 1,column_name,3,...,n from table_name
绕过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: 页面回显显示字段2,3,7,8,9为可显示位置 0X04 数据查询 获取管理员凭证 构造payload查询admin表的用户名和密码: 获取到账号密码: admin/b9a2a2b5dffb918c 对密码进行破解(本例中未展示具体破解方法) 0X05 获取flag 使用获取的凭证登录后台: admin/welcome 成功获取flag: zkz{welcome-control} 0X06 技术总结 完整渗透流程 查找可注入页面(如带参数的动态页面) 测试是否存在SQL注入点 检测WAF存在并分析拦截规则 尝试不同注入方式绕过WAF(本例使用Cookie注入) 逐步获取数据库信息 获取管理员凭证并破解 登录后台获取最终目标 WAF绕过技巧 当GET/POST参数被拦截时,尝试: Cookie注入 HTTP头注入 其他非标准参数注入 使用工具修改请求头(如ModHeader) 尝试不同编码方式绕过过滤 防御建议 对所有输入参数进行严格过滤,包括Cookie 使用参数化查询或ORM框架 实施最小权限原则 对敏感信息进行加密存储 定期进行安全审计和渗透测试 附录:常用注入语句参考 基础检测 字段数探测 联合查询 数据获取