Broken Access Control
Last updated
Last updated
Giriş nəzarəti kiminsə və ya nəyinsə bəzi funksiyaları yerinə yetirmək və ya resurslara daxil olmaq icazələrinə malik olduğunu tənzimləyən bir metoddur. Web tətbiqləri mövzusunda girişə nəzarət autentifikasiyadan və sessiyanın idarə edilməsindən asılıdır:
Autentifikasiya istifadəçinin dediyi şəxs olduğunu təsdiq edir.
Sessiyanın idarə edilməsi həmin istifadəçi tərəfindən növbəti hansı HTTP sorğularının edildiyini müəyyən edir.
Giriş nəzarəti istifadəçiyə yerinə yetirməyə çalışdığı hərəkəti yerinə yetirməyə icazə verilib-verilmədiyini müəyyən edir.
Broken Access Control ümumi haldır və çox vaxt kritik təhlükəsizlik zəifliyi yaradır. Girişə nəzarət vasitələrinin dizaynı və idarə edilməsi texniki icraya biznes, təşkilati və hüquqi məhdudiyyətləri tətbiq edən mürəkkəb və dinamik problemdir. Girişə nəzarət dizayn qərarları insanlar tərəfindən qəbul edilməlidir, belə ki, səhvlərin olma potensialı da həmçinin yüksəkdir.
Vertical Access Control
Bizim bir sistemimizin olduğunu təsəvvür edək. Və orada adi istifadəçilərin və root istifadəçisinin olduğunu düşünək. Root istifadəçisinin imtiyazları digərlərindən daha çox və daha yüksəkdir. Digər bir sözlə root istifadəçisiç adi istifadəçilərdən 1 pillə yuxarıda dayanıb. Buna görədə bu Vertical access control adlanır. Yəni şaquli icazə kontrolu.
Əgər sistemdə olan adi istifadəçilər admin hesabına keçid edə və həmçinin onun icra etdiyi funksiyaları da yerinə yetirə bilirsə burada Broken Vertical Access Control zəifliyi vardır. Çünkü düzgün qurulmuş sistemdə adi istifadəçilər root funksiyalarını yerinə yetirə bilməməlidirlər. Bu çox ciddi zəiflik və sistemdə açıqlıq kimi qiymətləndirilir.
Horizontal Access Control
Horizontal access controlda sən sistemdə olan öz səviyyəndə olan istifadəçilərin hesablarına və onların istifadə edə biləcəyi mənbələri istifadə edə bilirsən. Adındanda göründüyü kimi üfuqi səviyyədə olan bütün istifadəçilərin hesablarını ələ keçirə bilirsən. Buda web-də çox ciddi boşluq sayılır. Çünkü bu istifadəçi haqlarının və təhlükəsizliyin pozulmasına gətirib çıxarır.
Context-Dependent Access Control
Bu konteksti anlamaq üçün gəlin bir dənə online alış-veriş səhifəsi təsəvvür edək. İstifadəçilər buranı istifadə edərək yeni şeylər alır və səbətə əlavə edir. Sonda ödənişi edir və məhsulu alır. Hələ ki burada problem yoxdur.
Sonra istifadəçi aldığı məhsulun sayında və yaxud məbləğində bəzi dəyişikliklər edir. O 1 məhsulun qiymətinə çox sayda həmin məhsuldan ala bilir. Buna səbəb isə Context-Dependent Access Controlun düzgün formada konfigurasiya olunmamasıdır. Bu zəiflik daha çox online satış səhifələrində rast gəlinir və ciddi açıq hesab olunur.
IDOR, Qorunmayan Birbaşa Obyekt Referansı mənasını verir, istifadəçinin sistemdə mövcud olan hər hansı digər istifadəçinin məlumatlarına daxil ola və dəyişikliklər edə bildiyi bir təhlükəsizlik zəifliyidir. IDOR tətbiqdə istifadəçi tərəfindən daxil edilən inputlara əsasən obyektlərə birbaşa giriş təmin edildikdə baş verən təhlükəsizlik zəifliyidir. Daha sadə dillə desək, bu o deməkdir ki, təcavüzkar məlumat və ya resurslara icazəsiz giriş əldə etmək üçün URL-lər və ya form sahələri kimi input parametrlərini manipulyasiya edə bilər. Bu boşluq, tətbiqin istifadəçi sorğularını düzgün şəkildə təsdiqləməməsi və ya icazə verməməsi, təcavüzkarlara nəzərdə tutulan məhdudiyyətləri keçməyə və həssas məlumatlara daxil olmağa imkan verəndə yaranır. İDOR hücumları riskini azaltmaq və tətbiqin ümumi təhlükəsizliyini artırmaq üçün güclü giriş yoxlamasının və düzgün giriş nəzarətinin həyata keçirilməsi çox vacibdir.
Adətən onu API-lərdə tapmaq olar.
Unikal ID-lər istifadə edən HTTP sorğularında, məsələn user_id və ya id
Endpointlərə əlavə parametrlər əlavə edin, məsələn:
Bypass etmək üçün bunu yoxlayın:
HTTP Parametrinin qarışdırılması:
Endpointə .json əlavə edin:
Bypass etmək üçün bunu yoxlayın:
Köhnə API versiyalarını yoxlayın:
Bypass etmək üçün bunu yoxlayın:
ID-ni mörtərizə içinə alın:
Bypass etmək üçün bunu yoxlayın:
ID-ni JSON mörtərizəsinin içinə alın:
Bypass etmək üçün bunu yoxlayın:
JSON Parameterinin qarışdırılması:
ID md5, base64 və s. istifadə edərək kodlaşdırılıbsa, ID kodunu deşifrə etməyə cəhd edin:
dmljdGltQG1haWwuY29t => [email protected]
Veb sayt GraphQL-dən istifadə edirsə, GraphQL-dən istifadə edərək IDOR-u tapmağa çalışın
MFLAC (Missing Function Level Access Control):
Bypass etmək üçün bunu yoxlayın:
Uuid-i nömrə ilə dəyişdirməyə çalışın:
Bypass etmək üçün bunu yoxlayın:
HTTP Methodunu dəyişin:
Bypass etmək üçün bunu yoxlayın:
Path traversal
Bypass etmək üçün bunu yoxlayın:
Request formatınıContent-Type
dəyişin:
Bypass etmək üçün bunu yoxlayın:
ID yerinə joker işarə göndərin:
Bypass etmək üçün bunu yoxlayın:
Bəzi web səhifələrdə default login səhifələrindən istifadə etmək bu cür problemlərə gətirib çıxarır. Yeni bir web səhifə qurulduqda adminin giriş paneli "/admin" | "/administrator" | "web_admin" | "login_admin" tərzində olur.
Bu default dataların istifadə olunması özü çox ciddi fəsadlara gətirib çıxara bilər. Çünkü admin login page digər istifadəçilər tərəfindən asan təxmin olunan olmamalıdır. Və həmçinin o səhifəyə bir-başa giriş mümkün olmamalıdır. Belə bir hal varsa buda Broken access control zəifliyinə aid edilir.
Böyük bir kitabxana kimi bir veb saytı düşünün və robots.txt faylı axtarış motorlarına kitabxananın hansı hissələrinə daxil olmağa icazə verildiyini və hansı hissələrə isə icazə verilmədiyini göstərən bir fayldır.
Veb sayt sahibləri axtarış motorlarının saytlarını necə indeksləməsinə nəzarət etmək üçün robots.txt faylından istifadə edirlər. Məsələn, onlar müəyyən səhifələri gizli saxlamaq və ya axtarış motorlarının saytın indeksləşdirilməsinə ehtiyac olmayan hissələrini taramasının qarşısını almaq istəyə bilərlər.
Sadə dillə desək, robots.txt vebsayt sahiblərinə axtarış motorlarının vebsaytlarını necə araşdırdığını və başa düşməsini idarə etməyə kömək edir, lazım gələrsə, bəzi sahələri gizli saxlamaqla düzgün məlumatın ictimaiyyətə təqdim olunmasını təmin edir.
Həmçinin çox indekslənmə olduqda sayt axtarış yerində ilk sıralarda yer alır. Buda saytın daha tez böyüməsinə və daha çox insanın qarşısına çıxmasına kömək edə bilər.