119 lines
9.4 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 Bypasses
{{#include ../../banners/hacktricks-training.md}}
## HTTP Verbs/Methods Fuzzing
फाइल तक पहुँचने के लिए **विभिन्न क्रियाओं** का उपयोग करने की कोशिश करें: `GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
- प्रतिक्रिया हेडर की जाँच करें, शायद कुछ जानकारी दी जा सकती है। उदाहरण के लिए, **HEAD** के लिए **200 प्रतिक्रिया** जिसमें `Content-Length: 55` है, का मतलब है कि **HEAD क्रिया जानकारी तक पहुँच सकती है**। लेकिन आपको अभी भी उस जानकारी को निकालने का एक तरीका खोजना होगा।
- `X-HTTP-Method-Override: PUT` जैसे HTTP हेडर का उपयोग करने से उपयोग की गई क्रिया को ओवरराइट किया जा सकता है।
- **`TRACE`** क्रिया का उपयोग करें और यदि आप बहुत भाग्यशाली हैं तो शायद प्रतिक्रिया में आप **मध्यवर्ती प्रॉक्सी द्वारा जोड़े गए हेडर** भी देख सकते हैं जो उपयोगी हो सकते हैं।
## HTTP Headers Fuzzing
- **Host हेडर** को किसी मनमाने मान में बदलें ([यहाँ काम किया](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
- संसाधन तक पहुँचने के लिए [**अन्य उपयोगकर्ता एजेंटों का उपयोग करने की कोशिश करें**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt)।
- **HTTP हेडर को फज़ करें**: HTTP प्रॉक्सी **हेडर**, HTTP प्रमाणीकरण बेसिक और NTLM ब्रूट-फोर्स (केवल कुछ संयोजनों के साथ) और अन्य तकनीकों का उपयोग करने की कोशिश करें। इसके लिए मैंने उपकरण [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass) बनाया है।
- `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`
यदि **पथ सुरक्षित है** तो आप इन अन्य हेडरों का उपयोग करके पथ सुरक्षा को बायपास करने की कोशिश कर सकते हैं:
- `X-Original-URL: /admin/console`
- `X-Rewrite-URL: /admin/console`
- यदि पृष्ठ **प्रॉक्सी के पीछे है**, तो शायद प्रॉक्सी आपको निजी जानकारी तक पहुँचने से रोक रही है। [**HTTP Request Smuggling**](../../pentesting-web/http-request-smuggling/index.html) **या** [**hop-by-hop हेडर**](../../pentesting-web/abusing-hop-by-hop-headers.md)** का दुरुपयोग करने की कोशिश करें।**
- विभिन्न प्रतिक्रियाओं की तलाश में [**विशेष HTTP हेडर**](special-http-headers.md) को फज़ करें।
- **HTTP विधियों** को फज़ करते समय विशेष HTTP हेडर को फज़ करें।
- **Host हेडर को हटा दें** और शायद आप सुरक्षा को बायपास करने में सक्षम होंगे।
## Path **Fuzzing**
यदि _/path_ अवरुद्ध है:
- `/%2e/path` का उपयोग करने की कोशिश करें (यदि पहुँच प्रॉक्सी द्वारा अवरुद्ध है, तो यह सुरक्षा को बायपास कर सकता है)। `/%252e**/path` (डबल URL एन्कोड) का भी प्रयास करें।
- **Unicode बायपास** का प्रयास करें: _/**%ef%bc%8f**path_ (URL एन्कोडेड वर्ण जैसे "/" हैं) इसलिए जब इसे फिर से एन्कोड किया जाएगा तो यह _//path_ होगा और शायद आप पहले से ही _/path_ नाम की जाँच को बायपास कर चुके होंगे।
- **अन्य पथ बायपास**:
- 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)
- निम्नलिखित स्थितियों में [**इस सूची**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) का उपयोग करें:
- /FUZZsecret
- /FUZZ/secret
- /secretFUZZ
- **अन्य API बायपास:**
- /v3/users_data/1234 --> 403 Forbidden
- /v1/users_data/1234 --> 200 OK
- {“id”:111} --> 401 Unauthorized
- {“id”:\[111]} --> 200 OK
- {“id”:111} --> 401 Unauthorized
- {“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**
- **param मान** बदलें: **`id=123` --> `id=124`**
- URL में अतिरिक्त पैरामीटर जोड़ें: `?`**`id=124` —-> `id=124&isAdmin=true`**
- पैरामीटर हटा दें
- पैरामीटर का क्रम बदलें
- विशेष वर्णों का उपयोग करें।
- पैरामीटर में सीमा परीक्षण करें — जैसे _-234_ या _0_ या _99999999_ (केवल कुछ उदाहरण मान) प्रदान करें।
## **Protocol version**
यदि HTTP/1.1 का उपयोग कर रहे हैं तो **1.0** का उपयोग करने की कोशिश करें या यह **2.0** का समर्थन करता है या नहीं, इसका परीक्षण करें।
## **Other Bypasses**
- डोमेन का **IP** या **CNAME** प्राप्त करें और **प्रत्यक्ष संपर्क करने** की कोशिश करें।
- सामान्य GET अनुरोध भेजकर सर्वर को **तनाव में डालने** की कोशिश करें ([यह इस व्यक्ति के लिए फेसबुक के साथ काम किया](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125))।
- **प्रोटोकॉल बदलें**: http से https में, या https से http में
- [**https://archive.org/web/**](https://archive.org/web/) पर जाएं और जांचें कि क्या अतीत में वह फ़ाइल **विश्व स्तर पर सुलभ** थी।
## **Brute Force**
- **पासवर्ड का अनुमान लगाएं**: निम्नलिखित सामान्य क्रेडेंशियल्स का परीक्षण करें। क्या आप पीड़ित के बारे में कुछ जानते हैं? या CTF चुनौती का नाम?
- [**Brute force**](../../generic-hacking/brute-force.md#http-brute)**:** मूल, डाइजेस्ट और NTLM प्रमाणीकरण का प्रयास करें।
```:Common creds
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
```
## Automatic 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 Extension - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
- [Forbidden Buster](https://github.com/Sn1r/Forbidden-Buster)
- [NoMoreForbidden](https://github.com/akinerk/NoMoreForbidden)
{{#include ../../banners/hacktricks-training.md}}