Tweets by @buherablog
profile for buherator at IT Security Stack Exchange, Q&A for IT security professionals

A BitBetyár Blog

Túljártál a nagyokosok eszén? Küldd be a mutatványodat! (e-mail a buherator gmailkomra jöhet)

Full-Disclosure / Névjegy / Coming out


Promó

H.A.C.K.

Címkék

0day (110) adobe (87) adobe reader (21) anonymous (26) apple (60) az olvasó ír (49) blackhat (20) botnet (22) bug (200) buherablog (44) buhera sörözés (39) bukta (49) deface (38) dns (22) dos (29) esemény (82) facebook (26) firefox (64) flash (33) gondolat (31) google (59) google chrome (36) hacktivity (37) hírek (117) incidens (224) internet explorer (88) iphone (35) java (50) jog (22) kína (21) kriptográfia (68) kultúra (21) linux (24) malware (43) microsoft (142) móka (48) mozilla (23) office (26) oracle (40) os x (43) patch (197) php (20) politika (31) privacy (58) programozás (22) safari (34) sql injection (62) windows (85) xss (77) Címkefelhő

Licensz

Creative Commons Licenc

Osztott munkamenet problémák

2009.01.29. 08:30 | buherator | 5 komment

Moszkva küldte be a következő leírást, egy ingyenes magyar tárhelyszolgáltatót érintő problémáról. Mivel egyelőre nincs tudomásom róla, hogy az illetékesek értesítve lettek volna, a jómodor úgy diktálja, hogy kiradírozzam a szolgáltató megnevezését, mindazonáltal a keresési tér nem túl nagy...

****nél vettem észre a következő "sebezhetőséget". (más ingyenes szolgáltatóknál is fennállhat)

A SESSION kezelésnél egy könyvtárba mentik az összes aldomainhez(felhasználóhoz) tartozó munkamenet fájlokat. Ez a könyvtár a szerveren a /mnt/session.

pl.:

pistike.xy.hu domaint kiszolgáló tárhelyen egy egyszerű php támogatta site van, amely  munkamenet változókban tárolja el a belépés adatait.

$_SESSION["login"] true/false
$_SESSION["uId"] beléptetett felhasználó id-ja

Pistike rosszindulatú haverja, Józsi tisztában van a változó nevekkel, mondjuk úgy megsejtette őket.

Így beregisztrál az xy.hu-n, megkapja a jozsika.xy.hu domain-t. 

Feltesz a tárhelyére egy php scriptet kb. a következő tartalommal:

<?

session_start();

$_SESSION["login"] = true;
$_SESSION["uId"] = 1; /* Mert úgy okoskodik, hogy egyes id-jú felhasználó az van.... */

?>

Józsika ezután ellátogat az így elkészült oldalára. A böngészője megkapja a sütit, benne a PHPSESSID nevű munkamenet azonosítóval. 

Ezután Józsika átírja a süti domain paraméterét pistike.xy.hu-ra. Elmenti a megváltoztatott sütit, meglátogatja pistike oldalát. A böngészője a szervernek átnyújtja az immár a pisitike.xy.hu-hoz tartozó munkamenet azonosítót, és létrejön

$_SESSION["login"] = true;

$_SESSION["uId"] = 1;

Józsika belépett pistike.xy.hu-n található site-ra az 1 id-jú user nevében.

Ahogy azt Moszkva is említi, nem biztos, hogy csak egy szolgáltatót érint a probléma sőt, a pénzes rendszerek is ugyanúgy érintettek lehetnek, ezért jó lenne, ha mindenki körbenézne a saját háza táján!

(Frissítés: annyira tudtam, hogy benne fog maradni valami komprommitáló infó...)

Címkék: az olvasó ír

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Moszkva 2009.01.29. 09:58:04

Időközben értesítettem az érintett szolgáltatót, még nem érkezett válasz.

dnet 2009.01.29. 13:19:43

Minden PHP security környékén tevékenykedő életében eljön az a pillanat, amikor ráakad erre a problémára -- szinte mondhatnánk, hogy saját evolúciójának mérföldköve (disclaimer: én is megtaláltam anno, én is újnak hittem, akiknek meséltem, szinte mind újnak hitték).

Itt egy pl 2005-ből (igen, négy éves):
stock.ter.dk/session.php
Egy másik (dátum nélkül):
phpsec.org/projects/guide/4.html

dnet 2009.01.29. 13:23:34

Ja és még egy: nem kell megsejteni a változóneveket; print_r($_SESSION) is your friend ;)

Moszkva 2009.01.29. 13:54:18

Nem hittem újnak:-) Mivel elég egyszerű rájönni, gondoltam, hogy már előttem is rájöttek.

Csak azt írtam, hogy itt van egy szolgáltató akit érint., és még több is lehet.

A print_r($_SESSION) megoldást nem értem, mivel azzal a saját magad álltal létrehozott munkamenet változókat iratod ki, nem pedig az ő által létrehozzotakat, amiknek szeretnél értéket adni. Így ez nem segít a "megsejtésben".

Moszkva 2009.01.29. 14:17:03

print_r($_SESSION) -höz:

Akkor tényleg működhet, ha előtte be tudsz a webes alkalmazására jelentkezni, és így ki tudod íratni milyen változók jöttek létre. De ehhez kell az is, hogy free legyen a regisztráció, ill. ha admin hozzáférést akarsz, akkor nem biztos, hogy pl.: $_SESSION['admin'] kap akármilyen értéket, és így a változó létre is jön.