【DASBOOK】Mark loves cat

文章目录

  • 一、工具下载
  • 二、Mark loves cat
  • 解题感悟


一、工具下载

克隆dirsearch仓库:

git clone https://github.com/maurosoria/dirsearch.git

在这里插入图片描述
下载 githack工具

git clone https://github.com/lijiejie/GitHack.git

在这里插入图片描述

二、Mark loves cat

在这里插入图片描述
在这里插入图片描述
用dirsearch扫描目录,看看有没有信息泄露

python dirsearch.py  -u  "目标URL" 

在这里插入图片描述
缺少依赖,那咱们先手动安装依赖

dirsearch 使用 requirements.txt 文件来管理依赖项,我们安装其依赖

pip install -r requirements.txt

请添加图片描述

依赖搞定后回来继续扫

python3 dirsearch.py -u "http://d31f8e0b-527e-4f00-88c4-cfdebc82650f.node5.buuoj.cn:81/"

在这里插入图片描述

我淦一堆什么玩意儿…咱们限制一下再进行扫

python dirsearch.py -u "http://d31f8e0b-527e-4f00-88c4-cfdebc82650f.node5.buuoj.cn:81/" -t 1 --timeout=2 -x 400,403,404,500,503,429
  • python .\dirsearch.py:使用 Python 解释器运行 dirsearch.py 脚本。
  • -u http://d31f8e0b-527e-4f00-88c4-cfdebc82650f.node5.buuoj.cn:81/:-u 参数用于指定目标 URL。在这里,目标 URL 是
    http://d31f8e0b-527e-4f00-88c4-cfdebc82650f.node5.buuoj.cn:81/。
  • -t 1:-t 参数用于指定线程数。在这里,-t 1 表示使用单线程运行扫描。
  • –timeout=2:–timeout 参数用于设置每个请求的超时时间(以秒为单位)。在这里,超时时间设置为 2 秒。
  • -x 400,403,404,500,503,429:-x 参数用于排除特定的HTTP状态码。这里,400, 403, 404, 500, 503, 429 状态码的响应将被忽略。

在这里插入图片描述
可以发现存在git泄露。既然泄露了我们可以直接通过githack下泄露的源码

python GitHack.py http://d31f8e0b-527e-4f00-88c4-cfdebc82650f.node5.buuoj.cn/.git/

在这里插入图片描述

把这俩文件瞅一瞅

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

找到了,咱们代码审计一下

<?php// 包含 'flag.php' 文件的内容
include 'flag.php';// 定义变量 $yds 并赋值为字符串 "dog"
$yds = "dog";
// 定义变量 $is 并赋值为字符串 "cat"
$is = "cat";
// 定义变量 $handsome 并赋值为字符串 "yds"
$handsome = 'yds';// 遍历 $_POST 超全局数组
foreach($_POST as $x => $y){// 使用变量变量,将 POST 请求参数名作为变量名,参数值作为变量值$$x = $y;
}// 遍历 $_GET 超全局数组
foreach($_GET as $x => $y){// 使用变量变量,将 GET 请求参数名作为变量名,并将该变量赋值为另一个变量(变量名是 GET 请求参数值)$$x = $$y;
}// 再次遍历 $_GET 超全局数组
foreach($_GET as $x => $y){// 检查是否存在 GET 参数 'flag' 且其值等于当前遍历的键名,并且键名不是 'flag'if($_GET['flag'] === $x && $x !== 'flag'){// 结束脚本并输出 $handsome 变量的值("yds"exit($handsome);}
}// 如果 $_GET$_POST 中都不存在 'flag' 参数
if(!isset($_GET['flag']) && !isset($_POST['flag'])){// 结束脚本并输出 $yds 变量的值("dog"exit($yds);
}// 如果 POST 请求参数 'flag' 的值为 'flag' 或 GET 请求参数 'flag' 的值为 'flag'
if($_POST['flag'] === 'flag' || $_GET['flag'] === 'flag'){// 结束脚本并输出 $is 变量的值("cat"exit($is);
}// 输出 'the flag is: '$flag 变量的值(从 'flag.php' 文件中引入的内容)
echo "the flag is: ".$flag;

