Specker Balázs

A Firefox 2 és az IE7 is bedől a hamis oldalaknak

A Mozilla Firefox 2 és a Microsoft Internet Explorer 7 egyik gyenge pontja lehetővé teszi, hogy a támadók ellophassák a felhasználók jelszavait. A trükköt már sikerrel alkalmazták a MySpace.com oldalain.

Az RCSR-nek (Reverse Cross-Site Request) hívott kijátszhatósági pont révén a kártevők hamis bejelentkező űrlapokon könnyedén tulajdoníthatják a felhasználók jelszavait, ugyanis a Firefox Password Manager automatikusan kitölt minden elmentett felhasználónevet és jelszót. A Chapin Information Service állítása szerint ezután az adatok már automatikusan átkerülnek a támadó számítógépére - persze a felhasználó tudta nélkül.

Robert Chapin, a hiba felfedezője elmondta, hogy a trükköt már sikerrel alkalmazták a MySpace.com-on és mindenkit érint, aki felhasználó által létrehozott HTML-kód hozzáadását megengedő fórumokat vagy blogokat használ. "A Firefox és az IE-felhasználóknak tisztában kell lenniük azzal, hogy így a megbízhatónak ítélt blogokon és weboldalakon is ellophatják adataikat" - figyelmeztetett Chapin. A myspace-es esetet felfedező Netcraft biztonsági cég szerint a megtévesztő loginoldalt ráadásul a közösségi hálózat saját szerverén helyezték el.

Két héttel ezelőtt a CIS jelentette a Mozillának, hogy a Firefox automatikusan kitölti az elmentett adatokkal az RCSR-es űrlapokat is. A jelek szerint támadások jobban érintik a feltörekvőben lévő böngészőt, mivel az IE csak akkor egészíti ki magától a korrupt bejelentkezéshez mezőket, ha azok az eredeti oldalon tűnnek fel.

Egyelőre még nem érkezett javítás, de a hírek szerint már dolgoznak rajta az Alapítványnál - írja a ZDNet. Azt nem lehet tudni, hogy a probléma a korábbi verziókat is érinti-e. A Secunia biztonsági vállalat mindenkinek azt tanácsolja, hogy a jelszómegjegyzés funkcióját kapcsolják ki a Firefox beállításainál. A CIS arról is beszámolt, hogy az effajta támadások - jellegüknél fogva - igen hatásosak lehetnek a tűzfallal védett gépekkel szemben is.

Hozzászólások

