攻防世界: fileinclude

- 查看网络源码:下面红框中的代码大致意思就是会从请求中得到一个cookie的参数,如果没有得到的话,就包含english.php的文件。否则拼接cookie传上来的数据,并包含

-
理解上述代码的意思后,大致的思路就是: 发送请求的时候,带上cookie,想办法控制
lan变量的值 。根据网页的提示,我们需要的文件是flag.php。但是注意看20行的代码,使用的是include语句对文件进行导入。
include函数的功能:
-
如果里面含有<?php ... ?>的时候,他会执行里面的代码。
-
如果是不包含这个标签,就会直接输出内容。
-
因此我们想要直接看到flag.php的内容。就需要对php文件进行特殊的处理,比如采用base64的方式进行编码。
所以我采用下面的方式获取flag.php的内容:
bash
php://filter/convert.base64-encode/resource=flag
使用burp suite 进行改包,可以看到成功返回了一串base64编码后的数据:

- 解码base64的数据,得到flag
