You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何绕过Modsecurity+CRS v3.3防护对DVWA实施Web攻击?

ModSecurity + CRS v3.3 防护环境下DVWA靶场Web攻击绕过实操思路

基础规则逻辑说明

  • CRS v3.3 默认运行在Paranoia Level 1(偏执度1级),核心拦截逻辑为特征匹配+异常分累计,默认入站请求异常分阈值为5,无原生语义分析能力,存在明确可利用的绕过空间
  • 测试前先开启ModSecurity审计日志,每次被拦截后优先定位命中的规则ID、具体匹配的特征串,针对性调整payload,不要盲目随机替换内容
  • 优先从DVWA Low/Medium安全等级开始验证绕过逻辑,验证通过后再适配High等级的代码限制

SQL注入绕过方案

  • 关键字拆分:利用MySQL语法支持的注释拆分被规则拦截的连续关键字,注释内填充无意义随机字符串即可,不要使用/*a*/这类被规则收录的常见填充内容,示例:
    • 被拦截payload:?id=1' union select 1,version()-- -
    • 绕过payload:?id=1'/*xyz*/union/*abc*/select%a01,version()-- -
      其中%a0是MySQL可识别的非断行空白符,CRS PL1规则未将其纳入空格匹配范围,可替代普通空格绕过空格检测
  • 编码替换:
    • GET请求场景下,仅对被规则匹配的特殊字符做URL编码,比如单引号编为%27、等号编为%3d,不要对整个payload做全编码避免后端无法解析
    • 字符串参数用十六进制格式替代单引号包裹的字符串,比如查表名时的'users'替换为0x7573657273,无需额外加单引号
  • 等价语法替换:将被拦截的语法替换为语义相同的其他写法,比如用||替代or做逻辑判断、用like替代=做值匹配、用updatexml()/extractvalue()报错注入替代联合查询注入、用group_concat()拼接多行查询结果
  • 参数污染:GET/POST请求中重复传递同名参数,比如?id=1&id=2' union select 1,database()-- -,ModSecurity默认会校验第一个传入的参数值(无恶意特征),PHP后端会取最后一个参数值传入SQL执行
  • 分块传输:POST请求场景下开启HTTP分块传输,将payload拆分为1-2字节的小块逐段传输,未开启分块重组配置的ModSecurity无法匹配完整payload特征,直接绕过检测

XSS绕过方案

  • 标签/属性混淆:CRS PL1等级默认未开启全大小写模糊匹配、未覆盖所有HTML事件属性,可通过大小写混写、插入随机空白字符拆分标签和属性,示例:
    • 被拦截payload:<script>alert(1)</script>
    • 绕过payload:<ScRiPt%0a>alert(1)</ScRiPt> 或 <img%0dsrc=x%0aonerror=alert(1)>
  • 多层编码嵌套:根据上下文选择对应编码方式,HTML上下文用HTML实体编码拆分关键字,比如onerror写为on&#101;rror;JS上下文用Unicode/八进制编码拆分函数名,比如alert写为\u0061lert,编码层级匹配浏览器解析顺序即可正常执行
  • 事件拼接:利用JS字符串拼接特性拆分被拦截的敏感函数名,比如<body onload="al"+"ert(1)">,规则无法匹配完整的敏感函数特征就不会触发拦截

CSRF绕过方案

CRS v3.3 原生CSRF防护规则覆盖度极低,仅做简单的Referer头字符串匹配,绕过成本极低:

  • 空Referer绕过:构造攻击页面时添加Referrer-Policy: no-referrer响应头,让浏览器发起请求时不携带Referer字段,PL1等级默认放行无Referer的请求
  • Referer字符串匹配绕过:如果规则仅校验Referer中是否包含目标站点域名,将攻击页面的文件名设置为包含目标域名的形式,比如test_dvwa.com.html,发起请求时Referer会携带该文件名,可骗过简单的子串匹配校验
  • 跨域表单提交:直接构造普通form表单提交跨域请求,不要使用带自定义头的AJAX请求,普通表单提交不会触发CORS预检,CRS无有效规则识别这类跨域提交行为

高等级规则适配提示

如果目标环境CRS开启了PL2/PL3等级,单纯关键字替换的绕过成功率会大幅下降,优先使用分块传输、参数污染、HTTP参数污染(HPP)这类基于WAF和后端解析差异的手法,不要在特征替换上浪费时间。

内容的提问来源于stack exchange,提问作者Amani Hassani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 22:06:25