实验目的
通过本实验,了解php封装伪协议,掌握php://input文件包含的用法
实验环境
操作机:kali
靶机:Windows
实验地址:http://靶机ip/exp/include2/input/input2/
工具:burpsuite
用户名:college
密码:360College
实验原理
php内置又很多内置URL风格的封装为协议,利用这些伪协议可以命令执行等操作。
实验内容
登录“data和filter协议文件包含”靶机,打开phpStudy,启动Apache和MySQL服务(版本切换至5.4.45;服务器端开启php.ini配置文件的allow_url_include参数)
filter协议文件包含
1.登录“Kali-Desktop”操作机,打开火狐浏览器,输入地址:http://靶机ip/exp/include2/input/input2/
2.从页面中可以发现,要有一个“path”参数,并且可以知道这是个文件包含的题目,只要我们去读出包含有flag的文件就可以了,由于我们不知道包含于哪个文件,所以我们可以构造以下请求:http://靶机ip/exp/include2/input/input2/?path=php://input
3.此处用到的是php://input
,输入流,通过post请求提交一段php代码用来遍历目录,发现有flag.php
,因此需要借助burpsuite工具抓包,提交post数据
4.代码得到执行,遍历到flag.php
的位置,直接包含flag.php文件
5.并没有出现flag值,此时需要用到filter协议,使用:php://filter/read=convert.base64-encode/resource=flag.php
,读取到base64加密的flag.php文件
6.解密得到flag={12312312312}
实验总结
掌握php://input 文件包含和filter协议的用法