Cookies Hacking

Hacking cookies

Həssas məlumatları (sessionID, istifadəçi adı, e-poçtlar və s.) ehtiva edən bir növ fərdi kuki tapsanız, mütləq ondan istifadə etməyə çalışmalısınız.

Kukinin dekodlanması

Əgər kuki bəzi Base kodlaşdırmasından (məsələn, Base64) və ya oxşar kodlaşdırmadan istifadə edirsə, siz onu deşifrə edə, məzmunu dəyişdirə və ixtiyari istifadəçilərin şəxsiyyətinə keçə bilərsiniz.

Session Hijacking

Kuki oğurlayın və proqram daxilində istifadəçini təqlid etmək üçün ondan istifadə edin

Sessiya fiksasiyası

Təcavüzkar veb-səhifədən kuki alır və qurbana eyni kukidən istifadə edərək daxil olmaq üçün link göndərir. Əgər istifadəçi daxil olduqda kuki dəyişdirilməsə, bu faydalı ola bilər, çünki təcavüzkar kuki vasitəsilə istifadəçini təqlid edə bilər.

Session donation

Təcavüzkar qurbana öz seansını göndərir. Qurban artıq daxil olduğunu görəcək və hesabında olduğunu güman edəcək, lakin hərəkətlər təcavüzkarın hesabında həyata keçiriləcək.

JWT kukisi

Kukilərin yoxlanılması

Əsas yoxlamalar

Siz hər dəfə daxil olanda kuki eynidir.

  • Çıxın və eyni kukidən istifadə etməyə çalışın.

  • Eyni kukidən istifadə edərək eyni hesaba 2 cihaz (və ya brauzer) ilə daxil olmağa çalışın.

  • Kukidə hər hansı məlumatın olub olmadığını yoxlayın və onu dəyişdirməyə çalışın

  • Demək olar ki, eyni istifadəçi adı ilə bir neçə hesab yaratmağa çalışın və oxşarlıqları görə bildiyinizi yoxlayın.

  • Necə işlədiyini görmək üçün "məni yadda saxla" seçimini yoxlayın. Əgər o mövcuddursa və həssas ola bilərsə, həmişə məni xatırla kukisindən başqa kuki olmadan istifadə edin.

  • Şifrəni dəyişdikdən sonra da əvvəlki kuki-nin işlədiyini yoxlayın.

Qabaqcıl kuki hücumları

Siz daxil olduğunuz zaman kuki eyni (və ya demək olar ki) qalırsa, bu, ehtimal ki, kuki-nin hesabınızın hansısa sahəsi ilə (ehtimal ki, istifadəçi adı) əlaqəli olması deməkdir. Sonra edə bilərsiniz:

  • İstifadəçi adları çox oxşar olan bir çox hesab yaratmağa və alqoritmin necə işlədiyini təxmin etməyə çalışın.

  • İstifadəçi adını kobud şəkildə zorlamağa çalışın. Əgər kuki yalnız istifadəçi adınız üçün autentifikasiya üsulu kimi saxlanılırsa, o zaman siz "Bmin" istifadəçi adı ilə hesab yarada və kukinizin hər bir bitini bruteforce edə bilərsiniz, çünki sınaqdan keçirəcəyiniz kukilərdən biri "admin"ə aid olacaq.

  • Padding Oracle-ı sınayın (cookie məzmununu deşifrə edə bilərsiniz). Padbuster istifadə edin.

Padding Oracle - Padbuster nümunələri

padbuster <URL/path/when/successfully/login/with/cookie> <COOKIE> <PAD[8-16]>
padbuster http://web.com/index.php u7bvLewln6PJPSAbMb5pFfnCHSEd6olf 8 -cookies auth=u7bvLewln6PJPSAbMb5pFfnCHSEd6olf
padBuster http://web.com/home.jsp?UID=7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6
7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6 8 -encoding 2

Padbuster bir neçə cəhd edəcək və sizdən hansı şərtin xəta şərti olduğunu soruşacaq (müvafiq olmayan).

Sonra kukinin şifrəsini açmağa başlayacaq (bir neçə dəqiqə çəkə bilər)

Hücum uğurla həyata keçirilibsə, siz seçdiyiniz sətri şifrələməyə cəhd edə bilərsiniz. Məsələn, user=administratoru şifrələmək istəyirsinizsə

padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator

Bu icra sizə doğru şəkildə şifrələnmiş və daxilində user=administrator sətri ilə kodlanmış kuki verəcəkdir.

CBC-MAC

Ola bilsin ki, kuki müəyyən dəyərə malik ola bilər və CBC istifadə edərək imzalana bilər. Sonra, dəyərin bütövlüyü eyni dəyərlə CBC istifadə edərək yaradılan imzadır. IV null vektor kimi istifadə edilməsi tövsiyə olunduğundan, bu növ bütövlüyün yoxlanılması həssas ola bilər.

