web——warmup——攻防世界

这道题还是没有做出来。。,来总结一下

1.ctrl+U显示源码

2.看见body里有source.php

打开这个source.php

看见了源码

  1. highlight_file(FILE);

    • 这行代码用于高亮显示当前文件的源码,适合调试和学习,但在生产环境中通常不需要。
  2. class emmm

    • 定义了一个名为 emmm 的类。
  3. public static function checkFile(&$page)

    • 这是一个静态方法,名为 checkFile,用于检查传入的 $page 参数是否安全。
  4. $whitelist = ["source"=>"source.php","hint"=>"hint.php"];

    • 定义一个白名单数组,只允许 source.phphint.php 这两个文件被包含。
  5. if (! isset(page) \|\| !is_string(page)) { ... }

    • 检查 $page 是否被设置且是字符串。如果不是,则返回提示信息并结束函数。
  6. if (in_array(page, whitelist)) { ... }

    • 检查 $page 是否在白名单中。如果是,返回 true
  7. $_page = mb_substr(...)

    • 这段代码处理 $page,去掉查询字符串(? 之后的部分),并检查处理后的值是否在白名单中。
  8. _page = urldecode(page);

    • $page 进行 URL 解码,然后再次进行同样的白名单检查。
  9. echo "you can't see it"; return false;

    • 如果 $page 不在白名单中,返回提示信息并结束函数。
  10. if (! empty($_REQUEST['file']) ... )

    • 检查请求中是否有 file 参数,且该参数是字符串。如果满足条件,调用 checkFile 方法。
  11. include $_REQUEST['file'];

    • 如果检查通过,包含用户请求的文件。
  12. else { echo "<br><img src="..." />"; }

    • 如果没有通过检查,则显示一张图片。

3.打开hint.php看看

发现flag在文件ffffllllaaaagggg里

4.通过学习,flag文件一般在根目录里,一般用4层返回

source.php?file=hint.php?/../../../../ffffllllaaaagggg

得到flag

相关推荐
梧桐168几秒前
马克沁机枪上阵(二):前线开辟—Claude Code 如何用一天打通前端
前端
东离与糖宝1 分钟前
面试官直言:Java应届生面试,我只看这3个核心能力
java·面试
是上好佳佳佳呀4 分钟前
【前端(一)】HTML 知识梳理:从结构到常用标签
前端·html
逸Y 仙X5 分钟前
文章十三:ElasticSearch数据更新实战
java·大数据·elasticsearch·搜索引擎·jenkins
说给风听.5 分钟前
从零学会 Java 异常处理 —— 核心语法、自定义异常与面试指南
java·开发语言·面试
楚轩努力变强7 分钟前
2026 年前端进阶:端侧大模型 + WebGPU,从零打造高性能 AI 原生前端应用
前端·typescript·大模型·react·webgpu·ai原生·高性能前端
身如柳絮随风扬8 分钟前
Java JDBC 从入门到进阶
java·开发语言
Joker`s smile9 分钟前
Spring Cloud Alibaba 基础入门实践
java·spring boot·后端·spring cloud
放下华子我只抽RuiKe511 分钟前
深度学习 - 01 - NLP自然语言处理基础
前端·人工智能·深度学习·神经网络·自然语言处理·矩阵·easyui
nbsaas-boot12 分钟前
AI编程的现实困境与未来路径:从“可用”到“可靠”的跃迁
java·运维·开发语言·架构