IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> BUUCTF[HCTF 2018]WarmUp -> 正文阅读

[PHP知识库]BUUCTF[HCTF 2018]WarmUp

  • 打开题目发现一张滑稽的图片🤡

查看源码以后发现源码中有一个访问地址source.php

访问以后得到了源码 发现了文件包含的特点 highlight_file(__FILE__)

<?php
????highlight_file(__FILE__);
????class?emmm
????{
????????public?static?function?checkFile(&$page)
????????{
????????????$whitelist?=?["source"=>"source.php","hint"=>"hint.php"];
????????????if?(!?isset($page)?||?!is_string($page))?{
//判断page是否声明以及值是否为字符串缺一则返回flase
????????????????echo?"you?can't?see?it";
????????????????return?false;
????????????}

????????????if?(in_array($page,?$whitelist))?{
//判断page中的值是否为白名单里面的如果为真则返回true
????????????????return?true;
????????????}

????????????$_page?=?mb_substr(
//返回page变量中?之前的值并赋给_page
????????????????$page,
????????????????0,
????????????????mb_strpos($page?.?'?',?'?')
????????????);
????????????if?(in_array($_page,?$whitelist))?{
//判断_page中的值是否为白名单里面的如果为真则返回true
????????????????return?true;
????????????}

????????????$_page?=?urldecode($page);
????????????$_page?=?mb_substr(?????????
//返回_page变量中?之前的值并赋给_page
????????????????$_page,
????????????????0,
????????????????mb_strpos($_page?.?'?',?'?')
????????????);
????????????if?(in_array($_page,?$whitelist))?{
//再次判断_page中的值是否为白名单里面的如果为真则返回true
????????????????return?true;
????????????}
????????????echo?"you?can't?see?it";
????????????return?false;
????????}
????}

????if?(!?empty($_REQUEST['file'])
????????&&?is_string($_REQUEST['file'])
????????&&?emmm::checkFile($_REQUEST['file'])
????)?{
????????include?$_REQUEST['file'];
????????exit;
????}?else?{
????????echo?"<br><img?src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\"?/>";
????}??
?>

?以下是觉得源码中出现的重要函数

in_array() 函数 搜索数组中是否存在指定的值。

?mb_substr()函数 返回字符串的一部分

mb_strpos()函数 返回要查找的字符串在别一个字符串中首次出现的位置


?读完了源代码自己理解就是在?之前的值要是白名单里的才可以执行,也就是?之前的值要么是hint.php要么就是source.php

所以就构造payload:http://045459f4-897a-4078-94b1-40ebf770a1dd.node4.buuoj.cn:81/source.php?file=hint.php

继续进行访问,发现底部出现提示

但是不知道ffffllllaaaagggg到底在那一个路径下面,只能一个个加../去试

最后试出来最终payload为http://045459f4-897a-4078-94b1-40ebf770a1dd.node4.buuoj.cn:81/source.php?file=hint.php?../../../../../ffffllllaaaagggg

得到flag

?

?

?

?

?

?

?

?

?

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-04 17:17:00  更:2021-09-04 17:19:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:45:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码