自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

漏洞追蹤:最新IE UXSS漏洞技術(shù)分析

安全 漏洞
最近David Leo在Full Disclosure上爆出了一個ie的uxss漏洞,可以繞過ie的同源策略。本文簡要分析一下這個漏洞的原理。

最近David Leo在Full Disclosure上爆出了一個ie的uxss漏洞,可以繞過ie的同源策略。本文簡要分析一下這個漏洞的原理。

漏洞追蹤:最新IE UXSS漏洞技術(shù)分析

攻擊過程

  1. <iframe src="redirect.php"></iframe> 
  2. <iframe src="https://www.google.com/images/srpr/logo11w.png"></iframe> 
  3. <script> 
  4.     top[0].eval('_=top[1];alert();_.location="javascript:alert(document.domain)"');  
  5. </script> 

poc中第一個 iframe 利用一個302跳轉(zhuǎn),跳轉(zhuǎn)到目標(biāo)域,第二個iframe也加載了目標(biāo)域的一個資源,和兩個資源可以是不同的資源,當(dāng)然跟Content-Type也沒有關(guān)系。

上述 poc 在瀏覽器中的渲染過程大概如下:

1、瀏覽器渲染第一個 iframe,并加載 redirect.php 的資源;

2、瀏覽器渲染第二個 iframe,并加載對應(yīng)的資源;

3、瀏覽器在第一個 iframe 上執(zhí)行 eval 中的 js 腳本,分為一下幾個步驟:

a.將第一個 iframe 賦值給一個變量

b.彈出一個alert 框

c.用戶關(guān)閉 alert框

d.通過給 location 賦值的方式,在目標(biāo)域上執(zhí)行 payload

4、payload 在第一個 iframe 所在的域中執(zhí)行,也就是目標(biāo)域。

漏洞真相

貌似漏洞的關(guān)鍵在那個 alert 彈窗,由于 js 是單線程運(yùn)行的,所有的彈窗(alert, prompt, and confirm)還有異步函數(shù)都會阻斷瀏覽器進(jìn)程,但是,這塊的邏輯根據(jù)瀏覽器的不同,實(shí)現(xiàn)也有所不同。來看看上面的 POC 在不同瀏覽器上的渲染時間圖:

FireFox

 

[[127513]]

 

當(dāng)alert框彈出的時候,firefox 會繼續(xù)處理網(wǎng)絡(luò)請求,當(dāng)?shù)谝粋€ iframe 跳轉(zhuǎn),并且加載了目標(biāo)域的資源之后,alert 彈窗將會被自動關(guān)閉,js 腳本停止執(zhí)行,所以,后續(xù)payload 代碼不會執(zhí)行。

Chrome

 

[[127514]]

 

當(dāng)alert 彈窗彈出的時候,所有網(wǎng)絡(luò)請求都終止了,所有后續(xù) payload 中的 js 還是在原有的域上執(zhí)行的。

IE

 

[[127515]]

 

當(dāng) alert 彈窗彈出的時候,IE 會繼續(xù)處理網(wǎng)絡(luò)請求,當(dāng)?shù)谝粋€ iframe 跳轉(zhuǎn)之后,目標(biāo)域的資源加載完成之后,用戶關(guān)閉彈窗,payload 后續(xù)的代碼是在目標(biāo)域上執(zhí)行的。

本質(zhì)原因

當(dāng)?shù)谝粋€ iframe 跳轉(zhuǎn)之前,payload 中的 js 都是在原有的域上執(zhí)行的,這不會繞過 SOP,然而,當(dāng)?shù)谝粋€ iframe 跳轉(zhuǎn)之后,IE 會轉(zhuǎn)換相關(guān)的域。所以,之前 payload 中的 js 腳本的域切換到目標(biāo)域了,而不是原本的域,所以,就可以在目標(biāo)域上執(zhí)行任意代碼。注意,這里第二個 iframe 也是必須的。

利用成本&&其他

根據(jù)現(xiàn)有的 payload,貌似整個利用過程需要用戶參與,事實(shí)上并非如此,看如下 payload:

  1. <iframe src="redirect.php"></iframe> 
  2. <iframe src="https://www.google.com/images/srpr/logo11w.png"></iframe> 
  3. <script> 
  4.     top[0].eval('_=top[1];with(new XMLHttpRequest)open("get","sleep.php",false),send();_.location="javascript:alert(document.domain)"');  
  5. </script> 

alert 彈窗的目的是阻塞瀏覽器進(jìn)程,上面 payload 用一個異步請求來達(dá)到同樣的效果。

影響范圍

目前 win7-win8.1上面的 ie10-ie11都受影響。

建議普通用戶先切換到其他瀏覽器吧。

ref:

Simplified PoC

PoC without user interaction

參考來源:innerht.ml

責(zé)任編輯:藍(lán)雨淚 來源: FreeBuf
相關(guān)推薦

2013-07-18 15:09:27

2013-09-25 10:46:35

零日漏洞DeputyDog攻擊IE零日漏洞

2009-08-15 10:34:14

安全郵件管理Windows Liv

2010-01-19 21:01:28

2017-09-28 10:12:51

2009-03-07 09:59:16

2014-10-21 13:28:20

2021-11-07 07:46:29

源碼漏洞惡意代碼

2014-12-03 10:37:45

2013-10-15 10:22:43

2014-11-27 09:31:26

2009-03-27 23:25:17

2015-02-05 15:58:06

2010-08-03 11:08:57

2015-03-23 12:26:49

2020-10-14 09:44:52

漏洞

2010-01-25 11:28:59

2015-03-04 10:11:59

IE漏洞

2015-02-28 09:36:52

IETrident

2015-03-13 18:08:49

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號