漏洞原因
用戶權限在conf/tomcat-users.xml
文件中配置:
<?xml version="1.0" encoding="UTF-8"?> <tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <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用戶具有上述所有權限,密碼為tomcat
。
默認情況下,通過常規安裝在Tomcat8中沒有用戶,並且管理器頁面僅允許訪問本地IP。只有管理員手動修改了這些屬性,我們才可以發起攻擊。
前提條件
Tomcat版本8.0 默認安裝是沒有用戶的,密碼是tomcat
修復方案:
1、在系統上以低權限運行Tomcat應用程序。創建一個專門的 Tomcat服務用戶,該用戶只能擁有一組最小權限(例如不允許遠程登錄)。
2、增加對於本地和基於證書的身份驗證,部署賬戶鎖定機制(對於集中式認證,目錄服務也要做相應配置)。在CATALINA_HOME/conf/web.xml文件設置鎖定機制和時間超時限制。
3、以及針對manager-gui/manager-status/manager-script等目錄頁面設置最小權限訪問限制。
環境搭建
https://github.com/vulhub/vulhub/tree/master/tomcat/tomcat8
復現
1. 打開tomcat管理頁面http://your-ip:8080/manager/html
,輸入弱密碼tomcat:tomcat
,然后訪問后端:
2.制作war包
先將jsp大馬壓縮為zip,再將zip后綴改名為war,然后上傳war包
3. 底部直接上傳war包
上傳完直接訪問/test/test.jsp 就會看到你上傳的馬,執行命令即可