漏洞信息
- 影响版本:Apache Tomcat 7.0.0 - 7.0.81
- 漏洞原理:漏洞的产生是由于配置不当(非默认配置),将配置文件(
conf/web.xml)中的readonly设置为了false,导致可以使用PUT方法上传任意文件,但限制了jsp后缀,不过对于不同平台有多种绕过方法
复现
用vulhub提供的docker搭建好环境
浏览器访问web页面并用burp抓包,然后修改为PUT方式提交
可见已经成功上传文件
但是直接上传jsp文件是不被允许的
对于这种情况可以有多种方式绕过
- Windows下不允许文件以空格结尾
以PUT /x.jsp%20 HTTP/1.1
上传到windows会被自动去掉末尾空格 - WindowsNTFS流
PUT /x.jsp::$DATA HTTP/1.1
/
在文件名中是非法的,也会被去除(Linux/Windows)
PUT /x.jsp/ HTTP/1.1
测试上传
然后上传cknife的jsp马,用其连接