CTF之关于include的漏洞

博客先介绍了php://filter、php://input、data:URL等PHP伪协议的基本知识点,如php://filter可读取网站源码,php://input能访问请求原始数据。接着利用这些知识解答了两道fileinclude相关题目,通过代码审计构造payload获取加密内容,解密后得到flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0x00

在介绍漏洞之前,我们需要去了解一些基本的知识点

1.php://filter

php://filter用于读取网站源码。读取php文件源码内容(直接包含脚本格式文件会解析无法直接获取文件源码)。用法:

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

通常将代码构造成这样,(这里的read可以不用),代码运行成功之后,我们将得到经base64编码后的编码解码就可以了

这里附上常用的解码网站:https://www.qqxiuzi.cn/bianma/base64.htm

2.php://input

是个可以访问请求的原始数据的只读流。(php://input可以读取没有处理过的POST数据)

所以我们可以利用这个伪协议来传输POST请求数据

3.data:URL

data:,<文本数据>

data:text/plain,<文本数据>

data:text/html,<html代码>

data:text/html;base64,<base64编码的html代码>

data:text/css,<css代码>

data:text/css;base64,<base64编码的css代码>

data:text/javascript,<javascript代码>

data:text/javascript;base64,<base64编码的javascript代码>

data:image/gif;base64,base64编码的gif图片数据

data:image/png;base64,base64编码的png图片数据

data:image/jpeg;base64,base64编码的jpeg图片数据

data:image/x-icon;base64,base64编码的icon图片数据

上面是一些常用的类型,我们可以通过上述的方法将想要的数据导入到文件或是其他当中,在后面我们会有举例

0x01

有了上面的知识,我们可以来做一些简单的题目了:

1.fileclude

进入网站后,映入眼帘的是上述的代码。

我们先来介绍一下file_get_contents()这个函数:

        file_get_contents() 是一个 PHP 内置函数,用于以字符串的形式获取指定文件的内容。使用该函数可以读取本地的文件、远程文件和 HTTP 请求的响应等内容。

通过代码审计,我们可以提取出两个关键的信息:

1.我们需要的flag就在flag.php里面

2.我们需要让file2传输的文件的值要为hello ctf

这下就比较好办了,构造如下的payload(建议大家还是手敲代码来加深印象):

?file1=php://filter/convert.base64-encode/resource=flag.php&file2=data://text/plain,hello ctf

为此,我们得到了flag.php文件经过加密的内容,通过解密就可以得到flag了

cyberpeace{1e4ad390cdb6cf3ac37897730e997d25}

2.fileinclude

我们看到这个网页的时候,发现除了flag is in flag.php这句话有用外,就没什么有用的消息了,所以我们查看一下网页源码:

网页源码如上图所示:

在这里我们可以看出:这里是通过传输cookie的值来实现注入的

所以我们只需要构建一下payload就行了:

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

在这里将值存入cookie当中,就可以得到base64的编码:

为此,我们成功的获得了flag。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值