我们可以发现当$ _GET[‘flag’] === ‘yds’,并且 $ x(也为 ‘yds’)不等于 ‘flag’,所以条件满足,exit($handsome) 执行,输出 $handsome 的值为 ‘yds’。所以我们可以直接yds=flag

试一试
在这里插入图片描述

查看源码

在这里插入图片描述

小小flag,拿下!


解题感悟

思路不复杂,但是前期工作安装软件有点麻烦。对了,执行脚本的时候需要进入相应的路径下。

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

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

相关文章

talib 安装

这里写自定义目录标题 talib 安装出错 talib 安装出错 https://github.com/cgohlke/talib-build/releases 这里找到轮子 直接装。

DatePicker日期选择框(antd-design组件库)简单使用

1.DatePicker日期选择框 输入或选择日期的控件。 2.何时使用 当用户需要输入一个日期&#xff0c;可以点击标准输入框&#xff0c;弹出日期面板进行选择。 组件代码来自&#xff1a; 日期选择框 DatePicker - Ant Design 3.本地验证前的准备 参考文章【react项目antd组件-demo:…

算法提高之你能回答这些问题吗

算法提高之你能回答这些问题吗 核心思想&#xff1a;线段树 用sum,lmax,rmax,tmax分别存线段长度,最大前缀,最大后缀,最大子段和 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 500010;int n,m;int w[N];s…

简单3步,ERP、OA、CRM等客户端,安全远程访问服务端

如今&#xff0c;企业员工出差远程办公和分支机构的协同工作变得越来越普遍。然而&#xff0c;如何确保在不同地点的员工都能安全、便捷地访问公司内网的C/S&#xff08;Client/Server&#xff09;架构办公系统&#xff0c;是一个亟待解决的问题。 贝锐花生壳内网穿透服务提供…

zdppy_mcrud操作MySQL数据库教程

01 创建数据库连接 .env配置文件 ZDPPY_MCRUD_HOST192.168.234.130 ZDPPY_MCRUD_PORT3306 ZDPPY_MCRUD_USERNAMEroot ZDPPY_MCRUD_PASSWORDzhangdapeng520 ZDPPY_MCRUD_DATABASEzdppy_mcrud_demo连接到MySQL数据库&#xff1a; import env import mcrudenv.load(".env&…

基于JAVA GUI体育馆管理系统的会员功能

Java GUI即Java图形用户界面&#xff0c;是一种使用图形化元素&#xff08;如窗口、按钮、文本框等&#xff09;来构建用户界面的技术。它基于Java的Swing框架&#xff0c;可以用于创建各种复杂的用户界面&#xff0c;包括窗口、对话框、菜单、按钮、文本框、复选框、下拉列表等…

SQL学习小记(一)

SQL学习小记&#xff08;一&#xff09; 1. 存储过程&存储函数1.1. 存储过程1.2. 存储函数 2. DEFINER3. INSERT INTO&#xff08;插入新记录&#xff09;4. REPLACE()…AS…5. SUM()函数6. CASE WHEN7. STR_TO_DATE日期时间处理函数8. SUBSTRING函数9. dateFormat函数10. …

神奇动物在哪里?斯洛文尼亚旅游之野生动物寻踪

不仅拥有优美动人的自然风光&#xff0c;斯洛文尼亚还以其丰富的生物多样性而闻名。得益于国家对大自然开展的保护工作&#xff0c;斯洛文尼亚超过三分之一的国土面积都被规划为保护区&#xff0c;拥有约1.5万种动物和6000种植物&#xff0c;其中不乏众多特有、稀有和濒危动植物…

美国FDA认证是什么,食品FDA注册申请流程

​美国FDA认证是什么&#xff1f; 美国FDA认证&#xff0c;全称为美国食品药品监督管理局&#xff08;Food and Drug Administration&#xff09;的认证&#xff0c;是美国政府为了确保食品、药品、医疗器械等产品的安全性和有效性所设立的重要制度。FDA认证的种类繁多&#x…

