复现环境准备

在进行Tomcat-CVE-2020-1938的复现之前,我们首先需要准备一套复现环境,包括Tomcat服务器和攻击工具。以下是复现环境的准备步骤:

  1. 安装Tomcat服务器:根据自己的操作系统选择合适版本的Tomcat服务器,并按照官方文档进行安装。
  2. 下载攻击工具:下载ysoserial工具用于生成payload,以及Tomcat-echo工具用于检测漏洞是否存在。这些工具可以在GitHub上找到相应的代码仓库并克隆到本地。
  3. 配置攻击环境:将攻击工具与Tomcat服务器进行配置,例如将ysoserial复制到Tomcat服务器的webapps目录下,并将Tomcat-echo部署到Tomcat服务器上。

生成恶意Payload

CVE-2020-1938是由Tomcat服务器的AJP协议解析器漏洞引起的。攻击者可以通过发送恶意的请求包来触发该漏洞。以下是生成恶意Payload的步骤:

  1. 使用ysoserial生成Payload:打开命令行工具,进入ysoserial的根目录,执行命令`java -jar ysoserial.jar [payload类型] '[命令]' > payload.bin`,将生成的Payload保存到一个二进制文件中。
  2. 发送Payload:使用curl或其他工具,构造一个恶意的AJP请求包并发送给Tomcat服务器。例如,可以使用以下命令发送请求包:
    `
    curl --data-binary @payload.bin http://localhost:8009/
    `

验证漏洞复现

完成上述步骤后,我们可以验证漏洞是否成功复现了。以下是验证的步骤:

  1. 检查Tomcat服务器日志:进入Tomcat服务器的日志目录,查看catalina.out或catalina.log文件,检查是否有异常信息或反弹回来的命令执行结果。
  2. 使用Tomcat-echo工具验证:启动Tomcat-echo工具,通过浏览器访问Tomcat服务器的AJP接口,例如`http://localhost:8009/echo`。如果工具返回了恶意Payload中的命令执行结果,说明漏洞已成功复现。

通过以上步骤,我们可以成功复现Tomcat-CVE-2020-1938漏洞。请注意,漏洞的修复方法是升级Tomcat服务器版本到漏洞修复的版本或应用相应的补丁。不要在生产环境中使用该漏洞进行攻击和测试,仅限于研究和学习目的。