如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)

這篇文章跟大家分析一下“如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)”。內(nèi)容詳細易懂,對“如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠?qū)Υ蠹矣兴鶐椭?。下面跟著小編一起深入學(xué)習(xí)“如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)”的知識吧。

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)興平免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

0x00簡介

Apache Struts是美國阿帕奇(Apache)軟件基金會負責(zé)維護的一個開源項目Struts2框架是一個用于開發(fā)Java EE網(wǎng)絡(luò)應(yīng)用程序的開放源代碼網(wǎng)頁應(yīng)用程序架構(gòu)。它利用并延伸了Java Servlet API,鼓勵開發(fā)者采用MVC架構(gòu)。Struts2以WebWork優(yōu)秀的設(shè)計思想為核心,吸收了Struts框架的部分優(yōu)點,提供了一個更加整潔的MVC設(shè)計模式實現(xiàn)的Web應(yīng)用程序框架。

如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)

0x01漏洞概述

漏洞產(chǎn)生于網(wǎng)站配置XML時如果沒有設(shè)置namespace的值,并且上層動作配置中并沒有設(shè)置或使用通配符namespace時,可能會導(dǎo)致遠程代碼執(zhí)行漏洞的發(fā)生。同樣也可能因為url標簽沒有設(shè)置value和action的值,并且上層動作并沒有設(shè)置或使用通配符namespace,從而導(dǎo)致遠程代碼執(zhí)行漏洞的發(fā)生。

0x02影響版本

Apache Struts 2.3–Struts 2.3.34

Apache Struts 2.5–Struts 2.5.16

0x03環(huán)境搭建

1. 這里使用vulhub的docker環(huán)境進行搭建,vulhub下載地址:

https://github.com/vulhub/vulhub

如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)

2. 下載完成后安裝docker-compose //安裝方法自行搜索,安裝完成后進入vulhub cd /home/demo/vulhub-master/struts2/s2-057/目錄下使用

docker-compose up -d 拉取鏡像

如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)

3.底下顯示done表示拉取成功,在瀏覽器訪問http://IP:8080/struts2-showcase可以看到Struts2測試頁面表示搭建成功。

如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)

4.漏洞利用條件

4.1 alwaysSelectFullNamespace被設(shè)置為true,此時namespace的值是從URL中獲取的。URL是可控的,所以namespace也是可控的。

4.2 action元素沒有名稱空間屬性集,或者使用通配符。該名稱空間將由用戶從URL傳遞并解析為OGNL表達式,最終導(dǎo)致遠程代碼執(zhí)行的脆弱性。

0x04漏洞復(fù)現(xiàn)

1.在url處輸入http://IP:8080/struts2-showcase/${(123+123)}/actionChain1.action后刷新可以看到中間數(shù)字位置相加了。

如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)

如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)

2.修改中間${(123+123)}位置的payload替換用代碼執(zhí)行編寫成命令執(zhí)行的exp,這一步使用burp抓包修改可以直觀的看到結(jié)果

Payload: //注:payload需要使用url編碼

如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)

3.抓包發(fā)送到Repeater(重放)模塊,在url加上url編碼的paylaod,然后發(fā)送即可在頭部看到回顯結(jié)果

如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)

如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)

如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)

0x05修復(fù)建議

1. 臨時解決方案:上層動作配置中沒有設(shè)置或使用通配符namespace時,驗證所有XML配置中的namespace,同時在JSP中驗證所有url標簽的value和action。

2. 官方已發(fā)布最新版本來修復(fù)此漏洞,受影響的用戶請盡快升級到Apache Struts 2.3.35 或 Struts 2.5.17版

關(guān)于如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)就分享到這里啦,希望上述內(nèi)容能夠讓大家有所提升。如果想要學(xué)習(xí)更多知識,請大家多多留意小編的更新。謝謝大家關(guān)注一下創(chuàng)新互聯(lián)網(wǎng)站!

本文題目:如何進行Struts2-057遠程代碼執(zhí)行漏洞復(fù)現(xiàn)
文章路徑:http://bm7419.com/article42/jcedec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、外貿(mào)建站、動態(tài)網(wǎng)站服務(wù)器托管、網(wǎng)站收錄、手機網(wǎng)站建設(shè)

廣告

聲明:本網(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)

h5響應(yīng)式網(wǎng)站建設(shè)