利用serv-u拿下网上商城
文章作者:rabbitsafe
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
注:文章已经发表于2006年第8期《黑客手册》,后由原创作者友情提交到邪恶八进制论坛,转载请著名原始出处《黑客手册》。
今天,渗透的是一家性用品商城,网站用的全是php程序,对于php构建的系统,一般后台数据库都是mysql,就像asp对应着mssql和一样,由于 php的特性(php默认将传递参数中的“‘”等字符做了转换,所以对于字符类型的变量默认情况下很难注入),一般情况下我们注入的只能是数字类型的变量,根据平时注入的知识,我们知道id=xxx的连接就有可能找到漏洞!
一、寻找注入点
首先,在主站上转悠了一圈,主站中的数字类型变量不存在注入漏洞,提交http://www.XXX.com/view.php?id=1250 and 1=1和 1=2 ,在网页里把and 1=1和and 1=2都正常返回。
图1 主站不存在注入点
显然是做了过滤,因为网站二级页面也是php程序写的,所以我就想先从二级页面入手,进入了一个二级页面,好像是性图书联盟,这种东西害了多少青少年啊,今天就先拿你开刀,免得再腐蚀青少年的思想,随便打开了一个数字类型变量的页面
http://shu.XXX.com/book_view.php?id=339,提交
http://shu.XXX.com/book_view.php?id=339 and 1=1,返回正常页面,提交
http://shu.XXX.com/book_view.php?id=339 and 1=2,没有返回数据, 果然存在注入漏洞,手工来解决吧,手工注入更有助php注入的学习,提交http://shu.XXX.com/book_view.php?id=339 order by 20,页面正常返回,提交
http://shu.XXX.com/book_view.php?id=339 order by 10,没有返回数据, 说明字段数在10和20之间,接着试提交http://shu.XXX.com/book_view.php?id=339 order by 15也是正常的,说明字段数在15和20之间,当我提交到18时,页面没有数据返回,说明字段数是17,18左右,接着提交http://shu.XXX.com/book_view.php?id=339 and 1=2 union select 1,2,4,5,6,7,8,9,10
,11,12,13,14,15,16,17/*,返回结果
图2 性图书联盟的注入点
确定了字段数是17个。下面接着提交http://shu.XXX.com/book_view.php?id=339 and 1=2 union select 1,version(), database(),4,5,6,7,8,user(),10,11,12,13,14,15,16,17/*,返回结果
图3 查询数据库的信息
现在我们完成了对数据库系统的探测。因为我们有可能不是root权限,并且数据库和web服务器可能不在同一台主机上,这样我们就没有读取文件的权限了,测试下再说,先看下是用的什么系统,如果是Linux,可以提交etc/passwd,如果是windows,可以提交c:\\boot.ini,成功读取出了c:\\boot.ini文件内容,可以读取文件内容,主机用的是windows 系统,还是windows2003。
图4 查询服务器的信息
下面再来猜后台,先猜出后台再说,因为很多时候猜出了用户名和密码,最后却找不到后台登录的地方。先试了几个常见的,admin、manage、 admin、php、manage、php、login、admin_index.php,结果都没找到。我想应该是管理员把后台改了,但是一般管理员不会改的很复杂,我就在一些常用的后台上加了些数字,例如:admin123、admin123456、admin88、admin888、 manage888,我就依次试了试,结果后台出来了,真是黄天不负有心天啊!http://shu.XXX.com/admin888/admin_login.php,
图5 性图书联盟的后台登录地址
接下来,我们该猜解管理员表名,用户名,密码了,常见的都试了一遍,例如:user、admin、manage,password、pass、login,一个都没有,用工具也试了一遍,也没找出来,入侵陷入困难,看看时间,也该睡了,养好精神明天再接着渗透。
二、利用serv-u用户信息配置文件拿webshell
第二天上课时,手里刚好有本《黑客手册》第3期,反正课也无聊,我就开始看《黑客手册》,Q版黑客栏目里一篇文章,《从万象VOD视频点播到FTP密码》给了我启发,既然我没有办法猜到表名,可以试试文章里的方法啊,它也是windows系统,而且可以读取系统文件内容,如果管理员没有改变serv-u的安装路径,那我就可以像文章里说的,先读取serv-u用户信息配置文件ServUDaemon.ini中的内容,然后再猜解加密密码,如果能猜出密码,就可以成功拿到网站的权限了。
课一上完,我就回到寝室,马上打开电脑,先对网站进行了一次扫描,服务器开了只开了21、80端口,我用ftp shu.XXX.com,连上去看了下,果然用的是serv-u,而且是6.0版本的,那我先试试,看serv-u是不是在默认的安装路径
C:\\Program Files\\serv-u\\ServUDaemon.ini, 在地址栏提交
http://shu.XXX.com/book_view.php?id=339 and 1=2 union select 1,2,3,4,5,6,7,8,load_file(char (67,58,92,92,80,114,111,103,114,97,109,32,70,105,108,101,115,92,92,115,101,114,118,45,117,92,92,83, 101,114,118, 85,68,97,101,109,111,110,46,105,110,105)),10,11,12,13,14,15,16,17/*,没想到真是安装在默认路径,读取出了serv-u的用户信息配置文件内容,
图6 服务器serv-u的用户信息配置文件
只有三个用户,马上把内容复制到本地,打开serv-u纯数字密码破解器,立刻破解,没想到只用了不到一分钟,我就破解出了一个用户的密码,是纯数字的,密码是321321,用户的默认路径是e:\shu_XXX_com,应该是存放网站的路径,马上拿出Flashxp连上去,果然是存放这个二级网站的目录
图7,性图书联盟的FTP目录
马上上传了一个php一句话木马,在浏览器中打开php木马,
图8 成功拿到二级页面性图书联盟的webshell
网站的webshell拿到了,真是爽啊,今天运气真的不错,呵呵。
三、提升权限,攻下服务器
拿到webshell了,再接再厉,继续扩大战果,看能不能攻下服务器,因为刚开始我就结整个网站扫描了下,主站是另外的服务器,其它的二级网站都是放在一台服务器上,就在这个服务器上,如果能攻下这台服务器,那就能拿下所有的二级网站了。首先看了下开的服务,第三方软件有serv-u,mysql。提权的方法有几种,我试了下,serv-u存在本地堤权,mysql数据库用的root用户连接的,可以读取密码,然后以系统权限执行命令。这些方法网上讲的很多了,我就不说详细说了(不想浪费黑客手册的版面),呵呵。拿到服务器后我大致看了下,这台服务器上放了这个网站所有的二级页面,有10个站点,关于网站问题,我已经通知了管理员修补注入点了。
四、渗透总结
这次入侵没用到什么新技术,全是一些常用的php注入方法,当猜不到表名时,可以试试其它方法,因为到达终点站的路不只一条,条条大路通罗马。我们注入、猜解的目的还不是为了得到管理员用户和密码,然后进后台拿webshell。但是如果猜不出表名时,我们可以试试其它的方法,只要能拿到webshell。在入侵中最重要的是思维,光学会使用工具是没用的,要有灵活的思维,思维是非常重要的,因为人的思维是一切的根源。希望这篇文章能给大家一点启发,遇到困难多思考。欢迎大家到黑客防线的论坛讨论,我的id是rabbitsafe, qq:3818718。