ctf中怎样获取php文件源码,CTF中文件包含的一些技巧

本文总结了CTF比赛中关于文件包含的常见技巧,包括php伪协议的理解与利用,如php://input、php://filter、php://output。讨论了如何通过伪协议获取PHP文件源码,以及如何利用php://filter绕过过滤器。还提到了allow_url_fopen和allow_url_include的配置影响,字典绕过方法,以及截断包含、zip和phar协议在文件包含中的应用。

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

前言

文件包含在 CTF 比赛也是常考的一个点,这里对一些包含点的原理、特征进行一些总结,并结合实际的例子来讲解如何绕过。

php伪协议的分类

伪协议是文件包含的基础,理解伪协议的的原理才能更好的利用文件包含漏洞。

php://input

php://input代表可以访问请求的原始数据,简单来说POST请求的情况下,php://input可以获取到post的数据。

使用条件:include()、include_once()、file_get_contents()

比较特殊的一点,enctype=”multipart/form-data” 的时候 php://input 是无效的。

用法举例

使用 file_get_contents 函数的伪协议包含有个经典的例子:

1cc5554056972933cb446913e70acbfc.png

可以使用fputs文件输入流直接服务器某一存在的目录下写入文件

fb9d25ef4e400501677afbb74f2c889d.png

php://output

php://output 是一个只写的数据流, 允许你以 print 和 echo 一样的方式 写入到输出缓冲区。

php://filter(重点)

php://f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值