[BJDCTF2020]Mark loves cat(.git源码泄露与代码审计之变量覆盖漏洞)
知识点:
- php中
$$
用来定义可变变量
解题:
python GitHack.py http://e6e2adea-991f-4ae7-b4ea-0f82d49d8f8c.node3.buuoj.cn/.git/
得到源码
<?phpinclude 'flag.php';$yds = "dog";
$is = "cat";
$handsome = 'yds';foreach($_POST as $x => $y){$$x = $y; #若传入x=y,则$x=y
}foreach($_GET as $x => $y){$$x = $$y; #若传入x=y,则$x=$y
}foreach($_GET as $x => $y){if($_GET['flag'] === $x && $x !== 'flag'){exit($handsome);//遍历传入的get参数,当参数的key名不是flag,且key名为flag的value又要等于当前的key,即当存在key!='flag',而flag=key}
}if(!isset($_GET['flag']) && !isset($_POST['flag'])){exit($yds);#没有设置flag则进入
}if($_POST['flag'] === 'flag' || $_GET['flag'] === 'flag'){exit($is);#设置了flag键值即进入
}echo "the flag is: ".$flag;?>
分析:
表面上是存在四种方法输出flag(三种exit输出和一种echo输出)
第一种:
这种形式输出flag,由于是输出handsome,所以要想办法使得$handsome=$flag
,很明显我们可以利用第二个foreach实现,所以传入参数之一handsome=flag
接下来就先想办法设置flag的值了,引用前面分析即当存在key!='flag',而flag=key
构造payload
handsome=flag&flag=handsome#z注意不能更换顺序,若flag在前,则$flag=$handsome,flag的值被改变了
第二种:
首先不能传入参数flag,否则不会进入第二种循环,其次输出的变量是yds,所以要将$yds=$flag
构造payload
yds=flag
第三种
flag=flag&is=flag
第四种还没想到…
[BJDCTF2020]Mark loves cat(.git源码泄露与代码审计之变量覆盖漏洞)相关推荐
- [BJDCTF2020]Mark loves cat 1
[BJDCTF2020]Mark loves cat 1 首先打开题目得到: 在网站没有什么发现 就扫描一下网站得到: 发现有git泄露得到: python2 GitHack.py http://d9 ...
- [BJDCTF2020]Mark loves cat 1——(超详细 三种方法)
[BJDCTF2020]Mark loves cat 1 一进入环境,毫无头绪 拿御剑 或者 dirsearch 扫出了 .git/ 可以猜出,本关一定与git源码泄露有关 我们使用GitHack 看 ...
- [BJDCTF2020]Mark loves cat
首先打开网站看到的是一个个人博客,这种常规的 类似实战题目 先扫描目录看看 路径扫描 没错这真的是我的字典,就7个路径,哈哈哈,还在收集啊 git泄露 看到了一个 .git 泄露 用了俩工具测试,无任 ...
- [BJDCTF2020]Mark loves cat(3种解法)
练习靶场:BUUCTF 题目搜索:[BJDCTF2020]Mark loves cat 靶机启动后的界面 步骤1:我们使用工具dirsearch扫描目录,观察是否有信息泄露 python dirs ...
- BUUCTF [BJDCTF2020]Mark loves cat
打开题目 搜索一番没有任何发现: dirsearch扫描后发现.git泄露,GitHack.py下载源码: python GitHack.py http://b77333f7-af9a-4f4a-aa ...
- [BJDCTF2020]Mark loves cat详细解法与思路
前言 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!本文仅用于学习与交流,不得用于非法用途! 知识点: 主要考点是$$会导致变量覆盖 题目 ...
- buuctf Mark loves cat
buuctf Mark loves cat 打开是个静态页面,源码也无任何有用信息 dirsearch扫描后发现.git泄露 GitHack.py下载得到两个php文件,接下来就是代码审计: flag ...
- buuctf web mark loves cat
打开场景,是一个主页,先审计源码,发现很多a链接,但都是指向本页面的死链,没啥用 扫目录,python3 dirmap.py -i http://bba5d728-52ed-427c-bf70-629 ...
- CTF中常见Web源码泄露总结
目录00x1 .ng源码泄露 00x2 git源码泄露 00x3 .DS_Store文件泄漏 00x4 网站备份压缩文件 00x5 SVN导致文件泄露 00x6 WEB-INF/web.xml泄露 ...
最新文章
- UBUNTU安装SSH和xrdp
- 暑期大作战 第五天(第四天待补)
- python正则表达式面试_【正则表达式Python面试题】面试问题:Scrapy之… - 看准网...
- FreeWheel基于Go的实践经验漫谈——GC是大坑(关键业务场景不用),web框架尚未统一,和c++性能相比难说...
- codeforces MUH and Cube Walls
- 利用FRIDA攻击Android应用程序(一)
- WebRTC的现状和未来:专访W3C WebRTC Chair Bernard Aboba(下)
- 浅谈工业机器人的运动停止
- Mendix:低代码与无代码的异同点与用例
- 解决phpmailer可以在windows下面发送成功, 在linux下面失败的问题
- priority_queue 用法总结
- 【免费毕设】基于PHP的产品报价系统的设计与开发(源代码+论文)
- springboot - 整合多数据源配置
- 谷歌浏览器截图_【插件推荐】一键滚动截图整个网页,支持二次编辑的免费工具...
- 软考高级软件架构师论文——论软件架构风格
- bugly怎么读_Bugly迁入
- 用于理解C++类中静态成员的单子模式研究
- 除了茶颜悦色、文和友?长沙打造旅游城市缺什么?
- 使用JavaScript实现GPA计算器(学科实践任务 一)
- c 语言如何扫描输入的字符,如何在C中对单个字符进行扫描
热门文章
- 济南公交车辆实时定位手机web版
- 【时间序列分析】13. Hilbert空间
- 盘点5个情人节反向营销案例:哪个品牌最得你心
- 抖音企业号怎么运营,抖音企业号运营推广教程。
- 博文The Illustrated Transformer 的PDF格式
- [原创] STM32 USB CDC 虚拟多串口
- iis与mysql关联_利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一
- PHP动态创建闪字闪图源码,HTML音画介绍之五-闪框闪字走动字制作(附闪图素材)...
- Cortex-A8异常处理
- 计算机怎么打开远程桌面连接到服务器,win7远程访问如何打开_win7远程桌面连接怎么打开...