CH azonosító
CH-11999Angol cím
Internet Explorer UXSS vulnerabilityFelfedezés dátuma
2015.02.11.Súlyosság
MagasÉrintett rendszerek
Internet ExplorerMicrosoft
Érintett verziók
Windows 7 és 8.1 alatt futó Internet Explorer 10, 11
Összefoglaló
Nemrég nyilvánosságra került az Internet Explorer XSS sebezhetősége, amely a Same-Origin Policy(SOP) teljes kikerülését teszi lehetővé a legutóbbi IE verzió esetében.
Leírás
Az eredeti „megvalósíthatósági” példa egy leegyszerűsített formában:
<iframe src=”redirect.php”></iframe>
<iframe src=”https://www.google.com/images/srpr/logo11w.png”></iframe>
<script>
top[0].eval(‘_=top[1];alert();_.location=”javascript:alert(document.domain)”‘);
</script>
Az egyszerűsített példa kettő iFrame-et tartalmaz, amelyek egy-egy HTTP átirányítással bírnak a megadott céltartományokba. Fontos megjegyezni, hogy az átirányítások nem feltétlen mutatnak ugyanarra a domain-re, valamint a Content-Type sem lényeges szempont.
Összefoglalva:
- A böngésző veszi az első iFrame-et és indít egy kérést a redirect.php felé.
- A böngésző veszi a második iFrame-et és az ott megadott forrás felé is indít egy kérést.
- Majd végrehajtja a megadott scriptet, ami meghívja az eval függvényt az első frame-ben megadott Windows Proxy objektumon és végrehajtja a következő lépéseket:
- A második frame Windows Proxy objektum értékét változóba teszi.
- Megnyit egy figyelmeztetést tartalmazó párbeszéd ablakot.
- Az ablakot a felhasználó bezárja.
- Megváltoztatja a helyét a változón keresztül és befecskendezi a káros kódot.
- A befecskendezett kód végrehajtása a második frame-ben történik a megadott célon.
Az első iFrame képes átirányítani bárhová, ami nincs a támadó forrásában.
Úgy tűnik a sérülékenység kapcsán a kulcs motívum a párbeszédablak, ugyanakkor a konkrét megvalósításban van különbség az egyes böngészők vonatkozásában:
Firefox
Mikor a párbeszéd ablak felugrik a Firefox továbbra is kezelni fogja a hálózati kéréseket. Miután az 1-es frame-beli átirányítás és betöltés megtörtént az eredeti script végrehajtás megszakításra kerül és ezzel az ablak is bezárul. (NS_ERROR_NOT_AVAILABLE: prompt aborted by user) Emiatt a párbeszéd ablak után már semmi nem kerül végrehajtásra.
Chrome
Mikor a párbeszéd ablak felugrik minden hálózati forgalom leáll, amíg az ablak manuális bezárásra nem kerül. Ezután a helyváltoztatás még lefut, de ez nem jelent veszélyt, mivel az 1-es frame eredete ugyanaz marad.
Internet Explorer
Mikor a párbeszéd ablak felugrik az IE továbbra is kezelni fogja a hálózati kéréseket. Miután ez kézzel bezárásra kerül, a helyváltoztatás már a célra fog lefutni.
Megoldás
A Microsoft még nem adott ki javítócsomagot. Ügyfeleik védelme érdekében a webes szolgáltatások üzemeltetői/fejlesztői az alábbi védelmi intézkedéseket tehetik az UXSS sérülékenység kihasználása ellen
- Az ‘X-Frame-Options’ HTTP fejléc bevezetése globálisan. Fontos, hogy minden kiszolgált elemnek tartalmaznia kell a fejlécet, még a ‘robots.txt’-nek és a statikus képeknek is.
- A letárolt cookie-k esetében legyen beállítva a ‘HttpOnly’ kapcsoló, a session cookie-k esetében mindenképpen.
- A megengedett maximális munkamenet hossz legyen rövidre állítva.
- Ha a session alatt változna az IP cím vagy a User-Agent, akkor a session-t érvényteleníteni kell.
Támadás típusa
Cross Site Scripting (XSS/CSS)Input manipulation (Bemenet módosítás)
Manipulation of data
System access (Rendszer hozzáférés)
execute arbitrary code
execute code
Hatás
Loss of confidentiality (Bizalmasság elvesztése)Loss of integrity (Sértetlenség elvesztése)
Szükséges hozzáférés
Remote/Network (Távoli/hálózat)Hivatkozások
CVE-2015-0072 - NVD CVE-2015-0072
Egyéb referencia: innerht.ml