Kihagyás

SQL Injection

1. Bevezetés

Ebben a részben lépésről lépésre bemutatom, hogyan lehet megoldani a Weak Session IDs (Gyenge munkamenet-azonosítók) kihívást.

A Weak Session IDs sebezhetőség rávilágít azokra a biztonsági kockázatokra, amelyek akkor merülnek fel, ha a munkamenet-azonosítók (session ID-k) előre jelezhetők vagy könnyen kitalálhatók.

Ez lehetővé teszi a támadók számára, hogy érvényes munkamenet-sütik (session cookie-k) kitalálásával vagy brute-force technikával átvegyék más felhasználók aktív munkamenetét, vagy akár teljesen megjátsszák (impersonálják) őket.

2. Low Security Level (Alacsony biztonsági szint)

Jelentkezz be a DVWA alkalmazásba, majd navigálj a Weak Session IDs kihíváshoz.

A böngészőben nyisd meg az Alkalmazás (Application) > Cookie-k fület, majd kattints a Generate (Generálás) gombra.

Megfigyelhetjük, hogy létrejön egy „dvwaSession” nevű süti, amelynek értéke 1-re van beállítva.

Ez az érték minden egyes kattintásra eggyel nő. A megváltozott értéket megfigyelhetjük a böngésző cookie-fülén, vagy a Burp Suite proxy történetében is.

Ez azt jelenti, hogy a cookie-értékek könnyen előre jelezhetők, így egy támadó kitalálhat vagy brute-force módszerrel megtalálhat egy érvényes munkamenet-azonosítót, és ezáltal átveheti egy jogos felhasználó munkamenetét, vagy megjátszhatja őt.

Ha átnézzük a Low biztonsági szinthez tartozó forráskódot a DVWA-ban, láthatjuk, hogy az új sütiérték generálásához a „++” operátort használják az előző session értékén.

3. Medium Security Level (Közepes biztonsági szint)

Nyisd meg ezt a kihívást közepes (medium) biztonsági szinten, és kattints a Generate (Generálás) gombra. Ezúttal a dvwaSession süti értéke például 1731162760 lesz.

Kattints többször a Generate gombra, hogy megértsd, milyen logika alapján generálódik a süti értéke. Közepes szinten a süti értéke viszonylag erősebb, és nehezebb előre megjósolni, mint alacsony szinten.

Viszont megfigyelhetjük, hogy ezeknél az értékeknél az első számjegyek azonosak, és csak az utolsó néhány karakter változik. Továbbá, ha figyelmesen átnézzük a Burp Proxy History (naplótörténet) bejegyzéseit, akkor láthatjuk, hogy a süti értéke csak akkor változik, ha más időpontban kattintunk a Generate gombra.

Ha még jobban utánajárunk, észrevehetjük, hogy a cookie értéke a gép dátum- és időbeállításai alapján, azaz Epoch / Unix Timestamp szerint generálódik. Ennek dekódolásához használhatjuk például ezt az oldalt: epochconverter.com

Mivel most már ismerjük a logikát, amivel a session süti generálódik, megpróbálhatjuk ellopni vagy kitalálni egy áldozat session azonosítóját úgy, hogy az adott időponthoz (timestamp) legközelebbi értéket generáljuk.

Ha megnézzük ennek a kihívásnak a forráskódját, láthatjuk, hogy a time() függvényt használják a süti értékének generálására.

4. High Security Level (Magas biztonsági szint)