401&403 Bypass
Veb təhlükəsizliyi sahəsində HTTP 401 Unauthorized(İcazəsiz) və 403 Forbidden(Qadağan) status kodları veb resurslarına girişi diktə etməkdə əsas rol oynayır. Pentesterin bu status kodlarının nüanslarını dərk etməsi, potensial zəiflikləri müəyyən etmək və onlardan istifadə etmək üçün vacibdir.
401 Unauthorized status kodunu parol tələb edən bir qapıya bənzədə bilərik. Düzgün parol yoxdursa, içəri ötürülmürsünüz. Bizim məqsədimiz düzgün parol olmadan keçməyin yollarını tapmaq, qapının həqiqətən təhlükəsiz olub-olmadığını yoxlamaqdır.
Bəzən parolumuz düzgün olsa belə, 403 Forbidden status kodu ilə qarşılaşa bilərik.Yuxarıda verdiyim nümunə ilə izah etsək, düzgün açara sahibik, lakin içəri girməyə icazəmiz yoxdur. Pentest zamanı bizim işimiz bunun səbəbini tapmaq və içəri daxil olmaq üçün gizli yollar axtarmaqdır. Bu cheatsheet həmin yollar haqqındadır. Məqsəd sadəcə zəifliklərin aşkarlanması deyil, onların harada olduğunu göstərməklə təqtbiqi daha təhlükəsiz etməkdir.
HTTP Verbs/Methods Fuzzing
Daxil olmaq üçün digər metod və feillərdən istifadə etmək yaxşı fikirdir:
Serverdın gələn cavabı yoxlamaq məlumat əldə etməyə kömək edə bilər. Məsələn, HEAD’ə “Content-Length: 55” cavabı məlumatın əldə edilə biləcəyini göstərir. Sadəcə bu məlumat əlçatanlıq üçün bir yol tapılmalıdır. TRACE’dən istifadə edərək, intermediate proksilər tərəfindən əlavə edilən başlıqları görə bilərik.
HTTP Headers Fuzzing
HOST Header’ə her hansı ixtiyari dəyər verməklə 403 bypass mümkündür.
User Agent’ə başqa dəyərlər ver.(https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt)
HTTP header fuzzing üçün avtomatik alət: https://github.com/carlospolop/fuzzhttpbypass
Path Fuzzing
/%2e/path _ istifadə et (əgər giriş proksi tərəfindən bloklanıbsa, bu metod bypass edə bilər). Burada %2e nöqtənin encode olunmuş dəyəridir.Həmçinin ** /%252e**/path (ikiqat URL encode) yoxlayın.
Unicode bypass yoxla: /%ef%bc%8fpath (URL encode olunmuş simvollar "/" kimidir), beləliklə, decode olunduqda //path olacaq və ola bilsin ki, artıq /path adı yoxlanışını bypass etdin.
Digər metodlar:
example.com/secret–> HTTP 403 Forbidden
example.com/SECRET–> HTTP 200 OK
example.com/secret/–> HTTP 200 OK
example.com/secret/.–> HTTP 200 OK
example.com//secret//–> HTTP 200 OK
example.com/;/secret –> HTTP 200 OK
example.com/.;/secret–> HTTP 200 OK
example.com//;//secret–> HTTP 200 OK
Aşağıdakı vəziyyətlərdə bu listdən istifadə et:
/FUZZsecret
/FUZZ/secret
/secretFUZZ
API bypass üsulları:
/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>"}
user_id=ATTACKER_ID&user_id=VICTIM_ID)
Parameter Manipulation
Parametr dəyərini dəyişdirin: id=123 --> id=124 Parametrlərdə sərhəd testini həyata keçirin — -234 və ya 0 və ya 99999999 kimi dəyərlər təmin edin (yalnız bir neçə nümunə dəyər).
URL-ə əlavə parametrlər əlavə edin: ?id=124 —-> id=124&isAdmin=true
Parametrləri silin.
Xüsusi simvollardan istifadə edin.
Parametrlərdə sərhəd testi həyata keçirin — -234, 0, 99999999 kimi dəyərlər yoxlayın
Protocol version
Əgər HTTP/1.1 istifadə edirsə, 1.0 və ya 2.0-ı versiyalarını yoxlayın.
Digər üsullar
Serveri Get request’ləri ilə yükləməyə çalışın.(Facebook’da işləyən metod)
**https://archive.org/web/** saytından giriş əldə etmək istədyiniz path’ın əvvəl açıq olub-olmadığını yoxlayın.
Protokolu dəyişin: HTTP’dən HTTPS’ə və ya əksinə.
Avtomatik Alətlər
Buprsuite’də 403 bypass üçün 403-Bypasser adlı extension var.Bu extension yükləyib avtomatik bypass həyata keçirə bilərsiniz (https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
Forbidden Buster, HTTP 401 və 403 cavablarını bypass, sistemdəki icazəsiz sahələrə giriş əldə etmək üçün müxtəlif texnikaları avtomatlaşdıran digər bir alətdir.(https://github.com/Sn1r/Forbidden-Buster)
Last updated