这个题的前身是一个cve漏洞(phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613))

刚入坑的小伙伴不要慌,我们一步一步慢慢来看

点开题目,日常f12发现有提示,所以我们进行访问

发现是源代码,让我们进行阅读(分为两块1、主函数部分 2、外部类)

外部方法:

这里对两个函数进行解释查询以下资料

(关于mb_strpos函数在测试时发现如果没有匹配到指定符号,将返回字符串长度)

我们进行一些本地测试加深理解:

代码如下:

 class emmm{public static function checkFile(&$page){//先看一下对函数里输入了什么$a=&$page;echo $a."<br>";$whitelist = ["source"=>"source.php","hint"=>"hint.php"];if (! isset($page) || !is_string($page)) {echo "you can't see it";return false;}if (in_array($page, $whitelist)) {return true;}echo mb_strpos($page . '?', '?')."<br>";//没匹配到所以返回字符串长度$_page = mb_substr($page,0, mb_strpos($page . '?', '?'));echo "2".$_page."<br>";//经过一次后返回值if (in_array($_page, $whitelist)) {return true;}$_page = urldecode($page);echo "3".$_page."<br>";//二次编码后的返回值echo mb_strpos($page . '?', '?')."<br>";//注意输出时与第一次的区别$_page = mb_substr($page,0, mb_strpos($_page . '?', '?'));echo "4".$_page."<br>";//再次看经过截取后的输出if (in_array($_page, $whitelist)) {echo "sdf you can't see it";//证明进入该函数return true;}echo "you can't see it";return false;}}

看测试结果:

看到第4部分输出为白名单内的内容,证明我们已经绕过了检查部分,只需要将含有flag的文件包含进去即可;

这是我们观察到白名单中的提示:hint.php

所以进行目录穿越即可获得flag(ffffllllaaaagggg这里flag被写了四次所以使用4或5个../)

关于.和/的解释:

.表示当前目录
. .表示当前目录的上一级目录。
. ./表示当前目录下的某个文件或文件夹,视后面跟着的名字而定
./表示当前目录上一级目录的文件或文件夹,视后面跟着的名字而定。
例如:
文件夹 a
下面有 文件夹b c 和文件 d。
文件夹b下面有e.php 和文件f。
则e中的 . 表示 文件夹b
./f 表示b下面的文件f。
. .表示a文件夹。
. ./d 表示a文件夹下的d文件。

查阅资料:

PHP mb_substr() 函数 | 菜鸟教程 (runoob.com)

PHP: mb_strpos - Manual

大佬博客

https://blog.csdn.net/m0_53314778/article/details/112629012

[HCTF 2018]WarmUp相关推荐

  1. [HCTF 2018] WarmUp

    [HCTF 2018] WarmUp 开局一张图,先看看页面源码信息 给出了一个 source.php 应该是后端的源码,这题代码审计了 <?phphighlight_file(__FILE__ ...

  2. [原题复现]HCTF 2018 Warmup

    HCTF 2018 Warmup 原题复现:https://gitee.com/xiaohua1998/hctf_2018_warmup 考察知识点:文件包含漏洞(phpmyadmin 4.8.1任意 ...

  3. BUUCTF [HCTF 2018]WarmUp 1

    BUUCTF [HCTF 2018]WarmUp 1 f12发现提示source.php 打开后发现php代码: <?phphighlight_file(__FILE__);class emmm ...

  4. BUUCTF-WEB:[HCTF 2018]WarmUp

    刷题平台:https://buuoj.cn 题目地址:https://buuoj.cn/challenges#[HCTF%202018]WarmUp 解题步骤: 1.访问:http://26778d3 ...

  5. 02 [HCTF 2018]WarmUp

    Ctrl+u 查看源码 (修改网页, 访问source.php?file=1 访问 hint.php 补充: MySQL字符串截取 1. 字符串截取:left(str, length) mysql&g ...

  6. buuctf - web - [HCTF 2018]WarmUp

    老样子 F12 检查 发现 source.php 被注释掉了 在 url 直接进行访问 可以看到是源代码 发现 high_file 泄漏, 访问 hint.php,可以看到 flag 在那里 回头分析 ...

  7. [HCTF 2018]Hideandseek

    知识点:flask-session伪造,文件读取,mac地址查询 文章目录 解题过程 1. 注册用户并登录 2. 文件读取 2.1 读取/proc/self/environ 2.2 读取/app/uw ...

  8. 记[HCTF 2018]Hideandseek

    记[HCTF 2018]Hideandseek 前言 一万年没刷题了,尽搞些杂七杂八的了,于是乎刷了一个题(自己给自己一个嘴巴子) 总结一下这个题的考点: zip 软链接实现任意文件读取 linux系 ...

  9. BUUCTF [HCTF 2018] Hide and seek

    BUUCTF [HCTF 2018] Hide and seek 考点: 软连接读取任意文件 Flask伪造session /proc/self/environ文件获取当前进程的环境变量列表 rand ...

最新文章

  1. Eclipse Add generated serial version ID报错解决方案
  2. 取周一时间_周一到周五不好化妆?别着急,5款夏日通勤裸妆的教程来了!
  3. 【Elasticsearch】ElasticSearch 7.8 多字段权重排序
  4. Javascript的对象继承方法
  5. 解决Eclipse无法添加Tomcat服务器的问题
  6. 实验四恶意代码分析技术 201421430029
  7. 数字化方法基础_常用函数
  8. Atitit.异步编程的发展历史 1.1. TAP  async/await
  9. docker安装vim命令
  10. c++有关iostream和iostream.h
  11. windows平台下获取网卡MAC地址、硬盘序列号、主板序列号、CPU ID、BIOS序列号
  12. 亚马逊 站内广告数据分析
  13. Windows10如何添加开机启动项
  14. 单片机常用之晶振电路工作原理简述
  15. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java基于java网上心理咨询系统50fxl
  16. cross-request插件下载
  17. 5.10 自定义颜色至色板和全局色的使用 [Illustrator CC教程]
  18. java基础入门第二版二手,细节爆炸
  19. RHCSA第四天学习内容心得
  20. Lucene.Net3.0.3+盘古分词器学习使用

热门文章

  1. 三菱伺服MR-J3A的调试和JOG试运行
  2. 对称加密和非对称加密原理
  3. PM2.5数据集LSTM时序预测python3代码
  4. Py西游攻关之正则表达式
  5. sstream和strstream的区别
  6. QT QTextEdit添加文字的方式
  7. 哦耶OYE-0001 OpenWrt路由器折腾记(by quqi99)
  8. Linux安全基础知识
  9. Android Google登录接入
  10. 无线网络技术—学习AC的基础配置