欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Cross Iframe Trick:the Old New Thing(圖)

互聯(lián)網(wǎng)   發(fā)布時(shí)間:2008-10-08 19:36:28   作者:佚名   我要評(píng)論
我思考了很久才把這里面的錯(cuò)綜復(fù)雜的關(guān)系整清楚,我想很多人看我下面的paper會(huì)睡著,或者干脆“一目百行”的跳過(guò)去,但如果你真的想弄懂,請(qǐng)調(diào)試我的 每一個(gè)poc,會(huì)非常有助于理解(雖然你還是可能會(huì)暈)。請(qǐng)尊重俺的勞動(dòng)成果,碼這么多字不容易。歡迎技術(shù)討論,但謝絕沒(méi)仔
實(shí)例如下:
  1.html的代碼:
1.html:
// 1.html上的彈窗函數(shù)
function tt1(fvck){
alert(fvck);
}
同在 www.A.com 域下的 4.html代碼:
4.html:
//parent.parent.tt1("fvck tt1"); 也可以
top.tt1("fvck tt1"); // 調(diào)用 1.html 里的 tt1() 函數(shù)
在 www.B.com 域下的3.html 作用是iframe proxy,其代碼為:
3.html:
var tt1_4 = document.createElement("iframe");
tt1_4.src = "http://www.A.com/4.html";
document.body.appendChild(tt1_4);
訪問(wèn) http://www.A.com/1.html 后,將通過(guò) http://www.B.com/3.html ,利用 http://www.A.com/4.html 執(zhí)行 http://www.A.com/1.html 的腳本



  正確執(zhí)行了腳本。
  跨域的問(wèn)題已經(jīng)POC過(guò)了,那么存在什么樣的風(fēng)險(xiǎn)呢?
  先講跨域的問(wèn)題。
  首先,由于4.html在這里關(guān)聯(lián)性最小,所以我們假設(shè)4.html是我們?cè)谟駻下上傳的某個(gè)文件,或者是存在XSS漏洞的某個(gè)頁(yè)面。
  那么對(duì)于域A下的頁(yè)面 1.html,它包含了 域B的3.html,當(dāng)域B下的3.html被惡意用戶(hù)控制時(shí),惡意用戶(hù)就可以通過(guò)4.html,直接攻擊到 1.html
  所以我們有了第一個(gè)攻擊方法:
  Attack Vector 1:控制iframe proxy后可以跨域攻擊父頁(yè)面
  由于域B和域A不是同一個(gè)域,所以域A的安全級(jí)別和一些防范措施很可能無(wú)法涉及到域B,這種信任上的危機(jī)將帶來(lái)一定的風(fēng)險(xiǎn)。
  請(qǐng)注意和普通掛馬或者是XSS攻擊不同的是,域A上的這個(gè)頁(yè)面是我們無(wú)法控制或篡改的,但他正好包含了一個(gè)指向域B上頁(yè)面的iframe,所以我們才可以通過(guò)域B上的那個(gè)頁(yè)面跨域攻擊它。
  比如,www.baidu.com/av.html 可能包含了某個(gè)廣告網(wǎng)站的一些頁(yè)面,他使用的是iframe的方式:
  那么這個(gè)時(shí)候,攻擊者如果能夠控制evil.html,就可以在evil.html 中包含一個(gè)指向 http://www.baidu.com/evilupload.html 的iframe;
  當(dāng)正常用戶(hù)瀏覽 http://www.baidu.com/av.html 時(shí)候,就會(huì)受到來(lái)自 evilupload.html 的XSS攻擊, 而攻擊的來(lái)源是 http://www.advertise.com/evil.html 發(fā)起的。
  這種跨域的攻擊將會(huì)極其隱蔽,因?yàn)檎嬲膼阂饽_本是寫(xiě)在evilupload.html 里的,所以即便查看了 av.html 和 evil.html 的代碼也無(wú)法看到任何惡意腳本,只能看到兩個(gè)iframe。
  對(duì)于IE 6, 甚至可以把 4.html 改名為 4.JPG 或者 4.RAR, 在iframe proxy中引用后,都將執(zhí)行腳本。(想到GIFAR沒(méi)?)
  而Firefox 2 則必須保持為 html 文件才能保證腳本的執(zhí)行。
  控制evil.html的方法有很多種,最常見(jiàn)的包括直接攻擊域B服務(wù)器、篡改客戶(hù)端網(wǎng)絡(luò)中的數(shù)據(jù)、或者是在evil.html 中放置一個(gè) 持久性的XSS,都將導(dǎo)致 evil.html 被控制
  通過(guò)控制 evil.html,調(diào)整不同的iframe src地址,我們可以得到第二種攻擊方法。
  Attack Vector 2:在iframe proxy中直接引用一個(gè)非持久性XSS(反射XSS),可以讓該XSS在父窗口中持久存在。
  很多人非常鄙視非持久性XSS(反射型XSS),認(rèn)為這種XSS只能依靠欺騙的手段去騙人點(diǎn)擊,才能讓攻擊正常實(shí)施起來(lái)。
  其實(shí)讓非持久性XSS變得持久的方法,已經(jīng)出現(xiàn)過(guò)好多次了。比如利用applet、利用flash的AS腳本、利用IE的Ghost 頁(yè)面。
  那么今天這種方法又要多一個(gè)了:利用 Cross Iframe Trick
  實(shí)例如下:
  設(shè)想http://www.A.com/4.html 存在一個(gè)XSS漏洞,其代碼如下:
4.html:
//parent.parent.tt1("fvck tt1");
//top.tt1("fvck tt1");
document.write("window.location.href "\' >");
這里存在一個(gè)基于DOM的XSS漏洞,當(dāng)在瀏覽器地址欄里輸入:
http://www.A.com/4.html#'>alert(/XSS/);時(shí),alert()將被執(zhí)行。
此時(shí),利用 Cross Iframe技術(shù),在 3.html 中直接構(gòu)造iframe地址為XSS的地址。
3.html:
//function alertpoc(){ alert("alert POC"); }
var tt1_4 = document.createElement("iframe");
tt1_4.src = "http://www.A.com/4.html#\'\>\alert(\"Domain=\" document.domain)\;\\";
document.body.appendChild(tt1_4);
  訪問(wèn) http://www.A.com/1.html 后,4.html里的XSS漏洞將被利用,并彈出可愛(ài)的小框框


  如果說(shuō),前面講的兩種方法是利用的Rule 2,那么Rule 1能否利用起來(lái)呢?思考后,發(fā)現(xiàn)Rule 1雖然沒(méi)有跨域風(fēng)險(xiǎn)高,但還是會(huì)帶來(lái)一些問(wèn)題的。

相關(guān)文章

最新評(píng)論