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

154 lines
9.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 403 & 401 Umgehungen
<details>
<summary><strong>Erlernen Sie AWS-Hacking von Null auf Heldenniveau mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
</details>
<figure><img src="../../.gitbook/assets/image (2) (1) (1).png" alt=""><figcaption></figcaption></figure>
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führen Sie einen vollständigen Pentest von überall aus mit 20+ Tools & Funktionen durch, die von der Aufklärung bis zum Bericht reichen. Wir ersetzen keine Pentester - wir entwickeln benutzerdefinierte Tools, Erkennungs- & Exploit-Module, um ihnen etwas Zeit zu geben, tiefer zu graben, Shells zu öffnen und Spaß zu haben.
{% embed url="https://pentest-tools.com/" %}
## Fuzzing von HTTP-Verben/Methoden
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 Antwortheader, möglicherweise werden einige Informationen angezeigt. Zum Beispiel bedeutet eine **200-Antwort** auf **HEAD** mit `Content-Length: 55`, dass das **HEAD-Verb auf die Informationen zugreifen kann**. Sie müssen jedoch immer noch einen Weg finden, um diese Informationen zu extrahieren.
* 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 möglicherweise auch die **von Zwischenproxys hinzugefügten Header** in der Antwort sehen, die nützlich sein könnten.
## Fuzzing von HTTP-Headern
* Ändern Sie den Host-Header auf einen beliebigen Wert ([der hier funktioniert hat](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
* Versuchen Sie, [**andere User Agents**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) zu verwenden, um auf die Ressource zuzugreifen.
* **Fuzz HTTP-Header**: Versuchen Sie, HTTP-Proxy-**Header**, HTTP-Authentifizierung Basic und NTLM-Brute-Force (nur mit einigen Kombinationen) und andere Techniken zu verwenden. Hierfür habe ich das Tool [**fuzzhttpbypass**](https://github.com/carlospolop/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 liegt**, ist es möglicherweise der Proxy, der Sie daran hindert, auf die privaten Informationen zuzugreifen. Versuchen Sie, [**HTTP-Request-Smuggling**](../../pentesting-web/http-request-smuggling/) zu missbrauchen **oder** [**hop-by-hop-Header**](../../pentesting-web/abusing-hop-by-hop-headers.md)**.**
* Fuzz [**spezielle HTTP-Header**](special-http-headers.md), um nach unterschiedlichen Antworten zu suchen.
* **Fuzz spezielle HTTP-Header** während des Fuzzings von **HTTP-Methoden**.
* Entfernen Sie den Host-Header und möglicherweise können Sie den Schutz umgehen.
## Pfad-Fuzzing
Wenn _/Pfad_ blockiert ist:
* Versuchen Sie _**/**_**%2e/Pfad \_(wenn der Zugriff durch einen Proxy blockiert ist, könnte dies den Schutz umgehen). Versuchen Sie auch**\_\*\* /%252e\*\*/Pfad (doppelte URL-Codierung)
* Versuchen Sie **Unicode-Bypass**: _/**%ef%bc%8f**Pfad_ (Die URL-codierten Zeichen sind wie "/"), sodass sie beim Zurückcodieren _//Pfad_ sein werden und möglicherweise haben Sie bereits die _/Pfad_-Namensprüfung umgangen
* **Andere Pfadumgehungen**:
* site.com/geheim > HTTP 403 Verboten
* site.com/GEHEIM > HTTP 200 OK
* site.com/geheim/ > HTTP 200 OK
* site.com/geheim/. > HTTP 200 OK
* site.com//geheim// > HTTP 200 OK
* site.com/./geheim/.. > HTTP 200 OK
* site.com/;/geheim > HTTP 200 OK
* site.com/.;/geheim > HTTP 200 OK
* site.com//;//geheim > HTTP 200 OK
* site.com/geheim.json > HTTP 200 OK (ruby)
* Verwenden Sie all [**diese Liste**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) in den folgenden Situationen:
* /FUZZgeheim
* /FUZZ/geheim
* /geheimFUZZ
* **Andere API-Umgehungen:**
* /v3/Benutzer\_Daten/1234 --> 403 Verboten
* /v1/Benutzer\_Daten/1234 --> 200 OK
* {“id”:111} --> 401 Nicht autorisiert
* {“id”:\[111]} --> 200 OK
* {“id”:111} --> 401 Nicht autorisiert
* {“id”:{“id”:111\}} --> 200 OK
* {"user\_id":"\<legit\_id>","user\_id":"\<victims\_id>"} (JSON-Parameter-Pollution)
* user\_id=ANGREIFER\_ID\&user\_id=OPFER\_ID (Parameter-Pollution)
## **Parametermanipulation**
* Ändern Sie den **Parametewert**: Von **`id=123` --> `id=124`**
* Fügen Sie zusätzliche Parameter zur URL hinzu: `?`**`id=124` —-> `id=124&isAdmin=true`**
* Entfernen Sie die Parameter
* Ordnen Sie die Parameter neu an
* Verwenden Sie Sonderzeichen.
* Führen Sie Grenzwerttests in den Parametern durch - geben Sie Werte wie _-234_ oder _0_ oder _99999999_ an (nur einige Beispielswerte).
## **Protokollversion**
Wenn Sie HTTP/1.1 verwenden, **versuchen Sie, 1.0 zu verwenden** oder testen Sie sogar, ob es **2.0 unterstützt**.
## **Andere Umgehungen**
* Holen Sie sich die **IP** oder **CNAME** der Domain und versuchen Sie, **direkt Kontakt aufzunehmen**.
* Versuchen Sie, den Server zu **überlasten**, indem Sie häufige GET-Anfragen senden ([Es hat bei diesem Typen mit Facebook funktioniert](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
* **Ändern Sie das Protokoll**: von http zu https oder von https zu http
* Gehen Sie zu [**https://archive.org/web/**](https://archive.org/web/) und prüfen Sie, ob diese Datei in der Vergangenheit **weltweit zugänglich** war.
## **Brute Force**
* **Erraten Sie das Passwort**: Testen Sie die folgenden gängigen Anmeldeinformationen. Wissen Sie etwas über das Opfer? Oder den Namen der CTF-Herausforderung?
* [**Brute Force**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** Versuchen Sie grundlegende, Digest- und NTLM-Authentifizierung.
{% code title="Gängige Anmeldeinformationen" %}
```
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
```
{% endcode %}
## Automatische Tools
* [https://github.com/lobuhi/byp4xx](https://github.com/lobuhi/byp4xx)
* [https://github.com/iamj0ker/bypass-403](https://github.com/iamj0ker/bypass-403)
* [https://github.com/gotr00t0day/forbiddenpass](https://github.com/gotr00t0day/forbiddenpass)
* [Burp-Erweiterung - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
* [Forbidden Buster](https://github.com/Sn1r/Forbidden-Buster)
<figure><img src="../../.gitbook/assets/image (2) (1) (1).png" alt=""><figcaption></figcaption></figure>
**Sofort einsatzbereite Einrichtung für Schwachstellenbewertung und Penetrationstests**. Führen Sie einen vollständigen Pentest von überall aus mit mehr als 20 Tools und Funktionen durch, die von der Aufklärung bis zum Bericht reichen. Wir ersetzen keine Pentester - wir entwickeln benutzerdefinierte Tools, Erkennungs- und Exploit-Module, um ihnen etwas Zeit zu geben, tiefer zu graben, Shells zu öffnen und Spaß zu haben.
{% embed url="https://pentest-tools.com/" %}
<details>
<summary><strong>Erlernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositorys einreichen.
</details>