文章总结: 本文总结了10种绕过Web访问控制403禁止访问的高级技术,包括协议降级、HTTP管线化长度折叠、反向代理配置逃逸、CRLF注入、微服务路由错误及GraphQL注入等。文章重点利用WAF与后端解析差异及配置漏洞进行攻击,提供了具体请求构造示例,对渗透测试实战具有高度参考价值。 综合评分: 88 文章分类: 渗透测试,WEB安全,漏洞分析,实战经验,红队
403可以这么绕
原创
01iver Sec
01iver的安全小圈
2026年1月12日 17:00 北京
403绕过:👇
在访问 /admin 路径时遇到了 403 禁止访问的拦截。
但随后可以尝试这些方法:
- 发送 POST 请求访问 /admin
- 增加请求头:X-Original-URL: /admin
- 访问路径改为:/admin..;/
- 访问路径改为:%2e/admin
- 增加请求头:X-Rewrite-URL: /admin
- 访问路径改为:/ADMIN(没错,就是简单的大写)
- 访问路径改为:/;/admin
- 访问路径改为:/..;/admin
👇👇👇
🔥 1. 协议级降级绕过(仅适用于双协议栈应用)
目标服务器运行 HTTP/2 或 gRPC 协议?强制降级协议:
PRI * HTTP/2.0 SM
GET /admin HTTP/1.1
🧠 原理:部分 Web 应用防火墙(WAF)无法正确解析双层协议结构 → 后端服务器会接收到一个干净的 HTTP/1.1 请求。
🧬 2. 基于 HTTP 管线化的内容长度折叠攻击(可参考http://CL.CL)
发送管线化请求,让 Web 应用防火墙(WAF)只解析第一个请求:
POST /admin HTTP/1.1 Host: http://target.com Content-Length: 13
GET /admin
💥 攻击效果:WAF 识别到 POST 请求 → 触发拦截规则;
后端服务器读取到第二个 GET /admin 请求 → 返回 200 正常响应。
这种攻击对绝大多数 WAF 来说都是隐身的。
🚪 3. 配置错误的反向代理链逃逸
假设目标代理链为:Cloudflare → NGINX → Apache
尝试发送请求头:
GET /adminX-Accel-Redirect: /adminX-Forwarded-Path: /admin
原理:Apache 服务器会遵循 X-Accel-Redirect 头的指令,绕过上游的身份验证检查。
💣 实战案例:通过该方法成功访问了 Cloudflare 防护后的内部管理面板。
🔄 4. 利用回车换行符(CRLF)注入实现重写规则绕过
部分边缘 WAF 会在检测到回车换行符(\r\n)时停止解析,而另一些则不会。
利用这个差异构造请求:
GET / HTTP/1.1%0d%0aX-Rewrite-URL:%20/admin
攻击效果:WAF 只解析到正常的 URL → 判定为合法请求;
后端服务器识别到 X-Rewrite-URL: /admin 头 → 执行对应的管理路径请求。
🔃 5. 多部分请求边界注入绕过(高危💀)
适用于 /admin 路径仅对文件上传接口开放的场景:
POST /upload HTTP/1.1 Content-Type: multipart/form-data; boundary=----1337
------1337 Content-Disposition: form-data; name="file"; filename="/admin" Content-Type: text/plain
BOOM ------1337--
💣 攻击效果:如果文件上传接口允许写入任意路径 → 可实现对目标路径的完全覆盖控制。
📡 6. 借助服务发现机制的微服务路由错误绕过
在 Kubernetes、Linkerd、Istio 这类微服务架构中,内部路由可能会被暴露。
构造请求头:
Host: admin.internal.svc.cluster.localX-Service-Router: admin
原理:如果服务网格配置错误,即使 /admin 路径对外返回 403,你也能直接路由到内部的管理服务。
⚠️ 7. GraphQL 注入式 403 绕过
如果目标应用部署了 GraphQL 接口,且 /admin 路径被 403 保护,尝试执行以下查询:
query { admin { users { password } }}
原理:GraphQL 通常会代理内部微服务的调用请求。
即使 /admin 路径通过 HTTP 层被拦截,GraphQL 接口仍可能泄露内部路径信息。
🧠 8. 预连接请求过载 → 实现绕过
利用边缘节点的预连接逻辑漏洞,发送大量的 HEAD /admin 请求并携带请求头 Connection: keep-alive。
发送 30-50 次请求后:
-
WAF 会因资源耗尽停止解析请求
-
复用已建立的长连接发送真实的 GET /admin 请求
🧨 实战效果:通过持久连接信道实现成功绕过。
💻 9. 仅浏览器环境有效的令牌认证绕过(借助无头浏览器)
部分单页应用(SPA)会通过 JavaScript 加载认证令牌 → 并基于 localStorage 中的令牌保护 /admin 路径。
WAF 会判定请求未携带有效认证信息,但无头 Chrome 浏览器可以提取令牌并添加到请求头实现绕过:
curl -H “Authorization: Bearer
🔥 工具推荐:使用 puppeteer + exportAuth 工具提取并复用令牌。
🧪 10. 分布式重试放大攻击
当目标服务器使用边缘 Lambda 函数或 WAF,且会对失败请求执行内部重试时,发送以下请求头触发 429 请求超限错误:
Retry-After: 0X-Retry-URL: /admin
原理:WAF 在重试请求时 → 会跳过原有的拦截逻辑 → 导致后端服务器执行 /admin 路径请求。
注意:这是一种逻辑投毒攻击 —— 而非暴力破解。
#
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:01iver的安全小圈 01iver Sec《403可以这么绕》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







评论