搜索

查看: 3092|回复: 11

[PHP] PHP伪协议基本原理介绍

[复制链接]
发表于 2023-5-4 17:07:30 | 显示全部楼层 |阅读模式
Editor 2023-5-4 17:07:30 3092 11 看全部
目录
  • 前言
  • 常见的php伪协议
  • php://input
  • php://filter
  • zip://与bzip2://与zlib://协议
  • data://
  • phar://
    前言
    引用一张比较清晰易懂的图

    2022111111045925.png

    2022111111045925.png


    php伪协议是php自己支持的一种协议与封装协议,简单来说就是php定义的一种特殊访问资源的方法。

    常见的php伪协议
    php://input
    php://input 是个可以访问请求的原始数据的只读流,获取POST请求数据的协议
    当enctype=”multipart/form-data” 的时候 php://input 是无效的。
    要使php://input 成功使用还需要配置php.ini 中的 allow_url_include设置为On

    2022111111045926.png

    2022111111045926.png


    案例代码
    php

    构造执行的代码,输出结果

    2022111111045927.png

    2022111111045927.png


    php://filter
    php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。
    在利用上很多都是与包含函数结合使用,读入或者输出获取文件源码然后编码让其不执行从而输出
    php://filter 的使用:如
    php://filter/read=convert.base64-encode/resource=index.php
    php://filter/resource=index.php
    php://filter 伪协议组成:
    read=
    resource=
    write=
    php://filter/read=处理方式(base64编码,rot13等等)/resource=要读取的文件
    read 对应要设置的过滤器:
    常见的过滤器分字符串过滤器、转换过滤器、压缩过滤器、加密过滤器
    其中convert.base64-encode ,convert.base64-decode都属于 转换过滤器



    访问输出base64编码后的内容

    2022111111045928.png

    2022111111045928.png


    zip://与bzip2://与zlib://协议
    zip:// 等属于压缩流的协议,通过直接压缩普通文件为zip文件,再通过zip:// 协议读取,可以直接执行php代码。压缩后的zip文件可以随意修改后缀也不影响zip://协议读取。(注意是如phpinfo.txt直接压缩为zip,而不是文件夹压缩zip)
    例:

    压缩及协议访问格式:
    压缩文件为.zip后缀
    zip://绝对路径/phpinfo.zip%23phpinfo.php
    压缩文件为.bz2后缀
    compress.bzip2://绝对路径/phpinfo.zip/phpinfo.php
    压缩文件为.gz后缀
    compress.zlib://绝对路径/phpinfo.zip/phpinfo.php

    zip://访问

    2022111111045929.png

    2022111111045929.png


    data://
    data://协议与php://input 有很点相似的地方。他们都可以通过请求提交的php代码数据配合文件包含函数可以达到代码执行效果,data:// 的成功执行需要php.ini设置allow_url_include 与allow_url_open都为On。
    data://协议的格式是: data://数据流封装器,相应格式数据
    常见的用法为
    data://,   
    data://text/plain,
    data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b

    例:

    构造data:// 访问

    2022111111045930.png

    2022111111045930.png


    phar://
    phar://伪协议在前面phar反序列化的时候学习过,phar也可以对zip格式压缩包进行访问解析。
    格式为:phar://绝对路径\phpinfo.zip\phpinfo.php

    2022111111045931.png

    2022111111045931.png


    到此这篇关于PHP伪协议基本原理介绍的文章就介绍到这了,更多相关PHP伪协议内容请搜索知鸟论坛以前的文章或继续浏览下面的相关文章希望大家以后多多支持知鸟论坛
  • 知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-29 00:00:07 | 显示全部楼层
    贰十岁装成熟装s 2023-6-29 00:00:07 看全部
    这东西我收了!谢谢楼主!知鸟论坛真好!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-29 02:58:36 | 显示全部楼层
    老橡树1 2023-6-29 02:58:36 看全部
    楼主,大恩不言谢了!知鸟论坛是最棒的!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-29 15:18:03 | 显示全部楼层
    永远爱你冰塘 2023-6-29 15:18:03 看全部
    楼主太厉害了!楼主,I*老*虎*U!我觉得知鸟论坛真是个好地方!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-29 20:28:19 | 显示全部楼层
    Gordon520 2023-6-29 20:28:19 看全部
    论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-30 00:16:23 | 显示全部楼层
    123456865 2023-6-30 00:16:23 看全部
    感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-7-3 06:47:07 | 显示全部楼层
    惜颜705 2023-7-3 06:47:07 看全部
    其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-7-3 10:16:24 | 显示全部楼层
    当当当当裤裆坦 2023-7-3 10:16:24 看全部
    这东西我收了!谢谢楼主!知鸟论坛真好!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-7-3 12:07:31 | 显示全部楼层
    dxf17 2023-7-3 12:07:31 看全部
    楼主,大恩不言谢了!知鸟论坛是最棒的!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-7-3 14:37:12 | 显示全部楼层
    哈哈SE7 2023-7-3 14:37:12 看全部
    其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    • 您可能感兴趣
    点击右侧快捷回复 【请勿灌水】
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则 返回列表

    RSS订阅| SiteMap| 小黑屋| 赞兔论坛
    联系邮箱E-mail:zniao@foxmail.com
    快速回复 返回顶部 返回列表