【BUUCTF】[ACTF2020新生赛]include1

文章讲述了如何通过观察一个PHP文件的链接,利用浏览器不能执行PHP的特性,通过Base64编码将其转换为不可执行的格式,进而揭示flag.php的源代码。关键在于理解PHP的执行环境和浏览器的工作原理。

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

解题步骤:

观察

        题目首页只有一个超链接

                        0677ded08b23475a2f5ed4f94e28c759.png

        点击链接后提示:“Can you find out the flag?”

bcce0977afda38cdb13c7791dead0f27.png

        此时,URL显示:?file=flag.php,意为发送了一个GET请求,请求的是一个php文件

a988658ad31dbbe230c4e3ca40629328.png

分析

        根据提示,我们需要获取flag.php的源代码

        PHP通过一些函数包含的文件在网页中是不可见的,即使查看源代码也看不到该文件

4682af7adaa55d4d3beabf5898efa5b4.png

ade6e02ef68339fa36eee94c7ee0afb7.png

        PHP是后端语言,前端是无法查看的。即使将PHP源代码转码成其他形式,也无法查看

        这是因为PHP代码在服务器端执行,然后生成HTML格式的页面,发送到客户端进行显示。

        因此,无论怎样转换,都无法查看原始的PHP源代码。

        但是,如果浏览器无法执行该PHP文件,那么PHP代码将不会被执行,而是会以纯文本的形式显示出来。(关键!!!)

        这是因为浏览器只能解析和显示HTML、CSS和JavaScript等前端资源,而无法执行PHP等后端脚本。因此,当浏览器无法执行PHP文件时,它就会将PHP代码作为纯文本显示出来。

        浏览器无法直接执行Base64编码的PHP文件。Base64编码是一种将二进制数据转换为可打印ASCII字符的方式,但它并不是一种可执行的代码格式。浏览器只能解析和执行HTML、CSS和JavaScript等前端资源,而无法直接执行Base64编码的PHP文件。

攻克

        使用PHP伪协议对包含的文件的源代码进行转码为base64,使浏览器无法执行该PHP文件

        

        浏览器无法执行该PHP文件,便将文件中的内容直接显示出来97f491c2865c108152b63bf9d0aa16a2.png

        随机使用一个解码网站对base64编码的内容进行解码,得到flag

665035db5b18270c1fdb10a054762994.png

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值