安全测试之 Tomcat隐藏版本号和禁用OPTIONS.
最近由于要提交安全渗透测试,被BP测试出来的一些问题.
1.Tomcat隐藏版本号:
- 上面是使用BP测试出来的,由于版本号是敏感信息所以需要把他版本号隐藏.
- 找到服务上的tomcat/lib这个目录下的catalina.jar文件,修改里面的ServerInfo.properties文件.打开之后会看里面是这样的
.
server.info=Apache Tomcat/x.x.xx (Ubuntu)
server.number=x.x.xx.x
server.built=Jun 30 2017 03:59:57
把他修改成这样
> server.info=Apache Tomcat server.number=0.0.0.0 server.built=Jun 30
> 2017 03:59:57
然后再用BP测试一下就没有了
2.禁用OPTIONS请求.
通过OPTIONS方法提交特定的请求,在响应中查看allow头信息,在allow头中发现delete、put等选项,delete方法是用来调试web服务器连接的http方式,支持该方式的服务器文件可能被非法删除;put方法用来向服务器提交文件,测试显示部分请求中这些方法是允许的。恶意用户或攻击者一旦成功利用此漏洞,将可以通过调用Delete方法恶意删除服务器中的文件,可以调用Put方法上传恶意文件到服务器。解决方案是修改系统web服务器配置,禁止使用除GET、POST外其他方法。
1.第一步我们先找到tomcat的web.xml位置然后修改.
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>HEAD</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method></auth-method>
</login-config
2.然后在web.xml同一目录下找到server.xml文件.allowTrace默认是false,需要手动添加一个为True,就可以禁用除了GEP和POST以外的方法了.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" allowTrace="true"/>
这样就大功告成了.