Hücum

  • administ = t istifadəçi adının imzasını alın

  • İstifadəçi adı imzasını əldə edin rator\x00\x00\x00 XOR t = t'

  • Kukidə administrator+t' dəyərini təyin edin (t' etibarlı imza olacaq (rator\x00\x00\x00 XOR t) XOR t = rator\x00\x00\x00

ECB

Kuki ECB istifadə edərək şifrələnirsə, həssas ola bilər.

Daxil olduğunuz zaman aldığınız kuki həmişə eyni olmalıdır.

Necə aşkar etmək və hücum etmək olar:

Demək olar ki, eyni dataya (istifadəçi adı, parol, e-poçt və s.) malik 2 istifadəçi yaradın və verilmiş kuki daxilində bəzi nümunələri tapmağa çalışın.

Məsələn, "aaaaaaaaaaaaaaaaaaaaaaa" adlı istifadəçi yaradın və kukidə hər hansı nümunənin olub olmadığını yoxlayın (ECB hər blokda eyni açarla şifrələdiyi üçün istifadəçi adı şifrələnərsə, eyni şifrələnmiş baytlar görünə bilər).

Bir nümunə olmalıdır (istifadə edilmiş blokun ölçüsü ilə). Beləliklə, bir dəstə "a"nın necə şifrələndiyini bilməklə bir istifadəçi adı yarada bilərsiniz: "a"*(blokun ölçüsü)+"admin". Daha sonra kukidən "a" blokunun şifrələnmiş nümunəsini silə bilərsiniz. Və siz "admin" istifadəçi adının kukisinə sahib olacaqsınız.

Kukilərin Atributları

Expires & Max-Age

  • Expires kukinin silinməsi üçün son istifadə tarixi təyin edir

  • Max-Age kukinin silinəcəyi vaxtı saniyələrlə təyin edir (bundan istifadə edin, artıq 2009-cu il deyil.

Domen

Domain atributu hansı hostların kuki qəbul edə biləcəyini müəyyən edir. Müəyyən edilmədikdə, subdomenlər istisna olmaqla, atribut kukini təyin edən eyni hosta verilir. Domen göstərilibsə, subdomenlər həmişə daxil edilir. Buna görə də, Domeni qeyd etmək onu buraxmaqdan daha az məhdudlaşdırıcıdır. Bununla belə, subdomenlərin istifadəçi haqqında məlumat paylaşması lazım olduqda faydalı ola bilər.

Məsələn, Domain=mozilla.org təyin etsəniz, kukilər developer.mozilla.org kimi subdomenlərdə mövcuddur. Bunu etməsəniz, kuki subdomenlərə göndərilməyəcək.

Path

Path atributu Kuki başlığını göndərmək üçün tələb olunan URL-də mövcud olmalı olan URL yolunu göstərir. %x2F ("/") simvolu kataloq ayırıcı hesab olunur və alt kataloqlar da uyğun gəlir.

SameSite

Bu, kukinin digər domenlərdən göndərilə biləcəyini brauzerə göstərəcək. Onun 3 mümkün dəyəri var:

  • Strict: Kuki üçüncü tərəfin vebsaytları tərəfindən sorğu ilə birlikdə göndərilməyəcək.

  • Lax: Kuki üçüncü tərəf saytları tərəfindən başlatılan GET sorğusu ilə birlikdə göndəriləcək.

  • None: Kuki hər hansı üçüncü tərəf domenindən göndərilir.

Cookies Bayraqları

HttpOnly

Bu, müştərinin kukiyə daxil olmasının qarşısını alır (məsələn, Javascript vasitəsilə: document.cookie)

Bypasses

  • Bu, TRACE HTTP sorğuları ilə keçə bilər, çünki serverdən gələn cavab (bu HTTP metodu mövcuddursa) göndərilən kukiləri əks etdirəcək. Bu texnika Cross-Site Tracking adlanır.

    • Müasir brauzerlər JS-dən TRACE sorğusunun göndərilməsinə icazə verməməklə bu texnikanın qarşısını alır. Bununla belə, IE6.0 SP2-yə TRACE əvəzinə \r\nTRACE göndərilməsi kimi xüsusi proqram təminatında buna bəzi yan keçidlər aşkar edilmişdir.

  • Başqa bir yol, brauzerlərin zero/day zəifliklərindən istifadə etməkdir.

Secure

Sorğu yalnız sorğunun təhlükəsiz kanal (adətən HTTPS) üzərindən ötürüldüyü halda HTTP sorğusunda kuki göndərəcək.

Last updated