i春秋實驗--struts2遠程命令執行S2-045漏洞利用與修復


實驗環境

操作機:Windows XP

目標機:CentOS 6.5

實驗目的

了解S2-045 Struts2遠程命令執行漏洞的危害

掌握檢測修復S2-045 Struts遠程命令執行漏洞技術

實驗內容

Apache Struts 2被曝存在遠程命令執行漏洞,漏洞編號S2-045,CVE編號CVE-2017-5638,在使用基於Jakarta插件的文件上傳功能時,有可能存在遠程命令執行,導致系統被黑客入侵。

惡意用戶在上傳文件時通過修改HTTP請求頭中的Content-Type值來觸發該漏洞,進而執行系統命令。

影響范圍

Struts 2.3.5 --Struts 2.3.31

Struts 2.5 --Struts 2.5.10

不受影響的范圍

Struts 2.3.32 Struts 2.5.10.1

快速檢測方式

使用知道創宇SeeBug照妖鏡可以直接檢測該站點是否存在漏洞。

漏洞危害

在default.properties文件中,struts.multipart.parser的值有兩個選項分別是jakarta和pell。其中的jakarta解析器是Struts 2框架的標准組成部分。默認情況下jakarta是啟用的,所以該漏洞的嚴重性需得到正視。

攻擊者可以通過遠程命令注入執行,另系統執行惡意命令,導致黑客入侵,從而威脅服務器安全,影響極大。

實驗步驟

步驟一:驗證漏洞

打開目標網站:http://172.16.12.2/

發現目標網站跳轉至:http://172.16.12.2/example/HelloWorld.actiond

打開cmd並切換至poc.exe所在目錄,執行下列命令:

poc.exe http://172.16.12.2/example/HelloWorld.action "ifconfig"

成功執行,說明漏洞存在。可以嘗試其他命令:

poc.exe http://172.16.12.2/example/HelloWorld.action "cat /etc/passwd"

步驟二:修復漏洞

修改Struts2的Multipart parser

1,使用ssh登陸到目標主機172.16.12.2,用戶名root,密碼123456

2,將struts2-core-2.3.31.jar(路徑:/var/www/apache-tomcat-7.0.14/webapps/ROOT/WEB-INT/lib/)下載到桌面,修改文件擴展名為struts2-core-2.3.31.zip,解壓並打開文件夾org\apache\struts2。

  編輯struts.multipart parser文件,該選項就是Struts2的Multipart parser應用配置,默認值是jakarta,即此次出現命令執行漏洞的上傳框架。

  將其修改為pell,相當於將存在漏洞的jakarta框架禁用了。

  修改值struts.multipart parser,保存,退出。(在struts.multipart parser=jakarta前加上#,去掉struts.multipart parser=pell前面的#)

3,重新打包.jar文件

  在struts2-core-2.3.31文件夾全部選中,壓縮打包為struts2-core-2.3.31.jar

4,替換.jar文件

  使用SSH工具中的Xftp,將原有的文件mov至/目錄,將新打包的文件放到該目錄下。

5,重啟tomcat

1 cd /var/www/apache-tomcat-7.0.14/bin
2 ./shutdow.sh
3 ./startup.sh

6,漏洞驗證

poc.exe http://172.16.12.2/example/HelloWorld.action "ifconfig"

 此時poc程序已無法成功利用了。

 


免責聲明!

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



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