php伪协议 [ACTF2020 新生赛]Include1

打开题目

点击后

期间bp抓包也一无所获

那我们回到题目上来

我们可知这是文件包含漏洞,但是我们直接读取的是flag.php文件,而非flag.php文件源码,那我们想要获取文件源码,这里就涉及到php伪协议


php://filter可以获取指定文件源码。当它与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,让其不执行。从而导致任意文件的读取

php://filter/read=convert.base64-encode/resource=index.php

php://filter/resource=index.php

利用filter协议读文件,将index.php通过base64编码后进行输出。这样做的好处就是如果不进行编码,文件包含后就不会有输出结果,而是当做php文件执行了,而通过编码后则可以读取文件源码。

一些文件包含漏洞的总结:CTF中文件包含漏洞总结-CSDN博客


这道题我们需要读取文件源码,所以我们采用第一种方式,base64进行编码使其避开被当做php文件执行,convert.base64-encode,就是一种过滤器。

payload:

?file=php://filter/read=convert.base64-encode/resource=flag.php

得到flag文件被base64加密后的源文件

base64解码后 得到flag

发现flag是被单行注释掉了,故不在页面上显示出来

相关推荐
C++ 老炮儿的技术栈7 分钟前
在vscode 如何运行a.nut 程序(Squirrel语言)
c语言·开发语言·c++·ide·vscode·算法·编辑器
Y40900120 分钟前
Java基础——实现图书管理系统交互功能
java·开发语言·笔记·交互
沐知全栈开发27 分钟前
MySQL 运算符
开发语言
寒水馨44 分钟前
Java 24 新特性解析与代码示例
java·开发语言·新特性·jdk24·java24
talented_pure1 小时前
Python打卡Day30 模块和库的导入
开发语言·python
能工智人小辰1 小时前
Educational Codeforces Round 181 (Rated for Div. 2) A-C
c语言·开发语言
Simple_core2 小时前
qt中的手势
开发语言·qt
蓝倾9762 小时前
电商API接口的优势、数据采集方法及功能说明
开发语言·python·api·开放api·电商开放平台
Joker-01113 小时前
深入 Go 底层原理(十):defer 的实现与性能开销
开发语言·golang·defer
筏.k3 小时前
用 Qt 打造优雅的密码输入框:添加右侧眼睛图标切换显示
开发语言·数据库·qt