一段代码击溃Bo-Blog
黑客·安全
安全公告牌
由于Bo-Blog的index.php文件中的“job”变量没有经过过滤,用户可以利用这个变量以管理员身份提交恶意数据,从而把恶意代码写入一个PHP文件,以便在获取WebShell后进行进一步的渗透。
受此漏洞影响的版本:1.7.0108及其以下的所有版本。
经常逛博客网站,你想过偷偷潜入博客网站所在的服务器内部吗?你想不想把自己收藏的芙蓉姐姐的玉照上传到服务器中?想不想利用服务器代挂QQ?现在就让我们来看看这个漏洞吧,利用它你可以想怎么BT就怎么BT。
Bo-Blog是一款采用PHP+文本数据库的博客程序,凭着较快的运行速度和文本数据库的低廉成本,它在国内拥有一大批忠实的用户,算得上是个人建博客的首选。但是被关注的程度越高,程序本身的漏洞也被发现得越多。最近,Bo-Blog出现了有史以来最大的漏洞,黑客利用此漏洞可以成功上传WebShell,任意删除服务器上的数据,窃取用户的隐私信息,甚至进一步提升权限,得到服务器的控制权,从而严重影响服务器的安全。今天,就让我们来关注一下这个漏洞是怎样产生的,该如何利用。
一、从一段代码入手
首先让我们来研究一下出现漏洞的原因。先下载一套Bo-Blog的源程序,用记事本打开其中的“index.php”文件,找到第196行,可以看到“include ("include/$job.php");”,其中的“job”变量没有经过过滤.,只是判断是否有这个“$job.php”文件,从而导致用户可以把恶意数据写入一个PHP文件中,以获取WebShell。
因此,我们只要利用“index.php”,就可在服务器上写入WebShell,然后再利用WebShell进行进一步的渗透。
二、利用漏洞绕过验证
也许大家对漏洞的利用原理还不太理解,那么就让我们来进行一次漏洞利用演示,让大家了解该漏洞的巨大危害。
1.利用漏洞进后台
我们在百度中以“Powered by Bo-Blog V1.7.0108”为关键词进行搜索,可以找到很多采用Bo-Blog程序的网站。打开一个站点,在地址http://www.***.com/blog/index.php后添加“?job=../admin/change&action=phpinfo”,这句话的作用是利用Bo-Blog 程序中的“change.php”来显示“phpinfo”。“phpinfo”可以向我们提供很多有用的信息,包括操作系统的版本、服务器环境、PHP的设置等。有了这些信息,我们的进一步渗透会更加容易。
了解了服务器的基本信息后,就可以开始进行渗透了。在地址http://www.***.com/blog/index.php后加上“?job=../admin/ban”并回车,可直接打开后台的“禁止选项”页面,管理员在这里可以对限制IP地址或禁用词汇进行设置。
不过,由于程序员的疏忽,此处同样没有对变量进行过滤,我们可以利用它把后门植入到一个PHP文件中,但是不能直接在“禁止搜索的词”设置框中写入后门的代码,因为程序会先验证我们是否登录,只有在登录状态时才能写入数据。
2.绕过验证
难道我们就迈不过“验证”这道坎吗?其实,我们可以利用著名的“上传漏洞”的原理,制作一个可以本地提交数据的网页欺骗程序,从而绕过程序的验证。
进入后台的“禁止选项”页面,从“禁止搜索的词”这一选项入手,其对应的文件是“Blog”目录下的“bansearch.php”,这个文件在后面将成为我们进一步上传WebShell的跳板。
查看“禁止选项”页面的源文件,复制第30行的
打开这个test.htm文件,出现的是“禁止搜索的词”设置选项(图1),虽然表面上没有什么变化,但这时我们已经成功绕过了程序的验证,即使没有登录,也能提交数据。我们可以在这里写入一个WebShell,而这个WebShell会被写入到“Blog/bansearch.php”文件中。

此时,先别高兴,你不能指望直接就可得到一个超强的Webshell,因为我们提交上去的数据中如果包含有“'”、“ "”、“ \”等字符,那么就会被PHP自动过滤,并在后面加上“/”。因此我们必须植入一个最为简单的PHP后门,然后利用这个后门上传功能更为强大的Webshell。
三、“开启”后门获取权限
说到最简单的PHP后门,我们不妨利用一下lanker微型PHP后门,利用它我们可以上传功能非常强大的后门EasyPHPWebShell。
1.“开启”微型后门
lanker微型PHP后门是专门针对这种无法写入大型后门的情况而编写的,它分为客户端和服务端,服务端只有一段代码,把这段代码插入到目标服务器上的某个PHP文件中,然后利用客户端进行连接,便可成功得到一个后门。
打开test.htm,在“禁止搜索的词”中写入lanker微型PHP后门的服务端代码“”,然后点击“提交”,这样就可把后门写入“Blog/bansearch.php”文件。
现在,让我们用客户端来连接后门,在IE中打开“lanker微型PHP后门客户端”,在木马地址中输入“http://www.***.com/Blog/Blog/bansearch.php”,然后在“基本功能列表”下拉框中选择“PHP环境变量”,点击“提交”。如果连接成功,则会在右边的页面中出现服务器的PHP环境变量。
2.利用微型后门窃取控制权
虽然已经成功连接,但是这个后门的功能并不强大,操作也不是很方便,所以我们可以利用它上传一个功能更为强大的WebShell。
EasyPHPWebShell是一款类似于海阳顶端木马的PHP后门,它有着良好的操作性,我们就把它作为完全控制服务器的WebShell。
用“记事本”打开EasyPHPWebShell,在第16行的“$my_password”参数中可以设置密码,设置完毕后保存。回到lanker微型PHP后门,在“基本功能列表”下拉框中选择“上传文件”,在选择EasyPHPWebShell后点击“提交”,这样就可把WebShell上传到服务器。
接下来,在IE中输入“http://www.***.com/Blog/Blog/EasyPHPWebShell.php”即可打开WebShell。输入密码后,整个服务器的文件内容即可一目了然(图2),这时我们可以对任意文件进行修改、删除等操作,拥有了相当大的权限。现在,我们可以进一步提升权限,从而完全控制服务器。

防范措施:Bo-Blog的官方网站http://www.bo-blog.com已经发布了此漏洞的修复补丁,采用Bo-Blog程序的朋友可以下载该补丁升级到最新版本。
文章中所提到的软件的下载地址:http://www.nl297.com/cpcw/Blog.rar
编后:博客在我们生活中的地位日益重要,但博客的安全问题亦令人担忧,不仅Bo-Blog出现过漏洞,著名的L-Blog也曾出现过致命漏洞,因此,博客程序的安全之路还很长。
在此,我们提醒大家,作为博客站长,必须时刻注意博客的状态,要经常访问所使用的博客程序的官方网站,做到出现漏洞就在第一时间打好补丁,走在黑客的前面。同时还要定时备份数据,否则当自己辛辛苦苦经营的博客一夜之间化为乌有时,就只有欲哭无泪了。
对于服务器的安全,我们要做到防患于未然,合理设置系统权限,这样即使博客被攻破,损失的也只是一个博客,而不会危及到整个服务器。