php伪协议(文件包含)

php支持多种封装协议
一.实验环境
dvwa平台low级别,phpstudy中设置为5.4.45版本
*将php.ini中的allow_url_fopen和allow_url_include都改为On
需要四个文件:
1.index.php(默认有,在phpStudy\PHPTutorial\WWW\DVWA-master\vulnerabilities\fi目录下)
php伪协议(文件包含)_第1张图片
2.index.php同级目录下创建1.txt文件
php伪协议(文件包含)_第2张图片
3.创建2.txt文件
php伪协议(文件包含)_第3张图片
4.创建3.txt并且解压为3.zip
php伪协议(文件包含)_第4张图片
再说明一下,include()函数对文件后缀名无要求,而对其中的语法有要求,即使后缀名为txt,jpg也会被当做php文件解析,只要文件内是形式就可以执行,但是如果不是php语法的形式,即使后缀为php,也无法执行。
二.演示
1.php://访问输入输出流,有两个常用的子协议
(1)php://filter设计用来过滤筛选文件
用法:非php语法文件include失败,直接输出源码内容
命令:php://filter/resource=1.txt
php伪协议(文件包含)_第5张图片
用法:php语法文件include成功,直接运行
命令:php://filter/resource=2.txt
php伪协议(文件包含)_第6张图片
如果想要读取运行php文件的源码,可以先base64编码,再传入include函数,这样就不会被认为是php文件,不会执行,会输出文件的base64编码,再解码即可。
在这里插入图片描述
若采用rot13编码,对php文件中的 (2)php://input
这个协议的利用方法是 将要执行的语法php代码写在post中提交,不用键与值的形式,只写代码即可。
命令:php://input(get中)
(post中)
php伪协议(文件包含)_第7张图片
php伪协议(文件包含)_第8张图片
这里我们用input协议将shell写入网站目录下
首先该目录下没有shell.php
php伪协议(文件包含)_第9张图片
然后写入
命令:php://input(get中)

')?>(post中)

php伪协议(文件包含)_第10张图片
查看目录成功生成
php伪协议(文件包含)_第11张图片
访问网址,菜刀进行连接
php伪协议(文件包含)_第12张图片
php伪协议(文件包含)_第13张图片
成功
2.file:// 与php:filter类似,访问本地文件,但是只能传入绝对路径
命令:file://E:/phpStudy/PHPTutorial/WWW/DVWA-master/vulnerabilities/fi/2.txt
php伪协议(文件包含)_第14张图片
3.Phar://可以查找指定压缩包内的文件
(1)传入绝对路径
命令:
http://127.0.0.1:81/DVWA-master/vulnerabilities/fi/?page=phar://E:/phpStudy/PHPTutorial/WWW/DVWA-master/vulnerabilities/fi/3.zip/3.txt
php伪协议(文件包含)_第15张图片
(2)传入相对路径(同级目录下的文件开始)
命令:http://127.0.0.1:81/DVWA-master/vulnerabilities/fi/?page=phar://3.zip/3.txt
php伪协议(文件包含)_第16张图片
4.zip://用法与phar类似,不过要注意两点
(1)只能传入绝对路径
(2)要用#分隔压缩包和压缩包内的内容,并且#要用url编码%23
命令:
http://127.0.0.1:81/DVWA-master/vulnerabilities/fi/?page=zip://E:/phpStudy/PHPTutorial/WWW/DVWA-master/vulnerabilities/fi/3.zip%233.txt
在这里插入图片描述
5.data与input类似,都是用户可以控制传入的php代码
data:text/plain,
(1)data:text/plain,
在这里插入图片描述
(2)使用base64编码
data:text/plain;(注意分号不是逗号,与前面不同)base64,编码后的php代码
实验不成功…
附一张别人的成功图:
php伪协议(文件包含)_第17张图片

6.http协议
include中也可以传入外部链接,采用http://,具体怎么利用以后再来填坑。
命令:?page=http://www.baidu.com
php伪协议(文件包含)_第18张图片
一张图总结:
php伪协议(文件包含)_第19张图片

你可能感兴趣的:(php)