2009年2月20日星期五

一次糟糕的渗透网站历程

前阵子,尝试渗透一国外站点。又把过去的很多知识梳理了一遍,都是老调重弹了。不过还是发出来吧,我觉得比较有代表性。目标站点http://www.lewt.com/是一家卖游戏币的网站。这年头,此类站点比较火暴,一般商业价值比较高。关于站点不多做解释了,直接讨论技术了。 首先ping http://www.lewt.com/ ,获取了下此站点的IP地址,如图:


得到目标 IP 72.32.155.139 目标大概在美国德州的样子。个人感觉这应该属于机房的IP,初步扫描了下端口,开放3306以及80,然后打开主页简单看了下。判断为LAMP架构 LINUX+APACHE+MYSQL+PHP,首先扫描了下目标主机是否存在缓冲区溢出漏洞,呵呵。补丁打的不错,这里不得不说,国外管理员的安全意识就是比国内管理员的安全意识要高的多。象国内的LINUX一般都是批量溢出的.......自己手里没什么0DAY,直接拿ROOT有一定难度,此路不通,换种思想。 看看WEB上有什么漏洞,直接点了个新闻页面提交个单引号看看,http://www.lewt.com/index.php?cp=site_news&id=40 呵呵 直接提示报错。有门,暴出了网站路径以及当前的表名。如图:



这就意味着可能存在注入漏洞,因为显然此网站的PHP.INI中的magic_quotes_gpc=off,这样没有过滤了敏感字符,导致注入漏洞的形成。再进一步,由于ID=40,这显然是个数字型注入漏洞。在URL后面提交 and 1=1 与and 1=2分别返回了正常和错误的页面。确定此页面确实存在注入漏洞,继续 下一步判定MYSQL的版本。在URL提交 and ord(mid(version(),1,1))>51 /* ,看下MYSQL版本是否在3.0以上,如果是3.0以上的版本就支持union查询,接下来渗透就方便多了。 结果返回了正常的页面,如图:




看来MYSQL的版本是3.0以上的。既然支持union查询,直接提交 order by 10 /* ,返回了错误的页面 ,看来子段是小于10的,提交 order by 5 /* 返回正常,最终确定字段个数为8。其实开始提交单引号的时候就暴出了字段,没注意。走了弯路了,接着提交and 1=2 union select 1,2,3,4,5,6,7,8 /* ,如图:



终于见到了可以显示信息的可爱数字。 下来就可以暴一些敏感信息:user(),version(),database()。替换掉2,3的位置 用来暴敏感信息。然后得到: user()=lewt@192.168.1.177 version()=4.1.22 database()=lewt 如果数据库是以ROOT权限连接的,直接loadfile( )就可以了,不过事与愿违。确实不能loadfile的,意料之中。如果这个网站以root连接的话,恐怕早被搞了。 此路不通,那继续,看看能不能找到网站的后来www.lewt.com/admin ,直接返回了管理员登陆页面,看来运气还真不错。下来就得猜测管理员表了,通过news的表,看出来管理员还是比较有心计的。没有采用什么通用的表名,这样工具直接猜解是不可能的。接下来,自己简单做了个字典,下来用软件慢慢跑吧。 经过一天多的努力,终于获取了这个网站的管理员表名为admins。查看原代码,得到管理员的字段名为login,以及password.

直接提交and 1=2 union select 1,login,password,4,5,6,7,8 from admins /* 得到管理员的帐号,以及密码。管理员帐号为 jesse 密码 ©³Ã4˜é5V•˜¨<¥­2^。 sigh:密码竟然是被加密,以乱码的形式存放在数据库中的,呵呵,解乱码不是我的专长,就把得到的东西丢给了朋友去搞了,这样入侵到这里就算是告一段落了。在得到密码后,直接登陆后台,获取一个webshell,拿下整个网站不是什么难事。

3 条评论:

  1. 每次看到您的文章,特别是技术贴,都会心潮澎湃。
    啥时我也能有您这样的技术啊
    楼主,我对黑客技术也有一些爱好。不知道如果想学习这方面的知识该从哪里下手?

    回复删除
  2. 博主,麻烦给我发一个WOW6区的被盗的名单吧,特别是【血羽】服务器的,先谢谢啦~我的邮箱是:289893747@qq.com

    回复删除
  3. 加我QQ780047817告诉我学习顺序我就paypal给你10美金

    回复删除

51La