昨晚看了风之同学的帖子(Simple-Log 1.2PHP博客系统延迟注射漏洞),有感而发。

    今天略看了一下,发现一些小漏洞。希望土司同学们能加强讨论气氛,形成学习风气。

    经典对白,看代码……

第一:install\index.php

    安装程序后,程序不会自动删除,这样就能进行2次安装。

install\index.php 第55行:

if ($install_lock&&$setup!='finish')
{
        header('location: ../index.php');   //关闭脚本后能绕过  或者直接POST  setup=finish  直接安装程序
}

第二:

    admin/includes/comment.php
    require_once(PBBLOG_ROOT.'/includes/base.function.php');

    直接访问此文件,PBBLOG_ROOT 没有定义,则会报错,然后显示出绝对路径。

第三 :

    admin/index.php?act=get_version

以下是引用片段:

elseif ($action=='get_version')
{
        require(PBBLOG_ROOT. '/includes/json.class.php');
        $json   = new JSON;
        $notice=file_get_contents('http://www.simple-log.com/api.php?act=version&u='.str_replace(PBBLOG_WS_ADMIN, '', dirname($url)));
        $res=explode('|s|',$notice);
        $res['version']=$res[0];
        $res['notice']=$res[1];
       
        die($json->encode($res));
}

    这里并非漏洞,但很有趣味,修改本地 host“127.0.0.1  www.simple-log.com”,嘻嘻,纯属娱乐……

    file_get_contents 结合 explode 能变成变量替换漏洞,当然这里不存在。