A témához csak regisztrált és bejelentkezett látogatók szólhatnak hozzá!
Bejelentkezéshez klikk ide
(Regisztráció a fórum nyitóoldalán)
  • mogyi925 #34
    Ja, és tegyük hozzá, hogy a FF fenti sérülékenysége csak olyan oldalon használható ki, ahol a támadni kívánt user pontosan 1 jelszót mentett el, illetve csak az adott domainen belül lehet alkalmazni, ezen feltételek együttállása esetén viszont észrevétlenül, és majdnem teljesen automatikusan (JavaScript kell hozzá, ha azt akarjuk, hogy a user ne tudjon róla). Tapasztalataim szerint a 2.0 előtti utolsó FF, az 1.5.0.8 nem érintett a hibában.

    A hibához tehát mindenképpen szükség van arra, hogy egy adott domain alá a támadó tetszőleges HTML-kódot tudjon juttatni, ha viszont ezt megteheti, akkor gyakorlatilag minden elővigyázatlan felhasználótól ki tudja csalni a jelszavát böngészőhiba nélkül is (elég hozzá egy, az eredeti bejelentkezőlap pontos másolata, amelynek onsubmit eseményéhez egy olyan JavaScript eseménykezelőt rendelünk, amely a háttérben eljuttatja a támadóhoz a begépelt jelszót, majd továbbengedi az űrlapot az eredeti domainre - ennek minden JS-et támogató grafikus böngésző bedől).

    Szvsz az is elővigyázatlan felhasználó, aki egyáltalán használja a jelszavak megjegyzése funkciót bármelyik böngészőben, ezek ugyanis többnyire titkosítatlanul pihennek valahol a vinyón, így tehát bárki megnézheti, aki a géphez hozzá tud férni.
  • mogyi925 #33
    A jelszót nem is lehet benne látni. Mindenesetre legyen elég annyi, hogy el lehet lopni bárki felhasználónevét (azaz nem kell hozzá jelszó), és megváltoztatni az illető jelszavát. Természetesen aki látott már webet közelebbről (webmesterek pl), innentől el tudja képzelni, hogy működik a dolog, aki meg nem, annak egyelőre legyen elég ennyi. Ha most ide leírnám, hogyan kell felhasználót lopni a fórumból, szerinted hányan próbálnának meg minimum moderátor accountokat szerezni?

    Küldtem az SG-nek levelet, amint javítják, leírom részletesen, hogy mi volt a hiba (mmint ide, nekik már megírtam). Legyen elég annyi, hogy a saját gépemen beléptem a fórumra, ezt követően egy másik gépen tudtam használni az accountom, és persze a másik gépen nem jelentkeztem be (és az illető géppel nem is vagyunk egy hálózaton).

    Egyébként kértem már a moderátorokat, hogy a 23-24-25 üzeneteimet, de ezek szerint eddig nem történt semmi...
  • bakagaijin #32
    és még a jelszó sincs benne, még csak kódolva sem :(. legalábbis én nem látom... szip-szip...
  • bakagaijin #31
    mogyi, nem értem, ez csak az aktuális sg-s adatait látja, pedig a böngészőm full tele van más domain cookie-jaival, jelszavaival (beírtam pár dummy-t)... A nem-sg-seket nem látja :(. Mit csinálok rosszul?
  • mogyi925 #30
    Csak annyit jegyeznék meg, hogy nem kell semmiféle böngészőhiba, se vírus, se más, hogy gyakorlatilag bármelyik elővigyázatlan SG.hu fórumozó accountját el tudd lopni...
  • wanek #29
    Ezt írtam én is.
    Az a fajta lopási eljárás akkor működik/működhet, ha a név/jelszó mezők kitöltésre kerülnek, teljesen mindegy, hogy ez automatikusan, vagy kézzel beírva történik.
    Az, hogy valakinek az összes jelszavát egyszerre ellopják ezzel a módszerrel, az egyenesen baromság.
  • Villanypásztor #28
    Épp most próbáltam Operával a Chapinos bemutató oldalt és úgy tűnik az Opera értelmesebben működik mint az FF, meg az IE.
  • beef #27
    Operával mi van?
  • atlagember #26
    A cikkben leírt jelszólopásos módszer akkor is működik, ha egy oldalhoz több felhasználónév is tartozik?
    (Mert akkor nekem nem tölti ki automatikusan, mert választanom kell.)
  • mogyi925 #22
    Figyu kishaver: hol, mikor és ki állított olyat, hogy a bug nem létezik? A tisztánlátás kedvéért:

    1. Nem hív le senki semmit textboxba javascriptből. A FF kitölti a név/pass formot, és submitolja, te pedig szerveroldalon megkapod, mit írt be a böngésző. Sehol semmilyen JS nem kell hozzá. Az kell, hogy te a támadó weboldalon lemásold egy másik weboldal bejelentkezőformját, és tárold a szerveren a kapott adatokat. Jobb fórumoknál ez a lehetőség kizárva, pont a BBCode miatt. Pl. itt SG.hu-n nem lenne lehetőségem a te SG-s jelszavad ellopni, csak ha először készítek egy tükröt az SG.hu-ról, és ráveszlek, hogy nézd meg. Véletlenül is megtörténhet, hogy két teljesen különböző lap egymástól függetlenül ugyanazt a bejelentkező formot használja, pl. a kismillió PHPNuke alapú portál, ezeknél jelenthet hibát ez a bug, de nem a 2.0 előtti FF változatoknál. Különben már régen felfedezték volna.

    2. "másrészt, ha bbcode is van, akkor is az oldal üzemeltetője (vagy bárki aki lapot tud késziteni rá) ellophatja az összes jelszavadat"
    Az oldal üzemeltetője bug nélkül is megnézheti a jelszavadat, habár jobb helyeken minimum saltolt md5-tel tárolják a jelszavakat, ezért is látsz sok oldalon jelszó-újragenerálást emlékeztető helyett. A jelszavadat nem akkor lophatják el, _ha firefoxozol_, hanem ha megjegyezteted vele őket. Én pl. az ilyen feature-öket alapból kikapcsolom minden böngészőben. Ha biztonságos böngészőt szeretnél, használj links-et.

    "ügyes fiú, meg is válaszoltad magadnak, hogy hülyeségeket irogatsz...
    ajax cross domain bug (felfedezve) még nincs firefoxban, tehát ajax kilőve."

    Akkor nézzük meg mégegyszer, ki mit írt. Te:

    "Akármilyen oldalról (lehetne az éppen ez a forum is) van rajta egy láthatatlan rész (akár frame) amiben ott vannak az adatokat bekérő textboxok (de te nem látod) és az oldal irója (vagy éppen valamelyik felhasználó, ha a postjával be tud csempészni valami kódot) egy kis javascriptel le tudja hivni a textboxokba az összes elmentett nevedet-jelszavadat a firefox-ból és elküldeti őket a saját szerveré"

    Tehát azt állítod, hogy egy hidden textboxba JavaScript-tel be tudod tölteni a user összes tárolt jelszavát, és submitolhatod a szerverre. Erre én:

    "JavaScripttel honnan/hogyan hívod le textboxba a kódot? (Minek ide a textbox? Mehetne egyből fel a szerverre a név/pass páros AJAX-on - mgj: csak domainen belül.) És utána mit csinálsz vele?"

    Kicsit részletesebben: JavaScripttel jelszót lopni az automatikus kiegészítéssel 1 módon lehetne: betölti a FF az oldalt, megtalálja a bejelentkezőformot, és a megfelelő adatokkal submitolja (a hiba ott van, hogy csak a form szignatúrát veszi figyelembe, a domaint nem), JS-ből hozzáfűzhetsz egy onsubmit eseménykezelőt az adott formhoz, amelyben egy return false-szal máris megállítottad a form elküldését az eredeti szerverre, viszont a jelszó és a név bennevan. Kiolvasod JS-ből, majd egy XMLHTTPRequest-en keresztül elküldenéd a saját szerveredre, ha nem lenne letiltva a cross-site scripting, de sajnos akkora exception-t dob egy ilyen kód, mint a ház. Magyarul nem tudsz vele mit kezdeni. Ezzel csak arra szeretnék rávilágítani, hogy a hiba kihasználásához gyakorlatilag NINCS ÉRTELME JavaScriptet használni, és nem is kell. A FF biztonsági rése a HTML-Injection ellen védetlen lapokat érinti (de az ilyen lapok a többi böngészőt is meg tudják trükközni), illetve akkor jelent még gondot, ha két oldalnak egyforma a bejelentkezőformja (pl az egyik egy phishing-site).

    Változatlanul arra kérlek, ne szakértsél, ha nem értesz hozzá, vagy írj egy olyan javascriptet, ami a FF szóban forgó sérülékenységét használja ki, akkor bocsánatot fogok kérni. De ilyen JavaScriptet sajnos nem tudsz nekem mutatni.