[ACTF2020 新生赛]Include 1-BUUCTF

@ZZHow(ZZHow1024)

File Inclusion(文件包含)类

含义:编写的代码**“引用”其他文件的代码!**

思路:利用“引用”打开正常看不见的文件

实操:

1、启动靶机,观察题目界面

0

[ACTF2020 新生赛]Include 1题目界面

  • OK,整个网页只有tips一个按钮。

2、寻找解题思路

  • 点击tips按钮

0

点击tips后

  • 只有一句话 “Can you find out the flag?”
    • tips页面似乎没有什么有用的信息
  • 点击“F12”键打开“开发者工具”找找。
    • 还是没有。。。
  • 观察URL的变化。
    • 发现原始URL后多了 /?file=flag.php
    • 且flag参数里的值就是flag.php
  • 考虑利用文件包含类漏洞
  • 但柿,现在file已经是=flag.php呀
    • 那就考虑从这个PHP文件入手

3、读取PHP文件的源码

  • 补充知识:php://filter伪协议。
    • ?file=php://filter/read=convert.base64-encode/resource=flag.php
    • 意思为读取源代码并进行base64编码输出,而不是执行该PHP代码。
  • 构建URL。
    • 在原URL后添上 /?file=php://filter/read=convert.base64-encode/resource=flag.php
    • http://9b6dbd6d-7295-4d9d-af8b-9114bf12bfbb.node4.buuoj.cn:81/?file=php://filter/read=convert.base64-encode/resource=flag.php
  • 访问!

0

4、base64解码

  • 借助Hackbar将得到的一串字符进行解码。
    • 点击ENCODING — Base64 decode

0

5、解题成功!

0

  • 得到该PHP文件源码
<?php
echo "Can you find out the flag?";
//flag{2194b306-0682-4e65-8e52-9d5ade336c8d}
  • 获得Flag!
### ACTF2020 新生 Include1 题目解析 #### 背景介绍 ACTF2020新生中的`Include1`题目属于Web安全领域,主要考察参者对文件包含漏洞的理解和利用能力。该题旨在测试选手能否通过特定手段绕过服务器端的安全检测机制来读取敏感文件。 #### 安全检测逻辑分析 给定的PHP代码片段展示了服务端对接收到的`file`参数进行了简单的字符串匹配检查[^3]: ```php if(stristr($file,"php://input") || stristr($file,"zip://") || stristr($file,"phar://") || stristr($file,"data:")){ exit('hacker!'); } ``` 这段代码试图阻止攻击者使用某些危险的协议(如`php://input`, `zip://`, `phar://`, 和 `data:`)来进行恶意操作。然而,这种防护措施并不完善,因为存在其他未被考虑到的有效载荷形式。 #### 利用方法探讨 为了成功获取目标文件的内容,在此案例中即为`flag.php`,可以采用`php://filter`伪协议配合Base64编码的方式实现。具体来说,当请求URL如下所示时: ``` ?file=php://filter?read=convert.base64-encode/resource=flag.php ``` 此时,PHP解释器会按照指定顺序处理指令链——先应用`php://filter`转换资源路径指向的目标文件(`resource=flag.php`)的数据流;接着调用`convert.base64-encode`滤镜对该数据流实施Base64编码;最后由`include()`函数加载并输出经过上述变换后的结果。 值得注意的是,由于返回的结果是以Base64格式呈现,因此还需要进一步解码才能得到原始文本信息。 #### PHP伪协议概述 `php://filter`是一种特殊的元封装器,允许开发者在打开数据流前对其施加各种类型的过滤操作。这对于那些一次性完成全部工作的内置文件处理函数特别有用,因为在实际读取内容之前并没有提供额外的机会去设置过滤条件[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值