zoukankan      html  css  js  c++  java
  • 攻防世界WEB高手进阶之blgdel

    CISCN final

    打开页面

     

    扫描目录

     

     Robots.txt

     

     Config.txt

    代码审计

    <?php
    
    class master
    {
        private $path;
        private $name;
        
        function __construct()
        {
            
        }
        
        function stream_open($path)
        {
            if(!preg_match('/(.*)/(.*)$/s',$path,$array,0,9))
                return 1;
            $a=$array[1];
            parse_str($array[2],$array);
            
            if(isset($array['path']))
            {
                $this->path=$array['path'];
            }
            else
                return 1;
            if(isset($array['name']))
            {
                $this->name=$array['name'];
            }
            else
                return 1;
            
            if($a==='upload')
            {
                return $this->upload($this->path,$this->name);
            }
            elseif($a==='search')
            {
                return $this->search($this->path,$this->name);
            }
            else 
                return 1;
        }
        function upload($path,$name)
        {
            if(!preg_match('/^uploads/[a-z]{10}/$/is',$path)||empty($_FILES[$name]['tmp_name']))
                return 1;
            
            $filename=$_FILES[$name]['name'];
            echo $filename;
            
            $file=file_get_contents($_FILES[$name]['tmp_name']);
            
            $file=str_replace('<','!',$file);
            $file=str_replace(urldecode('%03'),'!',$file);
            $file=str_replace('"','!',$file);
            $file=str_replace("'",'!',$file);
            $file=str_replace('.','!',$file);
            if(preg_match('/file:|http|pre|etc/is',$file))
            {
                echo 'illegalbbbbbb!';
                return 1;
            }
            
            file_put_contents($path.$filename,$file);
            file_put_contents($path.'user.jpg',$file);
            
            
            echo 'upload success!';
            return 1;
        }
        function search($path,$name)
        {
            if(!is_dir($path))
            {
                echo 'illegal!';
                return 1;
            }
            $files=scandir($path);
            echo '</br>';
            foreach($files as $k=>$v)
            {
                if(str_ireplace($name,'',$v)!==$v)
                {
                    echo $v.'</br>';
                }
            }
            
            return 1;
        }
        
        function stream_eof()
        {
            return true;
        }
        function stream_read()
        {
            return '';
        }
        function stream_stat()
        {
            return '';
        }
        
    }
    
    stream_wrapper_unregister('php');
    stream_wrapper_unregister('phar');
    stream_wrapper_unregister('zip');
    stream_wrapper_register('master','master');
    
    ?>

    还发现有sql.txt

     

     给出了数据库名,数据表,列名,字段名

    访问User.php

     

    发现有文件上传点

    访问发现等级过低

     

     估计要拿一个高分的账户

    后面注意到注册页面有个推荐人,试了一下,注册一个新账户给10个积分

     

    到达一百个积分的时候可以上传文件

     

     上传一个图片马

    上传失败,回头看看代码config.php

     

    这里过滤了尖括号,代码尽管上传成功,但是无法执行

     

     代码被替换了

     

    无法上传php马,但是在尝试过程中发现.htaccess可以被上传,意味着我们可以包含文件

    .htaccess相关介绍,在这里

    链接:

    https://www.cnblogs.com/adforce/archive/2012/11/23/2784664.html

    https://blog.csdn.net/cmzhuang/article/details/53537591

    后面实在看不出东西,无奈WP大法

    说的比较详细,大概意思是可以通过构造这个master协议来搜索文件,包含成功的话,这个文件的内容会映射到test.php里面

    构造

    php_value auto_append_file master://search/path={}&name={}

    wp说的要把正斜杠编码传入才行,试了一下,确实不行,原因未知

     

    编码一下

    php_value auto_append_file master://search/path=%2fhome%2f&name=flag

    然后放进.htaccess里面,上传

    访问1.php

     

    直接包含进来

    php_value auto_append_file /home/hiahiahia_flag

     

     Flag拿到了

  • 相关阅读:
    OC
    OC
    OC
    OC
    OC
    Oracle wm_concat()函数
    字符串拼接
    easyui扩展数据表格点击加号拓展
    子tab里面新增tab(top.jQuery)
    combox datagrid重复请求问题
  • 原文地址:https://www.cnblogs.com/mke2fs/p/11569913.html
Copyright © 2011-2022 走看看