Struts2 S2-061 遠程命令執(zhí)行漏洞(CVE-2020-17530)復現(xiàn)

0x00簡介

Struts2框架是一個用于開發(fā)Java EE網(wǎng)絡應用程序的開放源代碼網(wǎng)頁應用程序架構。它利用并延伸了Java Servlet API,鼓勵開發(fā)者采用MVC架構。Struts2以WebWork優(yōu)秀的設計思想為核心,吸收了Struts框架的部分優(yōu)點,提供了一個更加整潔的MVC設計模式實現(xiàn)的Web應用程序框架。

0x01漏洞概述

Apache Struts于2020年12月08日披露 S2-061 Struts 遠程代碼執(zhí)行漏洞(CVE-2020-17530),在使用某些tag等情況下可能存在OGNL表達式注入漏洞,從而造成遠程代碼執(zhí)行,可能照成控制服務器等危害。S2-061是對S2-059沙盒進行的繞過

0x02影響范圍

Apache Struts 2.0.0-2.5.25

0x03環(huán)境搭建

1. s2-061漏洞搭建漏洞環(huán)境較為復雜而本次漏洞是對S2-059漏洞修復后的繞過,所以這里使用vluhub中的docker環(huán)境進行搭建,下載最新的vluhub。

vluhub下載地址:https://github.com/vulhub/vulhub

2. 因為使用docker搭建,在虛擬機中需要安裝docker以及安裝docker-compose命令,安裝方法請自行百度安裝

3. vulhub下載完成后傳入虛擬機解壓進入s2-061

cd vulhub-master/struts2/s2-061

image

4.進入目錄后使用docker-compose up -d啟動漏洞環(huán)境

image

5.在瀏覽器訪問目標地址http://your-ip:8080

image

0x04漏洞復現(xiàn)

1.在url處使用一下payload驗證漏洞是否存在。注:需要使用url編碼,<typo id="typo-749" data-origin="在" ignoretag="true">在</typo>查看元素查看結果

?id=%25%7b+%27test%27+%2b+(11+%2b+11).toString()%7d

image

2.方法一,可以看到執(zhí)行相加,這里直接構造payload執(zhí)行命令

image

3.方法二,在首頁使用burp抓包發(fā)送到重放模塊,并修改成POST傳輸

Payload:

image
image
image

4. 反彈shell,反彈命令需要使用base64編碼

編碼地址:http://www.jackson-t.ca/runtime-exec-payloads.html

image
image
image

5.方法三,使用腳本快捷執(zhí)行命令

image
image

小結

1. 本次漏洞復現(xiàn)需要使用docker環(huán)境搭建,需要會使用基本docker命令

2. 需要使用burp抓包改包,需要會使用基本的burp的方法

3. 需要使用到linux命令,需要了解linux命令用法和命令含義

4.使用python腳本進行驗證,需要安裝python3環(huán)境

0x05修復建議

1.建議升級至最新版本

參考鏈接:https://www.freebuf.com/vuls/257626.html

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容