攻防世界 web write-up warmup

本文详细介绍了如何通过分析页面源代码和URL编码技巧,利用文件包含漏洞获取敏感信息。通过逐步解析PHP代码和理解条件判断逻辑,成功定位flag文件,并通过构造特定URL获取目标文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

warmup

【题目】

在这里插入图片描述

【步骤】

  • 首先查看页面源代码,发现有提示:source.php,进入该页面

  • 得到一串php代码
    在这里插入图片描述

  • 在代码中,whitelist中包含两个php文件,提示我们进入hint.php,打开后得到flag文件的大概位置
    在这里插入图片描述

  • 在source.php中,有四个用来检测page变量:

  • 若page为字符串,返回true;

  • 若page存在whitelist中,返回true

  • 若page截取后存在于whitelist中,返回true;

  • 对page进行url解码并截取,若page存在于whitelist中,返回true;

第二个语句直接判断$page,不可用
第三个语句截取'?'前部分,由于?被后部分被解析为get方式提交的参数,也不可利用
第四个if语句中,先进行url解码再截取,因此我们可以将?经过两次url编码,在服务器端提取参数时解码一次,checkFile函数中解码一次,仍会解码为'?',仍可通过第四个if语句校验。('?'两次编码值为'%253f',构造url:
http://399fe153-1f62-43d5-a67f-e645a0e7ac66.node3.buuoj.cn/source.php?file=source.php%253f../ffffllllaaaagggg<br><br>经过测试发现无返回值,这可能是因为我们不知道ffffllllaaaagggg文件存放的具体位置<br>所以依次增加../,最终成功拿到flag

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值