知识点:文件包含漏洞【PHP伪协议】
进入靶场后,发现是一个文字界面没有任何特点。
习惯性的右键查看源代码,发现有一个PHP文件
点击进行访问后,发现有一个链接但是点击链接后没有发现任何东西。此时右键查看原代码也没有发现东西。
但是可以肯定的是突破口就在Archive_room.php文件里面,因为在end.php文件里面提示了flag在Archive_room.php文件里面查找。
所以我们在返回Archive_room.php文件,因为源代码没有什么发现所以我们可以尝试用bp抓取数据包,在响应里面我们发现了一个PHP文件被注释了
把secr3t.php 文件复制下来访问,发现注释里面有一个flag.php文件。在secr3t.php页面里面展示了部分代码,很明显是一个文件包含漏洞。然后访问flag.php文件
访问flag.php文件后发现没有看到flag。这是因为PHP的文件包含有一个特性,被包含的文件内容如果是代码则会执行而不会出现在页面中展示;如果是非代码则不会执行会以文本的形式在页面中展示出来。所以对于这一特性我们可以使用PHP伪协议对文件内容进行编码,编码后的文件内容由于是非代码不能执行,会展示在页面中,之后我们可以进行解码即可得到文件内容。
关于文件包含伪协议,在上一篇中有详细介绍
,这里就不过多介绍
https://mp.csdn.net/mp_blog/creation/editor/129289732
使用filter伪协议构造URL为
http://62ebbcb1-e160-4e64-8b5c-427d314ca832.node4.buuoj.cn:81/secr3t.php?file=php://filter/read=convert.base64-encode/resource=flag.php
之后就可以进行base64的解码了,得到flag了
总结:
其实这一关就是关于文件包含漏洞中的PHP伪协议。