【linux】k掉僵尸进程

ps -ef | grep username | grep -v grep | awk {print $2} | xargs kill -9

DT浏览器有一些特点和优势,可能是人们选择使用的原因

DT浏览器有一些特点和优势&#xff0c;可能是人们选择使用的原因&#xff1a; - 好评如潮&#xff1a;DT浏览器在网络上获得了众多用户的好评&#xff0c;口碑良好。 - 使用微软搜索引擎技术&#xff1a;DT浏览器采用了微软的搜索引擎技术&#xff0c;在搜索内容上提供了国内…

Gitlab安装

配置文件&#xff1a; /etc/gitlab/gitlab.rb日志文件&#xff1a; /var/log/gitlab/数据文件&#xff1a; /var/opt/gitlab/静态文件和网页内容&#xff1a; /opt/gitlab/embedded/service/gitlab-rails/public/ # 查看当前状态 git status # 提交本地更改 git commit -m &q…

反编译 Trino Dockerfile

文章目录 反编译 Trino Dockerfile反编译Dockerfile命令反编译后Dockerfile内容获取 Trino 启动脚本卸载 反编译 Trino Dockerfile 反编译Dockerfile命令 alias dfimage"docker run -v /var/run/docker.sock:/var/run/docker.sock --rm ghcr.io/laniksj/dfimage" d…

通过Wirtinger流进行相位恢复:理论与算法

文章目录 1. 简介2. 算法描述2.1 初始化(Initialization)2.2 迭代更新(Iterative Updates)2.3 学习率调整&#xff08;Learning Rate Adjustment&#xff09; 3. 代码实现3.1 一维信号测试 &#xff08;Gaussian model&#xff09;3.2 一维信号测试 &#xff08;Coded diffract…

基于Netty实现WebSocket客户端

本文是基于Netty快速上手WebSocket客户端&#xff0c;不涉及WebSocket的TLS/SSL加密传输。 WebSocket原理参考【WebSocket简介-CSDN博客】&#xff0c;测试用的WebSocket服务端也是用Netty实现的&#xff0c;参考【基于Netty实现WebSocket服务端-CSDN博客】 一、基于Netty快速…

docker image上传至docker hub

要将 Docker 镜像上传到 Docker Hub&#xff0c;你需要遵循以下步骤&#xff1a; 登录到 Docker Hub&#xff1a; 确保你在 Docker Hub 上有一个账号。如果没有&#xff0c;请前往 Docker Hub (https://hub.docker.com/) 注册一个账号。 在终端中使用以下命令登录到 Docker …

Java中的弱引用与强引用

引用是Java中内存管理和垃圾回收机制的重要组成部分&#xff0c;Java 提供了多种类型的引用来允许开发者以不同的方式管理内存&#xff0c;其中最常用的是强引用&#xff08;strong reference&#xff09;和弱引用&#xff08;weak reference&#xff09;。以下是对这些引用类型…

【C++】牛客——BC157 素数回文

✨题目链接&#xff1a; BC157 素数回文 ✨题目描述 现在给出一个素数&#xff0c;这个素数满足两点&#xff1a; 只由1-9组成&#xff0c;并且每个数只出现一次&#xff0c;如13,23,1289。 位数从高到低为递减或递增&#xff0c;如2459&#xff0c;87631。 请你判断一下&…

python多进程multiprocessing卡住问题

一&#xff1a;背景 在使用多进程时&#xff0c;process.join()后面的代码并不会执行&#xff0c;一直卡在了第一个进程join()哪里不动。 环境&#xff1a;python3.8&#xff0c;centos7&#xff0c;multiprocessing库&#xff0c;使用mp.Queue() 二&#xff1a;调试过程 打…

从零开始搭建Springboot项目脚手架4:保存操作日志

目的&#xff1a;通过AOP切面&#xff0c;统一记录接口的访问日志 1、加maven依赖 2、 增加日志类RequestLog 3、 配置AOP切面&#xff0c;把请求前的request、返回的response一起记录 package com.template.common.config;import cn.hutool.core.util.ArrayUtil; import cn.hu…