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

Hackeljünk Internet Explorert!

2008.03.15. 20:41 | buherator | 12 komment

Ronald legújab posztja (kicsit szétszórtan írt a srác, de a lényeg szerintem érthető):

Ma mókáztam egy kicsit az Internet Explorerrel és kipróbáltam az új IE 8 beta-t is. Emellett össze is vetettem az új biztonsági lehetőségeket az IE7-tel. És mindkét verzóról sokat lehet beszélni. A használhatóságról inkább ne kérdezzetek. Szerintem borzalmas. Nem tudom észrevettétek-e, de az egérrel történő szövegkijelölés igazi kihívásáá vált. Valami elég furcsa határolókat használnak, mert legtöbbször olyan dolgokat is kijelölsz, amiket nem is akartál. Tipikusan Microsoft, de térjünk át a biztonságra! Már biztos hallottál vagy olvastál az új, XDR nevezetű lehetőségről, melynek segítségével domain-közti kéréseket hajthatunk végre. Ha mégsem,  most  röviden  elmagyarázom a dolog lényegét néhány más új lehetőség mellett, mielőtt belemegyek az IE7 és IE8 "visszafejtésébe".

Az XDR objektum

xdr = new XDomainRequest();  

xdr.open('POST', 'http://www.mr.bigglesworth.com');

xdr.send(data);
Mr. Bigglesworth-nek ilyenkor jóvá kell hagynia az XDomainRequest fejlécek küldését, de ezt mi is megtehetjük, az alábbi fejléc visszaküldésével a legitimációt kérő szervernek:

Response.AppendHeader("XDomainRequestAllowed","1");

Nagyszerű, XSS pofonegyszerűen! Nincs szükség IFRAME-ekre, képekre vagy CSS-re. A tiszta JavaScript elintéz mindent. Ez nyilvánvalóan átver sok ma működő XSS szűrőt, hogyha használsz ilyet, figyelj oda erre a kis szörnyetegre! Véleményem szerint ez kiszélesíti a támadók mozgásterét, mivel több lehetőség nyílik XSS-re és férgek terjesztésére. Az XDR objektum visszatér a responseText-tel, amivől az alábbiak olvashatók ki:
xdr.onerror

xdr.ontimeout

xdr.onprogress

xdr.onload

xdr.timeout

Hasznos, ha foglalkozol férgekkel és hasonlókkal.

Következőnek azt látom, hogy bevezették a dokumentumközi üzenetküldést a postMessage objektumon keresztül. Az Operában már van ilyen, és én nem bízom benne biztonsági szempontból. A funkció lehetővé teszi, hogy egy eseményfigyelő definiálásával egy dokumentum beleírjon egy másikba, amely azonos munkamenetben, ugyanarról a hosztról fut. A spoofing jut eszembe, de más támadási irányok is elképzelhetők.  A valódi kérdés azonban, hogy mire jó ez? Én nem tudom.

Könnyed megvalósítás

első oldal:
var doc = document.getElementsByTagName('iframe')[0];

doc.contentWindow.postMessage('Hello Mr. Bigglesworth!');
második odlal:

document.attachEvent('onmessage',function(e) {

if (e.domain == 'example.com') {

if (e.data == 'Hello Mr. Bigglesworth!') {

e.source.postMessage('Meow! Meow! Dr. Evil!');

} else {

alert(e.data);

}

}

});
Hash írási jog

Egy másik dolog amin megakadt a szemem: az URL-ek hash-ei írásra hozzáférhetők. Ez nem tűnik jó megoldásnak, nem szeretném ha a JavaScript manipulálná a hash-eket. Ez nem csak idegesítő lehet, de biztonsági kockázatokat is rejthet az oldalad felépítésétől függően.

Webslice-ok

Ha jól értem, ezzel a lehetőséggel a felhasználók könyvjelzőzhetik, vagy berkahatják a feddolvasójukba slice-okat. Itt leginkább valamilyen puffer túlcsordulást tudok elképzelni, mivel az IE8 egy 'hslice' nevű tagre figyel minden megnyitott oldalon. Érdemes lenne ráereszteni egy fuzzert!

<div class="hslice" id="main">

<h2 class="entry-title">All I want are friggin' sharks with friggin' lazer beams attached to their heads! </h2>

</div>

GlobalStorage & SessionStorage

Az IE8 Mozilla nyomdokaiba lépett, és bevezette a Session objektumot. Nem mondanám, hogy le vagyok nyűgözve. 10MB-nyi információ tárolását engedélyezni egy ilyen objektumben (IE8 esetében ez egy XML fájl) nem túl okos dolog. Legyen elég a permanens tár a különböző nyomkövetők, XSS férgek és spyware-ek tárolására!

IE8 GloblStorage

<script>



var storage = globalStorage[location.hostname];



storage.some_string = '

