如何检测你的Tomcat是否易受文件包含攻击

9 人参与

那个周二下午,运维小王收到安全部门的紧急通知时,后背瞬间渗出冷汗。公司官网的Tomcat服务器可能暴露在文件包含漏洞的风险之下,而攻击者只需要通过AJP协议端口,就能像翻阅自家书柜般读取服务器上的敏感文件。更可怕的是,如果系统存在文件上传功能,攻击者甚至能直接执行远程代码。

版本检查:第一道防线

打开服务器终端,输入./version.sh或查看Tomcat启动日志,版本信息一目了然。根据Apache官方公告,受影响的范围很明确:

  • Tomcat 7版本低于7.0.100
  • Tomcat 8版本低于8.5.51
  • Tomcat 9版本低于9.0.31

发现版本落在危险区间时,那种感觉就像发现家门虚掩——必须立即采取行动。

AJP端口探测技巧

在server.xml配置文件中,AJP连接器通常这样配置:

<Connector port="8009" protocol="AJP/1.3" />

使用nmap进行端口扫描是最直接的检测方式:nmap -sV -p 8009 目标IP。如果8009端口开放且运行着AJP服务,风险指数就会直线上升。

实战检测:模拟攻击验证

真正的安全专家不会只停留在理论层面。利用公开的POC检测脚本,可以模拟攻击者行为进行验证。比如尝试读取WEB-INF/web.xml文件:

python CVE-2020-1938.py 目标IP -p 8009 -f WEB-INF/web.xml

当脚本成功返回配置文件内容时,证明漏洞确实存在。这种"亲眼所见"的验证,比任何理论分析都更有说服力。

临时缓解措施验证

如果暂时无法升级,注释掉server.xml中的AJP连接器是最直接的解决方案。修改后重启Tomcat,再次使用nmap扫描,8009端口应该显示为关闭状态。这种"断网疗法"虽然粗暴,但在紧急情况下确实有效。

安全从来不是一劳永逸的事。定期检查、及时更新、持续监控,这才是守护服务器的正确姿势。毕竟在网络安全的世界里,侥幸心理往往是最昂贵的奢侈品。

参与讨论

9 条评论
  • 魔法师Emma

    之前搞过Tomcat升级,7.0.99升到7.0.100折腾了好久

    回复
  • 泡面君

    nmap扫一下8009就完事了?试了下没反应啊

    回复
  • 灵墟漫步

    临时注释AJP连接器真能解决问题?重启后服务正常吗

    回复
  • 开朗的阳光

    又是AJP背锅,我们早关了这玩意😂

    回复
  • 霜花

    感觉还行,至少知道咋自查了

    回复
  • 狴犴肃邪

    这漏洞太吓人了,8009端口居然能直接读配置文件?

    回复
  • 烈日灼心

    太贵了吧这也,修个漏洞还得停服务,小公司扛不住啊

    回复
  • 彩虹马

    版本检查那步挺实用,之前都没注意过

    回复
  • 星图漫步

    nmap扫描这招可以试试,回头测下自家服务器

    回复