環境搭建的準備
win 2003(64bit) 2、JAVA環境、Tomcat-7.0.75
2、安裝環境
1)這里的話,用windows 2003的虛擬機
前提要有一個java的環境,所以我這里就已經安裝,就不講怎么去安裝java環境了。

接下來就是我們用安裝的tomcat。我這里安裝的是tomcat-7.0.75版本
前面的步驟一直選擇默認,一直到這個地方要注意一下,如果說我們這里選擇8080端口,那么它這里就會對8080端口進行監聽。所以我們訪問tomcat的時候要加上一個端口號。

這里是設置tomcat后臺登錄的賬號和密碼。所以我這里就設置了賬號密碼為tomcat。接下來就點擊next一直安裝完。

在本地訪問127.0.0.1:8080,因為我們剛才設置的是8080端口,所以我們要加上8080,然后這個時候就可以看見我們的tomcat已經安裝好了,由于我用的是虛擬機的ip在主機訪問的,所以它這里的ip是虛擬機的ip。

漏洞復現
漏洞的形成原理
tomcat的servlet是在conf/web.xml配置的,通過配置文件可知,當后綴名為.jsp和jspx的時候,是通過jspservlet處理請求的:而其他的靜態文件是通過defaultservlet處理的,可以得知1.jsp末尾有一個空格并不能匹配到jspservlet,而是交由defaultservlet去處理,當處理put請求時會調用resources.bind,dircontext為filedircontext調用rebind創建文件,又由于Windows不允許""作為文件名結尾,所以會創建一個.jsp文件,導致代碼執行
2)復現的過程
安裝tomcat之后,需要開啟http put 首先打開tomcat安裝目錄,找到配置文件web.xml。

編輯一下這個web.xml文件,然后找到readonly,它這里默認的是被禁用了put上傳,可以看見它這里的內容是true也就是只讀模式。

如何開啟??找到org.Apache.catalina.servlets.defaultservlet方法,并在其中添加如下命令

修改完配置文件之后,我們就需要去修改一下配置文件。
安裝好了tomcat之后,我們的電腦有個tomcat圖形化啟動界面

點擊stop停止

然后再點擊這個start開啟。

使用burpsuite發送構造的webshell,提示404,請求測試結果表明了猜測結論是正確的。JspServlet負責處理所有JSP和JPSX類型的動態請求,不能夠處理PUT方法類型的請求

利用文件解析漏洞采用PUT方式上傳jsp webshell文件。其中文件名設為/shell.
jsp%20。(如果文件名后綴是空格那么將會被tomcat給過濾掉。)

訪問一下剛才寫入的文件就可以看見上傳成功了

最后喜歡我文章的朋友請加圈子關注我們,私信關鍵詞:加群。(送免費資料和優惠券)
就會自動分享給你群號。歡迎大家加入我們的安全大家庭。提高大家的安全意識,提升大家的網絡安全技能一直是我們的初衷和愿景,讓我們共同成為守護信息世界的"SaFeMAN"。
還有可以關注我們微信公眾號,在公眾號上輸入安界網,就可以關注到我們,領取資料和優惠券!