CTF-Web习题:[BJDCTF2020]Mark Loves cat

news2024/9/19 10:34:18

题目链接:Mark Loves cat

解题思路

访问靶机网站后得到如下页面:
在这里插入图片描述
先浏览网页,发现最下面有一个"dog"字样,此时翻看源码并没有什么发现
在这里插入图片描述
那就例行进行目录扫描,源码泄露扫描,用dirsearch目录扫描工具扫描网页目录:python3 dirserach.py -u [url]

发现/.git 源码,考虑是,git源码泄露问题
在这里插入图片描述

在kali中利用githacker工具拉取.git源码到result文件夹中:githacker --url [url] --output-folder [文件夹名]
在这里插入图片描述

得到flag.php和index.php文件

打开index.php,发现导入了flag.php文件
在这里插入图片描述

打开flag.php,发现flag变量被函数赋值,证明这里的flag变量就是我们要找的flag,那就会想有没有办法获取到这个值
在这里插入图片描述

审阅index.php文件,其中if判断有点多,我们审阅关键字段,发现有echo $flag,尝试跨过i判断利用echo直接输出flag的值无果。

发现前面还有$$,是典型的变量覆盖漏洞,阅读源码可知,只要用get方法传入yds=flag,即可利用exit()函数覆盖yds变量输出flag。

在这里插入图片描述

知识补充

php语法:

  • 可变变量(可导致变量覆盖漏洞)
$cat = "miao";
$$cat = "hahaha";
echo $miao;//输出hahaha
  • $_GET:与$_POST类似,是php中的超全局变量,用于接收HTTP中GET方法传过来的参数数组
  • foreach
foreach($_GET as $x => $y){
	$$x = $$y;
}
//遍历HTTP的GET方法传过来的参数数组,key赋值给x,value赋值给y,大括号内是循环体
//例如传过来a=flag,则有$a = $flag,即将变量flag的值赋值给变量a
  • exit()函数
exit($a);//打印变量a的值,中断程序并退出
  • isset()函数
//用于检测变量是否被赋值且非null
$a = 1;
isset($a);//true

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git commit报错: pre-commit hook failed (add --no-verify to bypass)

原因: 在提交前做代码风格检查,若检查不通过,则提交失败 解决方案:进入项目的.git>hooks目录,找到pre-commit文件,删除即可

C# 中的 String.Join 与循环

一.介绍 使用 C# 中的字符串集合时,将多个字符串用指定的分隔符连接成一个字符串是一项常见任务。完成此任务有两种主要方法:使用循环手动连接字符串或使用内置的 String.Join 方法。本文将比较这两种方法,并向您展示为什么在大多数情况下 S…

《JavaSE》---16.<抽象类接口Object类>

目录 前言 一、抽象类 1.1什么是抽象类 1.2抽象类代码实现 1.3 抽象类特点 1.4抽象类的作用 二、接口 2.1什么是接口 2.2接口的代码书写 2.3 接口使用 2.4 接口特点 2.5 实现多个接口 快捷键(ctrl i ): 2.6接口的好处 2.7 接…

Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC

文章目录 问题描述解决思路及方法排除方向一:nohup排除方向二:使用绝对路径而不是相对路径 问题描述 命令: java -Xms1024m -Xmx1024m -jar /usr/local/java/bin/mashang/app.jar --server.port8532 ----spring.profiles.activetest是可以直…

SpringAI简单使用(本地模型+自定义知识库)

Ollama 简介 Ollama是一个开源的大型语言模型服务工具,它允许用户在本地机器上构建和运行语言模型,提供了一个简单易用的API来创建、运行和管理模型,同时还提供了丰富的预构建模型库,这些模型可以轻松地应用在多种应用场景中。O…

使用shedlock实现分布式互斥执行

前言 前序章节:springboot基础(82):分布式定时任务解决方案shedlock 如果你不清楚shedlock,建议先阅读前序章节,再来查看本文。 如果我们不在spring环境下,如何使用shedlock实现分布式互斥执行? 我们可以使用shedl…

【Java数据结构】线性表之栈和队列

栈(Stack) 简单描述 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out&…

DETR算法解读——Transformer在目标检测任务的首次应用

论文:End-to-End Object Detection with Transformers 作者:Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, Sergey Zagoruyko 机构:Facebook AI 链接:https://arxiv.org/abs/2005.12…

【网络】网络基础(框架)

