data和filter协议文件包含

实验目的

通过本实验,了解php封装伪协议,掌握filter协议和data协议的用法

实验环境

操作机:kali
靶机:Windows Server 2003

实验地址:http://靶机ip/exp/include2/filter/
http://靶机ip/exp/include/include3.php

用户名:college
密码:360College

实验原理

php内置又很多内置URL风格的封装为协议,利用这些伪协议可以读取文件内容、命令执行等操作。

实验内容

靶机phpstudy开启服务;
请添加图片描述
请添加图片描述

filter协议文件包含

1.登录“Kali-Desktop”操作机,打开火狐浏览器,输入地址:http://靶机ip/exp/include2/filter/点击超链接,发现URL是http://【ip】/exp/include2/filter/index.php?file=show.php,应该是关于文件包含的
请添加图片描述
2.页面没有任何可利用的信息(因为内容被解析成php是看不见的),因此需要使用?file=php://filter/read=convert.base64-encode/resource=index.php,读取到base64加密的index.php文件
请添加图片描述

3.解密得到flag:flag{edulcni_elif_lacol_si_siht}
请添加图片描述

data协议 命令执行

1.登录“Kali-Desktop”操作机,打开火狐浏览器,输入地址:http://靶机ip/exp/include/include3.php
请添加图片描述
2.使用?page=data://text/plain,<?php phpinfo();?>,发现报错,需要在服务器端开启php.ini配置文件的allow_url_include参数(参见上文),然后重启Apache服务,刷新页面
请添加图片描述
3.代码得到执行,同样也可以写入一句话木马,再用菜刀进行连接

实验总结

掌握data协议和filter协议的用法