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
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:
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!
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
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:
É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:
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!
Az XDR objektum
xdr = new XDomainRequest();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:
xdr.open('POST', 'http://www.mr.bigglesworth.com');
xdr.send(data);
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];második odlal:
doc.contentWindow.postMessage('Hello Mr. Bigglesworth!');
document.attachEvent('onmessage',function(e) {Hash írási jog
if (e.domain == 'example.com') {
if (e.data == 'Hello Mr. Bigglesworth!') {
e.source.postMessage('Meow! Meow! Dr. Evil!');
} else {
alert(e.data);
}
}
});
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:
<?Az eredmény IE7 alatt:
header("location: res://ieframe.dll/24/123");
?>
<?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!
nem értem 2008.03.15. 22:04:33
buherator · http://buhera.blog.hu 2008.03.15. 22:23:00
Terveüdekszi 2008.03.15. 22:42:17
buherator · http://buhera.blog.hu 2008.03.15. 22:53:49
grigorij (törölt) 2008.03.15. 23:05:10
buherator · http://buhera.blog.hu 2008.03.15. 23:17:00
Mr. X 2008.03.15. 23:39:39
kázmér 2008.03.16. 08:20:20
Nekem nem jött be az IE8. Kegyetlenül lassú.
mercenaryntx · http://yithian.freeblog.hu 2008.03.16. 13:36:08
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
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
(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