Tomcat文件读取&文件包含漏洞(CVE-2020-1938)
Tomcat文件包含漏洞(CVE-2020-1938)是由于Tomcat的Servlet API未能正确处理特定请求中的路径参数导致的。攻击者可以利用这个漏洞读取服务器上的任意文件或执行任意代码。
解决方法:
升级Tomcat到安全版本:
- 如果你使用的是Apache Tomcat 9.0.31或更高版本,或者Apache Tomcat 8.5.53或更高版本,这些版本已经修复了该漏洞。
- 下载并安装最新的Tomcat版本。
删除或禁用
/webapps/ROOT
目录下的任何不必要的内容:- 如果不需要,删除
/webapps/ROOT
目录下的所有内容。 - 修改
web.xml
,确保没有配置错误的servlet或servlet映射。
- 如果不需要,删除
设置
antiResourceLocking
和antiJARLocking
为true
:- 在
context.xml
文件中设置antiResourceLocking
和antiJARLocking
参数为true
。
- 在
限制访问
WEB-INF
目录:- 修改
web.xml
,使用<security-constraint>
标签限制对WEB-INF
目录的访问。
- 修改
应用安全最佳实践:
- 确保服务器的安全配置遵循最佳实践,包括使用强密码、定期更新、安全的配置等。
监控安全更新和漏洞通知:
- 订阅Tomcat的安全通告列表,以便接收最新的安全更新和漏洞通知。
示例代码(在context.xml
中设置antiResourceLocking
和antiJARLocking
):
<Context>
...
<Resources
className="org.apache.catalina.webresources.StandardRoot"
antiResourceLocking="true"
antiJARLocking="true"/>
...
</Context>
示例代码(在web.xml
中限制对WEB-INF
目录的访问):
<security-constraint>
<web-resource-collection>
<web-resource-name>Protect Web-INF</web-resource-name>
<url-pattern>/WEB-INF/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>no-access</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>no-access</role-name>
</security-role>
请注意,具体的配置可能会根据Tomcat的版本和你的应用需求有所不同。始终建议参考官方文档或者在应用安全专家的建议后进行配置。
评论已关闭