buuctf Mark loves cat

打开是个静态页面,源码也无任何有用信息

dirsearch扫描后发现.git泄露
GitHack.py下载得到两个php文件,接下来就是代码审计:
flag.php:

<?php
$flag = file_get_contents('/flag');

index.php:

<?php
include 'flag.php';$yds = "dog";
$is = "cat";
$handsome = 'yds';foreach($_POST as $x => $y){$$x = $y;
}foreach($_GET as $x => $y){$$x = $$y;
}foreach($_GET as $x => $y){if($_GET['flag'] === $x && $x !== 'flag'){exit($handsome);}
}if(!isset($_GET['flag']) && !isset($_POST['flag'])){exit($yds);
}if($_POST['flag'] === 'flag'  || $_GET['flag'] === 'flag'){exit($is);
}echo "the flag is: ".$flag;

审计分析

第1条foreach语句,将POST的参数进行变量覆盖
第2条foreach语句,将GET的参数进行变量覆盖,与第1条有点区别是第1个的键值是y,第2个的键值是y,第2个的键值是y,第2个的键值是y其中有两个能利用变量覆盖输出flag,也就是说有两种方法第二个if语句中可以看到这里是输出的y 其中有两个能利用变量覆盖输出flag,也就是说有两种方法 第二个if语句中可以看到这里是输出的y其中有两个能利用变量覆盖输出flag,也就是说有两种方法第二个if语句中可以看到这里是输出的yds变量,那么我们就要通过变量覆盖达到yds=yds=yds=flag的效果,GET传参yds=flag,在第二个foreach语句中,首先是x=yds,x=yds,x=yds,y=flag,经过x=x = x=y也就变成了yds=yds=yds=flag
就可以利用exit(yds)将原来的yds)将原来的yds)将原来的flag输出

so payload:

GET: ?yds=flag


总结:
git源码泄露;(dirsearch扫描,GitHack.py下载)
$$导致变量覆盖漏洞

buuctf Mark loves cat相关推荐

  1. [BJDCTF2020]Mark loves cat(3种解法)

    练习靶场:BUUCTF   题目搜索:[BJDCTF2020]Mark loves cat 靶机启动后的界面 步骤1:我们使用工具dirsearch扫描目录,观察是否有信息泄露 python dirs ...

  2. [BJDCTF2020]Mark loves cat

    首先打开网站看到的是一个个人博客,这种常规的 类似实战题目 先扫描目录看看 路径扫描 没错这真的是我的字典,就7个路径,哈哈哈,还在收集啊 git泄露 看到了一个 .git 泄露 用了俩工具测试,无任 ...

  3. [BJDCTF2020]Mark loves cat 1

    [BJDCTF2020]Mark loves cat 1 首先打开题目得到: 在网站没有什么发现 就扫描一下网站得到: 发现有git泄露得到: python2 GitHack.py http://d9 ...

  4. [BJDCTF2020]Mark loves cat 1——(超详细 三种方法)

    [BJDCTF2020]Mark loves cat 1 一进入环境,毫无头绪 拿御剑 或者 dirsearch 扫出了 .git/ 可以猜出,本关一定与git源码泄露有关 我们使用GitHack 看 ...

  5. BUUCTF [BJDCTF2020]Mark loves cat

    打开题目 搜索一番没有任何发现: dirsearch扫描后发现.git泄露,GitHack.py下载源码: python GitHack.py http://b77333f7-af9a-4f4a-aa ...

  6. buuctf web mark loves cat

    打开场景,是一个主页,先审计源码,发现很多a链接,但都是指向本页面的死链,没啥用 扫目录,python3 dirmap.py -i http://bba5d728-52ed-427c-bf70-629 ...

  7. [BJDCTF2020]Mark loves cat详细解法与思路

    前言 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!本文仅用于学习与交流,不得用于非法用途! 知识点: 主要考点是$$会导致变量覆盖 题目 ...

  8. Mark loves cat

    扫描目录(但是我用御剑扫不出来) ,然后用.git下载文件 <?phpinclude 'flag.php';$yds = "dog"; $is = "cat&quo ...

  9. [BJDCTF2020]Mark loves cat(.git源码泄露与代码审计之变量覆盖漏洞)

    知识点: php中$$用来定义可变变量 解题: python GitHack.py http://e6e2adea-991f-4ae7-b4ea-0f82d49d8f8c.node3.buuoj.cn ...

最新文章

  1. 数据仓库及其体系建设
  2. 视图——概述 || 创建或者修改视图 || 查看视图 || 删除视图
  3. Webstorm常用快捷键备忘(Webstorm入门指南)
  4. 数据结构----数组与广义表专题
  5. 【Vegas原创】GridView修改表头,并导出Excel(C#版)
  6. qt按钮禁用和激活禁用_为什么试探法只是经验法则:禁用按钮的情况
  7. android build.time,Android SDK中的恒定Build.TIME
  8. vim保存文件时,生成.un~文件
  9. Dreamweaver CS5.5+PhoneGap移动开发环境搭建
  10. MySQL NULL的小陷阱
  11. dell 7050台式计算机,Dell OptiPlex 7050 系统指南
  12. 2018年计算机基础应用教程,全国计算机等级考试一级教程:计算机基础及Photoshop应用(2018年版)...
  13. 闪迪ssd plus固态硬盘不识别开卡成功,慧荣SM2246XT量产教程
  14. 物联网技能大赛-Ubuntu-(3)
  15. 电视hdmi接口在哪_变废为宝!把旧笔记本电脑当电视盒子用
  16. 虚幻4引擎开发的手游_虚幻4引擎开发 《神佑》手游首次公开
  17. USB3.0:VL817Q7-C0的LAYOUT指南
  18. 正面杠腾讯音乐与网易云音乐,抖音与快手谁能“弯道超车“?
  19. 计算机应用基础0039答案,2016秋5205004计算机应用基础-0039【参考答案】
  20. LeetCode(Python)—— 将有序数组转换为二叉搜索树(简单)

热门文章

  1. C++(11):多线程同步packaged_task
  2. c语言浮点变量是什么意思,C语言中说的浮点型是什么意思呢 C语言的浮点数是什么...
  3. unity如果编辑器意外崩溃了,但场景未保存,怎么办
  4. 理财投资 之 基金投资 - #1篇:基金基础知识扫盲
  5. Mybatis注解开发笔记
  6. 什么软件有html5游戏,多款好玩HTML5小游戏带你认识HTML5优势
  7. 厨神之路三--自制饮品
  8. 详解Spring Ioc(控制反转)
  9. 解决pycharm里显示数据不完全问题(pandas)
  10. 大批量查询京东快递物流,并分析到站延误