Ladies and Gentlemen welcome to my underground lair.

I have gathered here before me the worlds deadliest assassins.

And yet each of you has failed to kill Austin powers.

That makes me angry. And when Dr. Evil get angry, Mr. Bigglesworth gets upset.

And when Mr. Bigglesworth gets upset...people DIE!!!

Why must I be surrounded by freakin idiots. Mustafa, Frau Farbissina...

';

</script>

Az IE7 és IE8 visszafejtése

[...] Először az IE8 gátolja meg a fejléc átirányításokat helyi fájlokra, ami egy elég "gonosz" lehetőség még az IE7-ben is:
<?
header("location: localfile ");
?>

És ezt az IE7 követi, míg az IE8 már nem.

Ez azért veszélyes, mert fel tudunk dolgoztatni pl. egy rendszerinformációkat tartalmazó XML fájlt. Ez hasznos felderítéseknél vagy más támadásmintáknál:
<?
header("location: res://ieframe.dll/24/123");
?>
Az eredmény IE7 alatt:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 

- <!-- Copyright (c) Microsoft Corporation

-->

- <assembly xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" manifestVersion="1.0">

<assemblyIdentity name="Microsoft.Windows.InetCore.ieframe"processorArchitecture="x86" version="5.1.0.0"

type="win32" />

<description>Windows IE</description>

- <dependency>

- <dependentAssembly>

<assemblyIdentity type="win32"name="Microsoft.Windows.Common-Controls"version="6.0.0.0" processorArchitecture="*"

publicKeyToken="6595b64144ccf1df" language="*"

/>

</dependentAssembly>

</dependency>

- <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">

- <security>

- <requestedPrivileges>

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

</requestedPrivileges>

</security>

</trustInfo>

- <asmv3:application>

- <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">

<dpiAware>true</dpiAware>

</asmv3:windowsSettings>

</asmv3:application>

</assembly>

Ha jó megnézed, a res://ieframe.dll/24/123 helyet olvastam, ami az ieframe.dll-ben található, ami maga az IEDataObjectWrapper (InProcServer32). Nem tudom, hogy miért engedik még mindig ennek a fájlnak a böngészését. A DLL-t megadhatod IFRAME, XML és JavaScript forrásként is. Továbbmentem, és feltérképeztem az IE8 összes adatobjektumát, és néhányat az IE7-ből is.

IE8:

IE7:

Ugyanezek megtalálhatók máshol is.

Érdemes velük játszani egy kicsit, én még nem ástam ennél mélyebbre, de érdemes lesz közelebbről megvizsgálni a dolgot. Most már azt hiszem elég építőkövet adtam az IE tanulményozásához. Ha bármi figyelemreméltót találtok, ne habozzatok megosztani velem!

Jó szórakozást!

Címkék: internet explorer

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.

nem értem 2008.03.15. 22:04:33

És milyen indíttatásból akarsz IE használatra bárkit is rábeszélni???

buherator · http://buhera.blog.hu 2008.03.15. 22:23:00

Rá akarok beszélni? IE8 egyébként akár még jó is lehetne, bár én még nem próbáltam, de az 7 szerintem nem mutat rossz irányba. FF2 nagyon bugos (ettől függetlenül azt használom...), de abból is jön a 3, az is ígéretesnek tűnik.

Terveüdekszi 2008.03.15. 22:42:17

Bugos a FF? Nem tudom.Több gépen is használom, sehol sincs vele bajom. Elégedett júzer vagyok.

buherator · http://buhera.blog.hu 2008.03.15. 22:53:49

Terveüdeszki: ajánlom a firefox cimkét!

grigorij (törölt) 2008.03.15. 23:05:10

Miért használsz IE-t? Vírust akarsz?

buherator · http://buhera.blog.hu 2008.03.15. 23:17:00

Háromból két embernek nem esik le a poszt lényege, akkor elsírjam magam? grigorij, az utóbbi időben minden webes kértevő működik FF-on is, az IE7 pedig már nem az halom kaki, ami a 6-os volt. Egyébként leírom megint, csak a Te kedvedért: _Firefoxot használok_ (Linuxon...).

Mr. X 2008.03.15. 23:39:39

ó te boldog és szép új világ.. vajon lőhetek be még egy virtuális gépet tesztelésre, vagy megfér egy windows-on az IE7 és az IE8, nem tudjátok?

kázmér 2008.03.16. 08:20:20

Mr.X ! Felteszed az IE8-at, és a fejlécben gombnyomásal emulálhatsz egy IE7-et. Ha újraindítod a böngészőt. Vissza ugyanez.
Nekem nem jött be az IE8. Kegyetlenül lassú.

mercenaryntx · http://yithian.freeblog.hu 2008.03.16. 13:36:08

azert jo latni, hogy meg mindig azok osztjak leginkabb az eszt browser-kerdesben, akiknek fogalmuk sincs az egeszrol.

