扫一扫
关注微信公众号

对某PHP手机网站的一次安全检测(1)
2008-12-24   

“打造中国互联网坚固安全长城,为中国的网络安全事业而奋斗终生!”

虽然听起来有点假,可还是燃气了一群网络安全爱好者的激情,这群年轻人在一起,每天研究网络安全技术,每天在入侵检测与安全防护之间游走,仿佛耳边一直回荡着“我要让微软的每一款软件都必须经过中国人的安全认证才能够走出来!”这是我们的梦,我相信也是所有中国安全爱好者的梦。

今天安全检测的目标是一个手机网站,网站界面清新,内容全面,好像已经做了很久,一直没出什么问题,安全性应该是不错的,有了艰巨任务,小伙子们自然情绪高涨。

打开网站,是一个网上商城,当然首先是环境探测,也就是我们通常所说的踩点了,极可能详细的了解网站的相关信息。

随便点一些连接,看到程序是用PHP写的,无疑问应该是MYSQL数据库,从界面上看应该是一套整站系统(现在自己开发程序成本太大了),在网址后面加上admin(通常手段猜测),出现了后台管理界面(如图1),出现这个,不是非常安全就是非常不安全。

 
图1
 
图2

原来如此,是ECSHOP系统,也及是DISCUZ开发的一个网店系统,还算有点收获。
回到前台页面,看看有没有注入漏洞,因为比较关心这个,好利用危害还比较大,在带有参数的页面上加了一个 “’”来检测下,出现如下提示。(如图3)

 
图3IXPUB技术

是MYSQL的数据库,这里告诉大家,不要武断的认为只要是PHP就一定是MYSQL数据库,他们只不过是常见搭配而已,应该小心求证。

有的朋友看到这里,可能会说,有了注入点入侵还不容易啊,其实不然,我开始也认为应该是不会太困难,可往下走的时候才发现,有很多问题要一一的去解决。

到目前位置,所得到的基本信息是

开发语言:PHP

数据库环境:MYSQL

网站后台:ADMIN

存在注入点:ad.php?adid=22

整站系统:ECSHOP(这里如果能找到详细版本尽量要详细的版本)

(n0不过这里在下了ECSHOP系统,本地搭建之后,发现本地和网站程序有所差别,网站应该是一套整合过了的程序。没关系,既然他漏了马脚,我们就继续跟踪。

一般大家都会选择不同的工具去进行检测,因为方便,我也不例外,打开PHP注入漏洞检测工具,不太有效,最近新出个工具pangolin挺火的,自己感受了下也确实不错,尤其是他的命令行功能强。(如图4)

 
图4

还算不错检测出来数据库的名称Current database is : shouji,看了下本地搭建的站点知道他的管理员的表名叫做ecs_admin_user,列名分别为user_name、password。(如图5)

 
图5  IXPUB技术

把相应的名称添加到pangolin上猜解,管理员的用户名以及密码都已经猜解出来了,不过速度太慢了,拿到MD5的加密值,破解不了,也有好多朋友问过我,破不了MD5,我们怎么办,那我的回答就只能是另辟新境了,应为MD5加密是单向的,是没有办法进行解密的,我们通常上的MD5解密网站也要通过一个一个比对,才能找出他的对应明文。

既然进不了后台,走其他的路吧,说实话,这个时候就有点不太想用工具了,因为工具毕竟非常局限,只有那么一点功能,太束缚我们的发挥,于是号召了下,“兄弟们,把工具都撇了,耽误事情。”于是所有人开始手工进行网站入侵(当然这个就要经验了)。

因为对PHP的研究确实不是很深,所以决定恶补PHP的脚本入侵技术,足足看了5个小时的文章,在电脑前面迷迷糊糊的就见到了第二天的太阳。

昨天看的文章确实对自己启发不少,PHP注入比较常用的有个UNION查询,

语句如下:

and 1=2   union select 13,12,11,10,9,8,7,6,5,4,3,2,1

那么在注入点后面输入and 1=2   union select 1,返回错误页面(如图6)。

 
图6

一直到and 1=2   union select 13,12,11,10,9,8,7,6,5,4,3,2,1。此时返回页面正常(如图7),说明,此页面一共查询了13个字段,分别在文章题目位置和内容位置返回11,10,那么也就是说明,如果我把11和10换成我想要查询的内容就可以了。

 
图7

我们将语句改成and 1=2   union select 13,12, DATABASE(), user(),9,8,7,6,5,4,3,2,1。页面返回如图8,看到了页面返回的便是当前数据库名称shouji,以及当前数据库连接用户root.

 
图8

到这里大家是不是会有一些喜悦,root拥有数据库控制的最高权限,也就是说我们能够成功的希望很大,当然你也可以查看MYSQL的版本等等。

虽然知道了用户名但是没有密码是没有用的,如何得到密码那,这又是一个难题。不过不知道大家想没想到load_file这个函数,顾名思义,当然就是装载文件了,这样思路就清晰了,如果我们可以装载他数据库的连接文件,那么就自然会胜利冲破难关。

共2页: 1 [2] 下一页
 第 1 页:  第 2 页:装载

热词搜索:

上一篇:对国内某知名大学的一次漫长渗透(1)
下一篇:浅谈IP安全策略:防范被Ping与封闭端口

分享到: 收藏