常見web中間件漏洞(四)Tomcat漏洞


這部分好久沒寫了,繼續更新web中間件漏洞思路整理(不復現) ,爭取。。。整理完

前幾篇指路鏈接:

nginx:

https://www.cnblogs.com/lcxblogs/p/13596239.html

Apache:

https://www.cnblogs.com/lcxblogs/p/13588664.html

IIS:

https://www.cnblogs.com/lcxblogs/p/13539558.html

 

 

 

 

 

 

Tomcat 服務器是一個開源的輕量級Web應用服務器,在中小型系統和並發量小的場合下被普遍使用,是開發和調試Servlet、JSP 程序的首選。

安裝不介紹了,兩種方法都可以,教程參考:https://www.cnblogs.com/dekevin/p/12261904.html、https://www.cnblogs.com/jingmoxukong/p/8258837.html

使用功能參考:https://blog.csdn.net/chaogu94/article/details/107292921

(可通過kill掉進程中的tomcat.exe強制關閉)

 

1.Tomcat任意文件寫入漏洞(CVE-2017-12615)

 Apache Tomcat 7.0.0 - 7.0.81受到影響

conf下的web.xml正常來說是這樣

 

 

 

但是如果是這樣

 

存在readonly為false,表示允許PUT與DELETE請求,就會造成此漏洞

 

 

 

 

 

 

即:當 Tomcat 運行在 Windows 主機上,且啟用了 HTTP PUT 請求方法(例如,將 readonly 初始化參數由默認值設置為 false,如果是true的話,那么PUT和DELETE方法是被拒絕的,因此如果手動將readonly選項開啟為false,那么就能夠通過PUT請求方法上傳文件了),攻擊者可通過構造攻擊請求向服務器上傳 JSP 木馬

 

比較常規的一個利用思路是:訪問tomcat主頁抓包,先把GET請求方式改成OPTIONS請求方式,看返回包有沒有不安全的方法(PUT DELETE。。。)

如果有,搞一波

 

 

可以把GET請求改成PUT、添加文件名、加文件內容

注意,如果像下面這種/1.jsp請求是不行的,會因為處理不了而404

PUT /1.jsp HTTP/1.1
Host: 192.168.xxx.xxx:8080
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 57

馬馬馬馬。。。。

 

必須要進行繞過,可以嘗試如下兩種方式

/1.jsp/  

/1.jsp%20

然后訪問馬或者腳本實現目的

 

復現過程參考:https://www.freebuf.com/articles/web/258907.html

https://blog.csdn.net/zy15667076526/article/details/109958388

 

所以不要這么配置

 

 

2.Tomcat 遠程代碼執行(CVE-2019-0232)

影響9.0.0.M1 ~ 9.0.17, 8.5.0 ~ 8.5.39 , 7.0.0 ~ 7.0.93版本的Windows系統下的tomcat

還是web.xml中

 

變為

 

 

 

 

 

 

 

 接着在conf/context.xml  中的<Context>添加privileged="true"語句

 

 

 

 

 

webapps\ROOT\WEB-INF下創建一個cgi-bin文件夾,並在文件夾內創建一個bat文件寫入

@echo off
echo Content-Type: text/plain
echo.
set off=%~1
%off%

 

 

 

只是舉個例子,實際上寫啥都行,只要可以執行,實現目標

然后訪問這個bat文件附加命令可執行某某命令,例如

http://127.0.0.1:8080/cgi-bin/xxxxxx.bat?c:/windows/system32/ipconfig

http://127.0.0.1:8080/cgi-bin/xxxxxx.bat?c:/windows/system32/net+user

 

 

復現參考:https://blog.csdn.net/weixin_43806577/article/details/100094722

https://blog.csdn.net/xuandao_ahfengren/article/details/106982504

https://www.jianshu.com/p/3fcd2f3f6ba4

 

想要利用成功,條件比較苛刻

 

3.Tomcat + 弱口令 && 后台getshell漏洞

正常來說tomcat-users.xml是這樣的

 

 

 如果允許遠程登錄,需要修改配置,加一段,參考:https://www.cnblogs.com/wangjiming/p/12492764.html

<tomcat-users>
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>
    <role rolename="admin-gui"/>
    <role rolename="admin-script"/>
    <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script" />
</tomcat-users>

然后看是否可以通弱口令登錄tomcat后台(比如我的用戶名密碼都是admin),默認路徑就是manager/html(我這里改了端口號,不做特殊說明),訪問此路徑弱口令進入后台

 

 

 

然后發現允許上傳WAR文件

Javaweb工程大多打包成WAR包,便於管理且tomcat可以自動識別

所以我們的思路就是把jsp馬打包成WAR

 

以管理員模式運行cmd生成WAR:jar -cvf lcx.war lcx.jsp

然后通過“要部署的WAR文件”把WAR包傳上去

WAR自行解壓

之后訪問馬子

 

所以弱口令不能有(可以通過抓包解碼爆破),且需要設置conf/tomcat-users.xml中目錄頁面的訪問限制,或者改掉manage/html

 

復現參考:https://www.cnblogs.com/bmjoker/p/9892653.html

 https://www.cnblogs.com/mke2fs/p/12718669.html

https://my.oschina.net/u/3076320/blog/4345568

 

 

 

未經允許,禁止轉載


免責聲明!

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



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