黑客瞄准教学资源网站

安全阵线

本期主角:教学资源库

问题所在:含有PHP注入漏洞

主要危害:用于挂马、入侵服务器等

调研时间:2009.6.20~2009.6.22

文章类型:独家报道

安全小百科:在php.ini中有一个get_magic_quotes_gpc功能,当这个功能打开时,所有的'(单引号)、 "(双引号),\(反斜线) 、and 和空字符会自动加上转义符\。and是注入时最常用的词汇,而“縗\”转义后就是and。

不管是大学还是中小学,这个时候基本上考试都结束了,教师正在写工作总结、评估报告,一部分想在暑假补习的学生准备在网上下载学习资料。提供相关资源下载的网站的访问量会骤增。

教师和学生在访问这些网站时,要特别当心,它们很有可能被黑客挂马了。如果访问了挂马的网页,就有可能招来病毒。病毒一旦进入电脑,就有可能盗取电脑中的各种个人隐私。目前,教学资源库网站就存在挂马漏洞(图1),如果被黑客入侵后在首页挂马,访问该网站的教师和学生的电脑就……该漏洞已通知修复。

25-f07-01.jpg

漏洞在留言板中

小的东西往往容易被人忽视,教学资源库的安全漏洞就出在不起眼的留言板中。由于程序员的疏忽,没有对留言板程序中的变量进行正确的过滤,从而导致了PHP注入的产生。

在漏洞的利用过程中,要用到语句:,1,1,1,(select concat(username,0x5f,password,0x5f,rnd) from phome_enewsuser where userid=1),1,1,1,0,0,0)/*。

从这段利用语句中我们可以得知它查询了phome_enewsuser表段中username、password、rnd三个字段信息,查询的条件是userid=1,排在第一位的,一般就是网站的管理员,当然如果网站存在多个管理员,可以把1换成其他数字。

此外,要成功触发漏洞,还需要在留言板的“姓名”中输入“縗\”,为什么要输入“縗\”这么一个奇怪的字符呢?其实这是利用了PHP中常见的宽字节漏洞,也称双字节漏洞。配合利用语句,就可以成功暴出网站的管理员账号及密码。

漏洞这样被利用

第一步:暴出管理员密码

打开教学资源库,在域名后添加:e/tool/gbook/?bid=1,回车后就能打开网站的留言板模块。我们在“姓名”处填入“縗\”,在“联系邮箱”处填入“,1,1,1,(select concat(username,0x5f,password,0x5f,rnd) from phome_enewsuser where userid=1),1,1,1,0,0,0)/*”,“留言内容”可以随便填写(图2)。

25-f07-02.jpg

填写完毕后点击“提交”按钮,留言板将会提示留言成功并返回页面,如果漏洞利用成功,我们可以在留言区中看到暴出的管理员账号和经过MD5加密的密码。如果没有出现,则说明漏洞已经被修补。这里我们暴出的管理员账号名为admin,密码为ec6a5da31b5fd94fbfdfa78f759621ea(图3)。

25-f07-03.jpg

第二步:破解MD5密文

我们暴出的网站管理员密码是一串经过MD5加密的密文,其长度为32位。这串密文是不能直接当作密码来使用的,如果想得到密码原文,必须先进行破解。如今破解MD5密文的办法主要有两种,一种是通过在线破解网站进行破解,另一种是用软件破解。目前用得最多的是前者。

打开MD5在线破解网站http://www.cmd5.com,在页面正中的文本框中输入需要破解的MD5密文ec6a5da31b5fd94fbf

dfa78f759621ea,点击“MD5加密或解密”按钮,就可以得到密码的原文“happytime”(图4)。

25-f07-04.jpg

需要说明的是,如果原来的密码设置得比较简单,那么我们可以立即查到密码原文。但如果原来的密码很复杂,那么是很难通过在线破解网站得到原文的,网站会提示“not found”。这时要考虑别的办法:在本文开头我们已经提到可以把注入语句中1换成其他数字,如果有别的管理员存在,那么只要有一个账号是弱密码,我们成功破解的机会还是很大的。

第三步:上传PHP木马

现在,我们已经得到了网站管理员账号和密码,具有了删除任意文章的权限。如果是黑客,做到这里并不会停手,他们还会进一步谋取挂马的权限。在域名后添加路径:e/admin/回车,出现后台登录页面,输入管理员账号和密码成功登录。

进入后台后,黑客会发现在后台可以使用的功能比较多,其中就有可以上传PHP木马的功能——“增加自定义页面”。黑客在后台点击“模版管理”→“增加自定义页面”,在“页面名称”中填入需要生成的网页名(这里可以随便填),然后在“文件名”中填入生成的网页文件名,例如hacker.php,最后将PHP木马的内容复制到“页面内容”中,点击“提交”即可(图5)。

25-f07-05.jpg

现在访问http://www.jxzyk.com/e/admin/hacker.php,可以看到黑客拥有了挂马的权限(图6)。

25-f07-06.jpg

接下来,黑客有两条操作路线:第一条路线,在网站首页挂马。直接在http://www.jxzyk.com/e/admin/hacker.php中,修改首页添加挂马代码即可。第二条路线,进一步提权。在e/class/目录中有一个名为config.php的文件,其中包含了MySQL数据库的账号名和密码,通过它黑客可以尝试进一步提权(图7)。

25-f07-07.jpg

漏洞解决方案

根据分析,发现该网站没有打上相关的安全补丁,补丁下载地址:http://www.shudoo.com/bzsoft。打上补丁后,就可以堵上注入漏洞。在这里,还是要提醒各位网站的管理员,要时常关注网站相关的各种安全补丁的发布,及时打上。对于普通用户而言,在上网时一定要开启杀毒软件的主动防御功能,建议使用带网页木马拦截功能的安全辅助工具。