termeszetesen az enduserektol nem varja el senki, hogy megertse az ie zsenialitasat a firefox-szal szemben, hiszen onnantol, hogy a microsoft letert a szabvany altal kijelolt utrol, a fejleszto kenyelmet helyezte eloterbe a felhasznaloeval szemben, mig a mozilla ezen forditott, a fejlesztot rakta inkabb a fasz masik oldalara, mondvan szopjon inkabb az.

ez gyakorlatilag jo uzletpolitikanak bizonyult mindaddig, amig az ie piaci reszesedese az 9x% korul karistolt, hiszen ezaltal vedve volt minden kartevotol, nyugodtan hirdethette a biztonsagossag igejet, amit jol lathato modon nagyon sok laikus be is szopott. ezert van az a kettosseg, hogy mig fejleszteni ie-ben (lenne) celszerubb inkabb, hasznalni (meg mindig) a firefox-ot erdemesebb inkabb. s mikozben az igenyek egyre inkabb a firefox iranyaba mennek el, ugy kenytelenek a fejlesztok egyre tobb mindenrol lemondani. nesze neked innovacio! az egesz browserpiac atalakuloban van, s most 2008 a szabvanyossag, a crossbrowserseg, a firefox szintre lebutitott ie a leginkabb "eladhato".

mindazonaltal jo latni, hogy az ie8 azert a fejlesztok szamara is tartogat nemi ujdonsagot az ie7-tel szemben, ami viszont csak ujabb security exceptionoket es bosszusagokat hozott. persze nyilvan hackolhato lesz ez is, mint minden, ami tulzott alkotoi szabadsagot enged. ez egy ketelu fegyver, minden joban eredendoen ott figyel a rossz is, csak azon mulik, milyen kezekbe kerul. de csak azert nem lesz valami a satan muve, mert valaki, aki nem eloiras szerint hasznalja, megegeti magat vele.

fraki 2008.03.16. 21:42:33

„Nem tudom észrevettétek-e, de az egérrel történő szövegkijelölés igazi kihívásáá vált. Valami elég furcsa határolókat használnak, mert legtöbbször olyan dolgokat is kijelölsz, amiket nem is akartál.”

A Safariban sokkal erősebb ez a viselkedés. És a Safari rendelkezik ma a legjobb motorral a világon. Ez nem tudom, hogy jön most ide. De mondom ezt mint operás.

atomgape 2008.03.19. 10:59:54

mercenaryntx: Gondolkodtam jó sokáig, hogy mit akarsz mondani de nem jött le. Ami leesett és igaznak tartom, hogy nagyon sokáig fennált az a helyzet, hogy az IE6-ot könnyű volt programozni (bár nem volt szabványos), a Netscape-et k.nehéz, ezért a programozók le is szoktak róla. És ennek következtében az új szabványokra is fütyült mindenki. Aztán a Mozilla, Opera megjelenése után egy rakás webes szakember fellélegzett, hogy végre lehet nyomatni a szabványokat. Most előállt az a helyzet, hogy a régi, csak IE-n működő kódokat nem cserélik le és csak igen ritkán látja be egy cég, hogy figyelembe kellene venni, ha nem is más böngészőket, de legalább egy XHTML és CSS2 szabványt; dinamikus HTML-t DOM-mal kéne írni stb. Ezt a régi kóderek most is telibeszarják, de egyre többen látnak benne fantáziát. Így aztán a MS gyorsan hozza kifelé az újabb és újabb, bugos és idióta feature-öket tartalmazó verziókat, hogy fenntarthassa az IE uralmát amellett, hogy megvalósítja az alternatív böngészők jó ötleteit. Ezzel a programozókat továbbra is kiszolgálja, hiszen minden működik és még sokkal több, a felhasználók pedig kénytelenek azt használni, amin fut az adott webes szoftver.

(Ellencsapás jeligére ha lehetséges, akkor úgy gyártok kódot és felületet, hogy IE-ben is működjön minden de abban nézzen ki lehetőleg minél szánalmasabban. És amikor rákérdeznek, hogy a bemutatón nem így nézett ki, akkor szoktam mondani, hogy igen, a Firefoxban szebb, de ha ők ragaszkodnak az IE-hez, nem tudok mit csinálni, ez ilyen... :-p)

atomgape 2008.03.19. 11:03:29

Ja, elfelejtettem a lényegre reagálni: Ez, hogy dll-be belekérdezek, nagyon durva... erről nem is tudtam. Mondjuk az IE8 remek feature-eiről sem. Mi kis cégemnél még IE6-ot használunk (a már említett kötelező jelleggel), vmware-ben meg ott figyel a 7-es is (meg persze nyilván a FF és Opera, ez nem is kérdés - a webkit motor egyelőre részemről ejtve vagyon).