网络基础 序言:什么是网络?一、协议的概念二、网络位置三、网络协议1、协议分层2、OSI七层模型与TCP/IP五层(或四层)模型 四、网络传输基本流程1、网络传输流程图2、以太网通信(1)一个小故事(2)原理i、问题…

解答word图标变白

把WPS卸载了之后就变成白色了,然后在注册表中把word的地址改成office word的地址之后图标变成这样了,怎么办 1.winR打开命令提示符 2.输入regedit,打开注册表编辑器 3.找到下面这个路径 计算机\HKEY_CLASSES_ROOT\Word.Document.8\Defaul…

从零开始学量化~Ptrade使用教程(七)——期权相关操作

期权交易 可点击证券代码右侧的选,进入期权选择菜单。通过选择标的商品,认购期权和认沽期权中间的选项(包括代码、成交价、幅度%、隐波%、内在价值、时间价值等),以及认购期权或认沽期权,选择所需的期权标的…

2024年第二季度 DDoS 威胁趋势报告

2024 年上半年,Cloudflare 缓解了 850 万次 DDoS 攻击:第一季度 450 万次,第二季度 400 万次。总体而言,第二季度 DDoS 攻击数量环比下降了 11%,但同比增长了 20%。 DDoS 攻击分布(按类型和手段&#xff09…

pycharm中运行.sh文件

最近在跑一个项目代码,里面要运行.sh文件。于是配置了下如何在pycharm中正常运行.sh文件。 首先安装好git,然后 File—>Settings—>Tools—>Terminal—>Shell path,将cmd.exe改成刚刚下载的git的路径,注意选择的是s…

【MySQL进阶之路 | 高级篇】EXPLAIN的进一步使用

1. EXPLAIN的四种输出格式 EXPLAIN可以输出四种格式:传统格式,JSON格式,TREE格式以及可视化输出。用户可以根据需要选择使用于自己的格式。 1). 传统格式 传统格式简单明了,输出是一个表格形式。 2). JSON格式 第一种格式中介…

wireshark抓包语法

主要功能 Wireshark 的主要功能包括: 实时数据捕获:能够捕获实时流量并对其进行分析。数据包解码:支持数百种网络协议,能够解码并显示各种协议的详细信息。过滤功能:提供强大的过滤功能,可以根据特定条件…

esp32c2-ble-2mb-at,蓝牙AT固件获取方法

文章目录 1. 背景2. 本地编译3. 环境安装依赖包下载1. 背景 最近在做一个数据透传项目,买了一块ESP32-C2 2MB的开发板,WIFI透传串口数据功能调通了(感兴趣的小伙伴可以了解下ESP32-C2模组数据透传模式配置详细教程),想试试蓝牙透传,官方给出的说法是BLE固件未发布,可以从…

项目收获总结--大数据量存储架构设计方案

项目收获总结--大数据量存储架构设计方案 一、背景二、数据存储层技术选型2.1 MySQL2.2 MongoDB2.3 HBase2.4 HBaseElasticSearch 三、HBaseElasticSearch基本原理3.1 前置考虑3.2 HBaseElasticSearch优点3.3 HBaseElasticSearch缺点 四、HBaseElasticSearch数据一致性架构4.1 …

A Survey on Multimodal Large Language Models综述

论文题目:A Survey on Multimodal Large Language Models 论文地址:https://arxiv.org/pdf/2306.13549 话题:多模态LLMs综述 MLLMs Paper: https://github.com/BradyFU/Awesome-Multimodal-Large-Language-Models 1. 摘要 近期,以GPT-4V为代表的跨模态大型语言模型(MLLM…

vue3前端开发-小兔鲜项目-人气推荐栏目的前端渲染

vue3前端开发-小兔鲜项目-人气推荐栏目的前端渲染!今天和大家分享一下,人气推荐栏目的前端页面如何渲染内容。 经历过上一次的,新鲜好物的栏目渲染之后,我们已经熟练了,vue3的接口调用,数据渲染到页面中的整…

Zabbix监控介绍与部署

目 录 一、zabbix介绍和架构 1.1 zabbix介绍 1.2 为什么需要监控 1.3 需要监控什么 二、zabbix使用场景与系统概述 2.1 zabbix的功能 2.2 zabbix架构 2.3 Zabbix术语 三、编译安装zabbix 3.1 安装依赖环境 3.2 建立管理用户 3.3 准备源码包,解压包 3.…