昨天,群里聊嗨了。大家都在远程办公,却都急急忙忙的升级线上的 Tomcat 版本,原因就是 Tomcat 被曝出了严重的漏洞,几乎涉及到所有的版本。
一、漏洞原理
具体来说就是 Apache Tomcat 服务器存在文件包含漏洞,***者可利用该漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件,如:webapp 配置文件或源代码等。

由于 Tomcat 默认开启的 AJP 服务(8009 端口)存在一处文件包含缺陷,***者可构造恶意的请求包进行文件包含操作,进而读取受影响 Tomcat 服务器上的 Web 目录文件。
二、漏洞编号
根据资料显示,涉及到两个漏洞编号。

CVE-2020-1938

CNVD-2020-1048

三、漏洞影响的版本
Apache Tomcat 6

Apache Tomcat 7 < 7.0.100

Apache Tomcat 8 < 8.5.51

Apache Tomcat 9 < 9.0.31

四、漏洞详情
首先启动 apache tamcat 服务,访问 localhost:8080 可以成功访问如下界面。

通过上图,我们可以确定到对应 Tomcat 的版本号。

然后再使用漏洞扫描工具对其进行端口扫描发现 8009、8080 都已端口开启,证明有该漏洞。

然后,大家可以利用 github 上别人写好的脚本进行***演示。下载地址如下,有两个。任选其一即可。

Poc1 下载地址:https://github.com/0nise/CVE-2020-1938

Poc2 下载地址:https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

下载好后进入该文件夹 cmd 命令执行并加上网址参数利用 poc。需要注意的是 poc 为 py2 环境。然后执行下面的命令。


执行成功后就可以看到成功访问到该文件 web.xml。其他的 WEB-INF 下面的文件都可以访问到,包括你的源码文件,jsp、html、.class 等。


五、漏洞修复方案
1、禁用Tomcat 的 AJP 协议端口,在 conf/server.xml 配置文件中注释掉 <Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />。

2、在 ajp 配置中的 secretRequired 跟 secret 属性来限制认证。

3、对 Tomcat 进行版本升级。
六、写在最后
你们公司有没有用 Tomcat?用的版本是多少?有没有中招?欢迎留言区评论交流!

©著作权归作者所有:来自51CTO博客作者mob604756f06ed8的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Linux运维入门教程03-02 (目录文件的浏览、管理及维护(二))
  2. HandShaker | 安卓手机与Mac、Windows 之间的文件传输工具
  3. SparkStreaming如何解决小文件问题
  4. 你只知大数据的便利,却不知漏洞——hadoop安全完整解析
  5. tp6 多文件上传
  6. python学习之做一个文件增删改查小程序
  7. 我的开源项目——Windows PE和Linux ELF可执行文件解析工具
  8. Shell的18条常用命令整理
  9. 汇总:Linux文件管理的50个命令

随机推荐

  1. android 5.0多用户支持
  2. 【Android 界面效果12】EditText中的多行
  3. Android中做一个无标题窗口
  4. 使用eclipse打开android_sdk自带的例子
  5. Android UI学习 - ListView (android.R.l
  6. android之照相、相冊裁剪功能的实现过程
  7. Android(安卓)8.1 FreeForm切换显示异常
  8. android中调试之日志
  9. Android PackageManagerService的启动过
  10. android sdk setup时出现:Failed to fetc