BJDCTF2020-Mark-loves-cat*

[BJDCTF2020]Mark loves cat*
前言
出自BUUCTF 练习场,也有相关的配套课本(我看的是《CTF实战 从入门到提升》,感觉还行,但有不少细节感觉还是得查资料才能懂)
题目
打开靶场,可以看到一个前段页面
上下翻找在页面上并没有什么提示和能入手的,那就做一下目录扫描等信息收集,这里我用的dirsearch ,我新建了一个示例文件存放扫描目录,正常情况扫描需要花好些时间
如图可以看到可能存在.git信息泄露
使用python3的GitHack 工具进行恢复
python2的Git_Extract 是用于恢复.git文件的,有时做到题可能会需要
恢复后发现只有两个php文件
flag.php文件如下
index.php文件如下
显然要进行代码审计
这个东西真的是需要自己去慢慢看的,慢慢看才能学到东西,主要涉及的就是可变变量,先手建议先了解即可,跟着看看做做,见多了自然就悟了
遇到if比较多的情况优先看关键字,最后有$flag
,再往前看到有$yds
是与flag有关的,再往前可以看到
这里就可以通过GET传递
1 | http://CTF/?yds=flag |
此时$x=yds,$y=flag
,再有源码里面的$$x=$$y
,把$yds=$flag
,将$flag
的值赋值给了$yds
,当遇到exit()
函数的时候就会输出flag值了
所以在传入参数的时候,将yds=flag
传入即可
最后通过查看源代码,成功得到了flag
答案
给出3种本人做出来的答案,第一种答案已讲解,其余答案的详解可以看其他博主的链接在这里 ,再自己推到一下
1 | payload1:yds=flag |
总结
这道题有不小难度,在于对php函数的理解和php变量覆盖的领悟,关于这道题总共有4种解法,本人最开始也是看不懂,这里就写了本人根据书上看懂的3种解法,更多的解法和详解可以在其他博主博客里面看到链接在这里 ,可以自己去看看,我就不搬过来了
- Title: BJDCTF2020-Mark-loves-cat*
- Author: ZJ
- Created at : 2024-09-13 00:00:00
- Updated at : 2024-12-11 01:20:37
- Link: https://blog.overlordzj.cn/2024/09/13/ctf/writeup/web/buuctf/[BJDCTF2020]Mark-loves-cat/
- License: This work is licensed under CC BY-NC-SA 4.0.
看看这些文章吧( ૢ⁼̴̤̆ ꇴ ⁼̴̤̆ ૢ)~ෆ
看看这些文章吧( ૢ⁼̴̤̆ ꇴ ⁼̴̤̆ ૢ)~ෆ
Comments