解题步骤:

观察

        题目首页只有一个超链接

                        

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

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

分析

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

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

        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文件,便将文件中的内容直接显示出来

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

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