hacktricks/network-services-pentesting/pentesting-web/403-and-401-bypasses.md
2024-02-10 15:36:32 +00:00

154 lines
9.7 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>Lernen Sie AWS-Hacking von Grund auf 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 bewerben möchten** oder **HackTricks als PDF 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 [**Telegramm-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 senden.
</details>
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
**Sofort verfügbare Einrichtung für Schwachstellenbewertung und Penetrationstests**. Führen Sie einen vollständigen Penetrationstest von überall aus mit über 20 Tools und Funktionen durch, die von der Aufklärung bis zum Bericht reichen. Wir ersetzen keine Penetrationstester - wir entwickeln benutzerdefinierte Tools, Erkennungs- und Exploit-Module, um ihnen etwas Zeit zu geben, um 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 können einige Informationen angegeben werden. 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 exfiltrieren.
* Mit einem HTTP-Header wie `X-HTTP-Method-Override: PUT` kann das verwendete Verb überschrieben werden.
* Verwenden Sie das **`TRACE`**-Verb und wenn Sie sehr viel Glück haben, können Sie möglicherweise in der Antwort auch die **von Zwischenproxys hinzugefügten Header** 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.
* **Fuzzen Sie 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 möglicherweise der Proxy derjenige, der verhindert, dass Sie auf die privaten Informationen zugreifen. Versuchen Sie, [**HTTP Request Smuggling**](../../pentesting-web/http-request-smuggling/) **oder** [**hop-by-hop headers**](../../pentesting-web/abusing-hop-by-hop-headers.md)** zu missbrauchen.**
* Fuzzing von [**speziellen HTTP-Headern**](special-http-headers.md), um nach unterschiedlichen Antworten zu suchen.
* **Fuzzen Sie spezielle HTTP-Header** beim Fuzzing von **HTTP-Methoden**.
* Entfernen Sie den Host-Header und möglicherweise können Sie den Schutz umgehen.
## Pfad-Fuzzing
Wenn _/path_ blockiert ist:
* Versuchen Sie _**/**_**%2e/path \_(wenn der Zugriff von einem Proxy blockiert wird, könnte dies den Schutz umgehen). Versuchen Sie auch**\_\*\* /%252e\*\*/path (doppelte URL-Codierung)
* Versuchen Sie den **Unicode-Bypass**: _/**%ef%bc%8f**path_ (Die URL-codierten Zeichen sind wie "/"), sodass sie beim erneuten Codieren _//path_ sein werden und Sie möglicherweise bereits die _/path_-Namensprüfung umgangen haben
* **Andere Pfad-Umgehungen**:
* 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 gesamte [**Liste**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) in den folgenden Situationen:
* /FUZZsecret
* /FUZZ/secret
* /secretFUZZ
* **Andere API-Umgehungen:**
* /v3/users\_data/1234 --> 403 Forbidden
* /v1/users\_data/1234 --> 200 OK
* {“id”:111} --> 401 Unauthriozied
* {“id”:\[111]} --> 200 OK
* {“id”:111} --> 401 Unauthriozied
* {“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)
## **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
* Reihenfolge der Parameter ändern
* Verwenden Sie Sonderzeichen.
* Führen Sie Grenzwerttests in den Parametern durch - geben Sie Werte wie _-234_ oder _0_ oder _99999999_ an (nur einige Beispiele für Werte).
## **Protokollversion**
Wenn Sie HTTP/1.1 verwenden, **versuchen Sie es mit 1.0** 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 gängige GET-Anfragen senden ([Es hat bei diesem Kerl 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 überprüfen Sie, ob diese 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**](../../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).png" alt=""><figcaption></figcaption></figure>
**Sofort einsatzbereite Einrichtung für Schwachstellenbewertung und Penetrationstests**. Führen Sie einen vollständigen Pentest von überall aus mit über 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, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
{% embed url="https://pentest-tools.com/" %}
<details>
<summary><strong>Lernen 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 bewerben möchten** oder **HackTricks als PDF 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 senden.
</details>