关闭TRACE方法
一、TRACE漏洞信息
漏洞描述
目标WEB服务器启用了TRACE方法。TRACE方法是HTTP(超文本传输)协议定义的一种协议调试方法,该方法使得服务器原样返回任何客户端请求的内容(可能会附加路由中间的代理服务器的信息),由于该方法原样返回客户端提交的任意数据,因此,可用来进行跨站脚本(XSS)攻击,这种攻击方式又称为跨站跟踪攻击(XST)。
漏洞危害
- 恶意攻击者可以通过TRACE Method返回的信息了解到网站前端的一些信息,如缓存服务器等,从而为下一步的攻击提供便利。
- 恶意攻击者可以通过TRACE Method进行XSS攻击
- 即使网站对关键页面启用了HttpOnly头标记和禁止脚本读取cookie信息,那么通过TRACE Method恶意攻击者还是可以绕过这个限制读取到cookie信息。
二、验证方法
需要安装Burp Suite(java 8环境依赖) java8官方链接
1.1 配置Java 环境变量
- 新建 CLASSPATH 变量值为“Java 安装Lib路径 ”;
- 新建 JAVA_HOME 变量值为“Java 安装根目录 ”;
- 编辑 Path 添加 Java 安装Bin目录
- 命令行运行java -version
1.2 安装Burp Suite
下载链接 密码:jqih
到解压盘符下(注:请勿右键选择 “打开方式 ” 使用Java环境打开 .按住shift右键运行命令行也行)执行命令 java -jar burp-loader-keygen.jar
点击 “Run ” 启动,将lincense码复制到运行打开的弹窗
教程摘抄至作者:qq_26605049 作者很棒,原文写的很详细,此处不详细描述,只简单记录,大家可以打开原文链接. 原文链接
1.3 使用Burp suite测试
查看代理ip及端口
设置浏览器代理和端口
Burpsuite简单应用页面按钮功能描述
**
测试流程:
**
- 点击拦截 intercept is off 变成 intercept is on
- 打开浏览器输入测试网址(可看到并没有直接进入而是加载中,并且Burpsuite亮了)
- 点击Burpsuite可以看到获取到请求信息,点击Action -> Chang request method,将POST修改为TRACE
- 点击Forward 就能获取到TRACE的信息
三、关闭TRACE请求
编辑httpd.conf文件激活rewrite模块
# LoadModule rewrite_module modules/mod_rewrite.so
在配置文件里添加
-
RewriteEngine On # 启用 Rewrite 引擎
-
RewriteCond %{REQUEST_METHOD} ^TRACE # 对Request中的Method字段进行匹配:^TRACE 即以TRACE字符串开头
-
RewriteRule .* - [F] # 定义规则:对于所有格式的来源请求,均返回[F]-Forbidden响应
至此问题结束