hacktricks/cryptography/cipher-block-chaining-cbc-mac-priv.md

5.4 KiB

{% hint style="success" %} Jifunze na zoezi la AWS Hacking:Mafunzo ya HackTricks kwa Wataalam wa Timu Nyekundu ya AWS (ARTE)
Jifunze na zoezi la GCP Hacking: Mafunzo ya HackTricks kwa Wataalam wa Timu Nyekundu ya GCP (GRTE)

Support HackTricks
{% endhint %}

CBC

Ikiwa cookie ni tu jina la mtumiaji (au sehemu ya kwanza ya cookie ni jina la mtumiaji) na unataka kujifanya kuwa jina la mtumiaji "admin". Kisha, unaweza kuunda jina la mtumiaji "bdmin" na kufanya nguvu ya byte ya kwanza ya cookie.

CBC-MAC

Msimbo wa uthibitishaji wa ujumbe wa kufungwa kwa mnyororo (CBC-MAC) ni njia inayotumiwa katika kriptografia. Inafanya kazi kwa kuchukua ujumbe na kuuweka kwa kufungwa kwa kila kibodi, ambapo kufungwa kwa kila kibodi kunahusishwa na ile iliyotangulia. Mchakato huu unajenga mnyororo wa kibodi, ikisafisha kwamba kubadilisha hata biti moja tu ya ujumbe halisi kutapelekea mabadiliko yasiyotabirika katika kibodi ya mwisho ya data iliyofungwa. Ili kufanya au kubadilisha mabadiliko kama hayo, muhimu ni ufunguo wa kufungwa, ikihakikisha usalama.

Ili kuhesabu CBC-MAC ya ujumbe m, mtu anafunga m katika hali ya CBC na vector ya kuanzisha sifuri na kuhifadhi kibodi ya mwisho. Mchoro unaofuata unapanga hesabu ya CBC-MAC ya ujumbe unaoundwa na kibodihttps://wikimedia.org/api/rest_v1/media/math/render/svg/bbafe7330a5e40a04f01cc776c9d94fe914b17f5 ukitumia ufunguo wa siri k na kibodi ya kibodi E:

https://upload.wikimedia.org/wikipedia/commons/thumb/b/bf/CBC-MAC_structure_en.svg/570px-CBC-MAC_structure_en.svg.png

Udhaifu

Kwa CBC-MAC kawaida IV iliyotumiwa ni 0.
Hii ni tatizo kwa sababu ujumbe 2 uliojulikana (m1 na m2) kila mmoja utazalisha saini 2 (s1 na s2). Kwa hivyo:

  • E(m1 XOR 0) = s1
  • E(m2 XOR 0) = s2

Kisha ujumbe uliojumuisha m1 na m2 (m3) utazalisha saini 2 (s31 na s32):

  • E(m1 XOR 0) = s31 = s1
  • E(m2 XOR s1) = s32

Ambayo inawezekana kuhesabu bila kujua ufunguo wa kufungwa.

Fikiria unafunga jina Msimamizi katika kibodi za 8bytes:

  • Administ
  • rator\00\00\00

Unaweza kuunda jina la mtumiaji linaloitwa Administ (m1) na kupata saini (s1).
Kisha, unaweza kuunda jina la mtumiaji lililopatikana kutoka rator\00\00\00 XOR s1. Hii itazalisha E(m2 XOR s1 XOR 0) ambayo ni s32.
sasa, unaweza kutumia s32 kama saini ya jina kamili Msimamizi.

Muhtasari

  1. Pata saini ya jina la mtumiaji Administ (m1) ambayo ni s1
  2. Pata saini ya jina la mtumiaji rator\x00\x00\x00 XOR s1 XOR 0 ni s32**.**
  3. Weka cookie kwa s32 na itakuwa cookie halali kwa mtumiaji Msimamizi.

Kudhibiti Shambulio la IV

Ikiwa unaweza kudhibiti IV iliyotumiwa shambulio linaweza kuwa rahisi sana.
Ikiwa vidakuzi ni tu jina la mtumiaji lililofungwa, kujifanya kuwa mtumiaji "msimamizi" unaweza kuunda mtumiaji "Msimamizi" na utapata cookie yake.
Sasa, ikiwa unaweza kudhibiti IV, unaweza kubadilisha Byte ya kwanza ya IV ili IV[0] XOR "A" == IV'[0] XOR "a" na kuzalisha upya cookie kwa mtumiaji Msimamizi. Cookie hii itakuwa halali kwa kujifanya mtumiaji msimamizi na IV ya awali.

Marejeo

Maelezo zaidi katika https://en.wikipedia.org/wiki/CBC-MAC

{% hint style="success" %} Jifunze na zoezi la AWS Hacking:Mafunzo ya HackTricks kwa Wataalam wa Timu Nyekundu ya AWS (ARTE)
Jifunze na zoezi la GCP Hacking: Mafunzo ya HackTricks kwa Wataalam wa Timu Nyekundu ya GCP (GRTE)

Support HackTricks
{% endhint %}