漏洞信息
- 影響版本: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馬,用其連接