BUUCTF 之 [ACTF2020 新生赛]Include

BUUCTF 之 [ACTF2020 新生赛]Include

相关

项目内容
难度简单
类型WEB
靶场BUUCTF
坐标[ACTF2020 新生赛]Include

题目

题解

案发现场

打开题目链接,首页中只有一个超链接。
超链接
点击 tips 后,出现了如下提示(你能找到其他的 flag 吗):

提示
仔细观察,可以发现:
点击超链接后,发送了一个 GET 请求

?file=flag.php

file 的值为 flag.php ,应该是一个 PHP 文件。
改造一下链接(访问 flag.php 页面):

http://f2c5e5cb-7a5b-4a4b-b41b-5d9c19f9ed68.node4.buuoj.cn:81/flag.php

访问 flag.php
可以发现,题目首页中的 tips 超链接指向的就是 flag.php 页面。

分析

  1. PHP 中若通过 require()、once_require() 或 include() 、once_include() 函数去包含另一个文件,该文件在网页中均是不可见的(即使你查看网页源代码)。
    查看网页源代码
  2. 页面提示,Can you find out the flag?

综上,可以发现 flag.php 页面通过 get 方式中的参数 file 来包含网站当前目录下的其他文件(如 flag.php),再加上提示 “你能找到其他 flag 吗?” ,我们可以推断,要解答该题目需要获取 flag.php 的源代码。

攻克

我们可以通过将包含的文件进行转码,让浏览器无法识别这是 PHP 代码,其也就无法执行该 PHP 文件,于是将文件中的内容直接显示出来,我们将通过 PHP 伪协议来完成这一动作。
使用 PHP 伪协议将网页源代码转换为 base64 编码的格式:

php://filter/read=convert.base64-encode/resource=flag.php

其中的 read 可以省略,但 resource 不能。
将此部分作为 GET 参数的值即可获得 flag,因此,构造的链接为:

http://f2c5e5cb-7a5b-4a4b-b41b-5d9c19f9ed68.node4.buuoj.cn:81/?file=php://filter/read=convert.base64-encode/resource=flag.php

我们由此获得了一段使用 base64 编码的 PHP 代码:

Base64 编码的 PHP 代码
在线解码 后,我们可以得到一段 PHP 代码,其中就包含了 flag。

包含 flag 的 PHP 代码

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryMoon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值