XSS támadás PDF fájlok segítségével
Anonim beküldőnk hívta fel a figyelmünket Jeremiah Grossman blog bejegyzésére, ami az Adobe Acrobat Reader 7-es és korábbi verzióinak sérülékenységét írja le. Bárki adhat egy
Egyrészt mivel a kérés nem megy át a szerveren (a kettőskereszt utáni részt a böngészők nem küldik el a szervernek), elvileg nem lehet szerver oldalon védekezni ellene. Másrészt lehetőség van alapértelmezett helyeken lévő PDF fájlokra hivatkozni, és így a JavaScript kódot a helyi fájlok környzetében futtatni, azaz a legalacsonyabb biztonsági szinten, ahol a legtöbb kellemetlen dolog megtehető.Az Adobe tegnap ezügyben kiadott dokumentuma szerint a 8-as verzióra történő frissítést javasolja, illetve dolgoznak a 7.0.9-es kiadás elkészítésén, ami javítani fogja a hibát. Jeremiah pedig szerver oldali védelmi próbálkozásokra ad linkeket, amiket azonban még nem tart kielégítőnek.
■ http://example.com/path/to/file.pdf#s=javascript:alert(”xss”);
típusú linket, mely úgy tűnik, mintha a webhelyünk (most example.com) oldalára mutatna, de helyette a böngésző segítségével a JavaScript kódot futtatja le. Sajnos több probléma is van ezzel az XSS támadással.Egyrészt mivel a kérés nem megy át a szerveren (a kettőskereszt utáni részt a böngészők nem küldik el a szervernek), elvileg nem lehet szerver oldalon védekezni ellene. Másrészt lehetőség van alapértelmezett helyeken lévő PDF fájlokra hivatkozni, és így a JavaScript kódot a helyi fájlok környzetében futtatni, azaz a legalacsonyabb biztonsági szinten, ahol a legtöbb kellemetlen dolog megtehető.
file:///C:/Program%20Files/Adobe/Acrobat%207.0/Resource/ENUtxt.pdf#blah=javascript:alert("XSS");
Foxit Reader
Valóban gyors!
Foxit Reader
kérdés
1. miért baj az, hogy így is lefut egy javascript? mi kárt tehet vagy mi rosszat? Értem, hogy nem oda való, csak nem értem mit kezd ezzel egy "csúnya bácsi".
2. Ez a foxit tényleg jó gyors, de sajna a keresője lassú és adobe readerhez hasonlóan az ékezetekkel nem bírkózik meg, pedig az 5 megás pdfjeimben lenne mit keresgélni:)
Előre is köszönöm a választ az első kérdésemre.
szerintem nem a JS futás a baj
A legtöbb biztonsági rést nem használják ki azonnal, de soha nem tudhatod, hogy kinek jut eszébe kombinálni egy másik ismert hibával és a kettő már együtt okozhat galibát stb., végtelenek a lehetőségek a rosszalkodásra.
Az más kérdés, hogy a JS kód valójában mennyire lehet ártalmas, meg hogy a helyi fájlokat nem valószínű, hogy elérheti vele bárki stb. Ennyire mélyre már úgyis csak azok ásnak, akik spekulálnak valamiben. :)
Szóval, csak szépen javítsák ki!
megnyugodtam
Példa
helyi fájlt?
Localhost
windows kockázatok
Ha jávascriptből meg tud hívni egy weboldalt, ami pl. nem is html, hanem egy spion vagy féreg, máris formázhatja a diszket, de akár meg is személyesíthet, és a nevedben megrendelhet akár 3 konténer piros nylon esőkabátot is. :))
előre is bocs
ABSZOLUT az a gond, hogy lefut a JavaScript. Ezáltal az oldalad XSS támadható válik minden igyekezeted ellenére mindenféle szerver oldali programozásbeli hiba nélkül mindössze az által, hogy kitettél egy PDF-et az oldaladra. Ez meg pl. azt is jelenti, hogy jóformán gyerekjátékká válik az oldaladon pl. a session lopás, de a "csúnya bácsik" egyéb tetszőleg komiszságokat követhetnek el.
Amúgy meg érdemes lenne előbb elolvasnod a hivatkozott linket, és láthatod, hogy pl. a lokális fájlokra történő linkelés is mennyire komoly biztonsági fenyegetettséget jelent akár számodra is, amennyiben 7-es Acrobat Readered van, és az installerrel tetted fel (a Program Files mappába, de ez is ugye rengeteg embernél az alapértelmezett). Ilynekor a JS hozzáfér lokális fájlokhoz is pl..
Abban viszont egyet értünk, hogy javítsák csak meg, viszont itt ugye megint előjön, hogy mennyi idő lesz, amíg a javított verzió/update elterjed az átlag userek körében.
Üdv,
Felhő
Acrobat Reader gyorsítás
a gyengébbek kedvéért?
Megtenné valaki, hogy egy kicsit részletesebben leírja, vagy belinkel egy-két okosítást magyar nyelven?
Az angol nem megy, a témában talált (adódhat a keresés indításából) oldalak pedig előbb, vagy utóbb angol nyelvű oldalon kötnek ki.
Ami nekem lejött, hogy valahogy rá kell vegye az "áldozatot" arra, hogy egy adott linkre kattintson. Ha ez így van, akkor létre kell hogy hozzon egy ugyanolyan oldalt mint az enyém?
különben a linkem végére, hogy lehet odabiggyeszteni a scriptet?
Egyébként ebből nekem az jött le, ogy ez a XSS sokkal nagyobb probléma mintsem hogy amúgy egy igen elterjedt progi hibás!
Ha nem muszály nem telepítenék AdobeReadert, hogy megtapasztaljam, vagy csak lássam mire képes. Amiért viszont szeretnék tisztán látni, annak az az oka, hogy a céges honlapunkon (amit jómagam heggesztgetek) rendszeresen sok a PDF és hiába minden igyekezetem, a tapasztalatom az, hogy a népek nem tepelítgetnek progikat. Ha van AdobeReaderjük akkor lesz@...ják, hogy van-e alternatíva vagy sincs. Volt már olyan is, hogy egy kollégám panaszolta, hogy otthon nem tudta megnyitni a fájlt, mert, hogy nem történt semmi. Miután megmutattam, hogy előtte katt ide meg oda (amit ki is helyeztem az oldal tetejére A Foxit eredeti logojával annak ellenére, hogy a színvilága merőben más mint a miénk), aztán fog az menni. Másnap visszajött, hogy jéé, tényleg...
szal ahogy Felhő is írta:
Ezt nem biztos, hogy ezen a munkahelyen szeretném megvárni, de azt se szeretném, hogy e miatt potenciális "áldozatok" megszerzéséhez aszisztáljak.
gábor
kis példa
Igen, rá kell venned, hogy kattintson. Ennek lehet módja az is, ha emialben terjeszted a linket, vagy van egy másik kapcsolódó oldal, ahová be tudod jutatni, mondjuk egy ottani sebezhetőség kapcsán stb..
Itt ez a link:
Amennyiben valamilyen extra teljesítmény szempontok nem játszanak be, akkor számotokra jó lehet egy a mod_rewrite-os megoldás.
Üdv,
Felhő
hogy jön a képbe a PDF?
Gondoltam a melóhelyemen az egyik gépre teszek Adobe-ot mielőtt tovább értetlenkedek, mert nekem így tényleg nem világos. Sajna nem volt erre időm, így hát ismét itt vagyok.
Azt értem, hogy a # után a böngésző értelmezi (lefuttatja) a szkriptet, de a"ráveszem a kattintásnál" elvesztettem a fonalat.
első elképzelésem a dologról:
második:
a
XMLHttpRequest()
függvénnyel megadható a uxss.js fájl elérési útja? (egy valamire való szkript ugye nem 8-10 sor, tehát kell egy külső fájl)... ha igen, akkor a # előtt bármi állhat
... ha nem, akkor mégsem úgy kezdődik, hogy http://mypage...
szal szerinted (szerintetek) mit nem értek?
gábor
ui:
közben olvasgatom (nem röhög) ezt és érzem, hogy itt lesz válasz a kérdéseimre, csak hát angol
a PDF plugin bugos
Hmm, nem tiszta abból amit írtál, hogy mit nem értesz.
Van a szervereden egy PDF: http://mypage.com/foo.pdf. Ezek után valaki elhelyezi egy internetes oldalra a következő linket:
Üdv,
Felhő
egy másik lehetséges megoldás
Ez az apache konfig részlet is lehet megoldás:
Felhő