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:

GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK

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

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

Last updated