背景
小迅之前部署了一个Tomcat应用,渗透测试不通过,在此记录一下风险内容以及解决方案
测试结果
风险说明 | 风险程度 |
---|---|
中间件版本泄露 | 低 |
Tomcat样例目录泄漏 | 低 |
测试详情
风险名称 | 风险描述 | 修改建议 |
---|---|---|
中间件版本泄露 | 404页面返回信息中包含中间件版本信息,攻击者会根据版本进行针对性攻击 | 去掉返回信息中中间件版本信息 |
Tomcat样例目录泄漏 | Apache Tomcat默认安装包含/examples 目录,且未做权限控制。其中session样例允许用户对session进行操纵 |
建议禁止访问或者讲默认WEB跟目录下的examples和docs目录及其下的所有文件都删除,以免造成不必要的信息泄露或其他漏洞 |
修改过程
一、中间件版本泄露
目前流行的有两种方案
- 自定义404页面
- 修改Tomcat配置,隐藏版本信息
1. 自定义404页面方案
tomcat /conf/web.xml 添加简而言之就是把内置的报错页面给替换了1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18<web-app>
...
<!-- 400错误 -->
<error-page>
<error-code>400</error-code>
<location>/error.jsp</location>
</error-page>
<!-- 404 页面不存在错误 -->
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
<!-- 500 服务器内部错误 -->
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
</web-app> - 优点:改动小,容易实施
- 缺点:自定义报错页面,容易引入其他bug,且没有涵盖所有的error-code,不具有普适性
2. 修改Tomcat配置,隐藏版本信息
重打包 Tomcat lib 目录下的 catalina.jar 文件
- 进入tomcat下的lib目录
- 预览catalina.jar
- 进入
\org\apache\catalina\util
目录下,修改ServerInfo.properties
文件 - 注释后3行
修改之后,可以直接保存关闭,压缩软件会重新打包jar文件
- 优点:从根源上解决问题,对此服务器下的所有网站都生效
- 缺点:改动操作比较繁琐,毕竟要修改官方提供的jar包嘛,而且如果中间件有升级,还得再来一遍
二、Tomcat样例目录泄漏
直接删除webapps
下的examples
和docs
等目录,小迅进行操作之后,只留下了ROOT和应用目录,亲测不影响应用运行
总结
- 安全意识很重要,稳定为先,不管是开发还是运维,要时刻把安全放在第一位
- 直接把应用端口暴露出来,虽然比直接暴露主机好,但也存在中间件方面的安全隐患。当你需要在公网暴露东西的时候,记得加上路径控制
- 不要畏惧各种测试,尤其要多看专业的测试报告,在加固应用程序的同时,眼界和技能也在不知不觉中增加了
参考资料
Tomcat和Nginx版本信息泄露问题_ClearLoveQ的博客-CSDN博客_nginx版本信息泄露
Tomcat 版本信息泄露漏洞 修复方案-艺赛旗社区 (i-search.com.cn)
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
扫描二维码,分享此文章