XST攻击是利用服务器的调试方法 Trace 进行用户信息收集的一种攻击,因为 Trace 方法是会导致服务器原样返回客户端发送的内容(cookie,HTTP认证信息等)。
发动XST需要满足的条件:
1.“被攻击的服务器”允许 Trace/Track 方法(例如,http://www.example.com这个被攻击的站点允许使用Trace方法) 2.“攻击者”在自己的站点构造一个HTML页面,里面放上一些极具吸引力的内容(图片,文字标题等),点击这些内容 就会触发一段恶意JavaScript代码,这段代码主要的作用: (1)以Trace方法向http://www.example.com这个站点发送请求,而“被攻击的用户”也恰恰好是这个站点的用户并且 曾经登录站点(意味着会携带着cookie和HTTP认证信息去请求http://www.example.com), (2)然后就会接收到服务器原样返回的请求内容(cookie+http认证信息等) (3)然后将接收的、“被攻击用户”的个人信息保存到自己的站点上(通过请求 save.php 将数据保存起来) (4)最后就能使用这些信息伪装自己,冒充“被攻击用户”去登录访问http://www.example.com上面的内容 注:上面的是需要“被攻击用户”手动触发,当然也可以自动触发(就是用户进入页面的时候自动执行恶意JavaScript代码)
防止XST攻击
方式1: Apache版本大于2.2,在httpd.conf中添加以下一段即可: TraceEnable off(建议使用的方法,简单明了,唯一需要注意apache的版本) 方式2: 针对 Apache,可以借助 mod_rewrite 模块来禁止 HTTP Trace 请求。只要在各虚拟主机的配置文件里添加如下语句: RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* – [F] 需要在安装apache的时候编译mod_rewrite 。