前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >*CTF2021 Misc部分wp

*CTF2021 Misc部分wp

作者头像
回天
发布2023-04-25 15:26:27
5370
发布2023-04-25 15:26:27
举报
文章被收录于专栏:Ga1@xy's W0r1dGa1@xy's W0r1d

little tricks

下载得到一个没有后缀的文件,010查看可以发现是vhdx文件,改后缀为vhdx,尝试挂载,发现被bitlocker加密

Google可以搜到爆破bitlocker的工具:bitlocker2john & hashcat

可以参考以下几篇文章:

其中bitlocker2john是john(John The Ripper)自带,hashcat要5.1.0以上的版本

先利用bitlocker2john获取磁盘的hash值,可以得到4种hash值

代码语言:javascript
复制
bitlocker2john -i ll2.vhdx
image-20210116165649900
image-20210116165649900

四种hash值对应了四种不同的破解方式

image-20210116170240091
image-20210116170240091

hashcat好像不支持后两种hash值,此题用第二种进行爆破即可

代码语言:javascript
复制
.\hashcat.exe -m 22100 .\hash.txt .\passwordlist.txt --show

hash.txt中存放hash值
passwordlist.txt为爆破字典
--show展示结果

跑出密钥为12345678,解锁bitlocker,发现里面只有一个password.txt

用DiskGenius查看挂载的磁盘,可以发现里面有回收站,回收站中有两个pdf文件

image-20210116173722916
image-20210116173722916

打开较大的那个文件就可以看到重叠的flag

image-20210116173827461
image-20210116173827461

也可以用取证大师等其他工具把删除的文件恢复,得到原本的pdf文件,但直接查看文件是看不到重叠的flag的,可以将其利用pdf查看工具转换成图片,效果和上图一样;或者转换成ppt,可以将重叠部分的flag拉开

image-20210116174223306
image-20210116174223306

MineGame

下载附件,根据里面的介绍可以得知是一个利用matlab实现的扫雷游戏,打开玩几次可以发现有时间限制,大概10s,也就是说在他限定的时间内扫完就有flag

既然是有时间限制,那就肯定是要和本地时间校准的(我的推测2333

所以我的不知道是不是非预期解如下:

先关闭电脑时间的自动校准,然后打开游戏,把电脑的时间往回调,这样游戏的时间就会增加,再扫完雷,就可以得到flag

img
img

本题似乎也可以利用CE修改器来做,不过具体操作我也不太清楚,各位师傅可以自行探索2333

puzzle

多亏了囧姐姐和我一起猜,囧姐姐,嘤语滴神!

拼图题,尝试用gaps跑一跑

原图

再看图猜字,flag格式flag{*}

根据gaps跑出来的图,再对比原图,可以发现大括号的内容在图的下半部分,所以上半部分应该没啥用 上图可以看出来{you_can

在ish后还有_

下图可以看出来是nish,再根据图里的字母碎片能看到f,猜个finish

上图还能看到有n、er_、v的样子,根据背景颜色和原图对比位置,推测never_

结合gaps得到的上图,再手动拼一下,还能看出一个the

把上面得到的内容尝试连在一起组成一句话,得到you_can_never_finish_the

原本还以为the后面还有内容没还原出来,结果试了下

代码语言:javascript
复制
flag{you_can_never_finish_the}

竟然对了,离谱

chess

这题从设计上来讲挺nb的,nc上去下国际象棋,但实际上是个4维(3维?)的国际象棋,可以参考5Dchess这个游戏,不过并没有那么复杂

先正常nc上去下棋,棋盘的数字代表如下

代码语言:javascript
复制
[56 57 58 59 60 61 62 63]
[48 49 50 51 52 53 54 55]
[40 41 42 43 44 45 46 47]
[32 33 34 35 36 37 38 39]
[24 25 26 27 28 29 30 31]
[16 17 18 19 20 21 22 23]
[ 8  9 10 11 12 13 14 15]
[ 0  1  2  3  4  5  6  7]

正常情况下会提示你输入两个数字,第一个数字代表原始位置,第二个数字代表目标位置

初始棋盘如下

代码语言:javascript
复制
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
P P P P P P P P
R N B Q K B N R

其中:r=rook,n=knight,b=bishop,q=queen,k=king,p=pawn

尝试和他下几次,无论输赢,或者你一直和他磨棋(比如1 1818 1……)到最后他都会自行结束,并且会给你一个反馈输出,比如

在上面第一个例子中,最终反馈输出

代码语言:javascript
复制
13 3 12 9
You lose!
She cheated!
Hint: Check her step!

你用不同的下棋方式,会反馈给你不同的四个数字,分析一下这四个数字,可以发现它真正的含义:

首先从最原始的棋盘开始,每个棋盘都有一个编号,最初的棋盘为0号,以此类推;这四个数字中前两个数字分别代表棋子的原始位置目标位置,就和正常输入两个数字所代表的的含义一样,第三个数字代表想要操作的棋盘,第四个数字代表目标棋盘

以上述例子中的四个数字为例,对手把12号棋盘中13位置的马送到9号棋盘中3位置,就鲨了你的king,所以是你输了,12号棋盘对应了下一步的棋盘编号,但我们在实际操作的时候如果使用下一步的棋盘编号就会报错(离谱

第二个例子中的10 4 20 0也是同样的方法,把20号棋盘中10位置的马送到0号棋盘中的4位置,就鲨了你的king

本题拿到flag的条件是必须在过去的棋盘里checkmate,而且具体的限制和一些细节如下:

  1. 每个棋盘只能接收到来自另一个棋盘的一枚棋子,比如先3 39 2 05 26 4 0就会报错
  2. 不能操作未来的棋盘
  3. 过去棋盘中的对手不会操作任何棋子,任你宰割
  4. 可以在过去任意一个棋盘重复操作当前棋盘的棋子,比如可以先39 55 0 055 63 0 0
  5. 必须要checkmate才有flag,不能直接鲨了对方的king
  6. 要尽量以最少的步骤取胜,有一定的回合数要求
  7. 同时要保证在当前的棋盘不被对面checkmate

综合以上几点要求,设计一种尽量快的checkmate方法

代码语言:javascript
复制
12 20
3 39 1 1
39 55 1 1
55 63 1 1
63 62 1 1
62 61 1 1

从第二步开始就让1号棋盘的queen大杀四方

最终1号棋盘呈现的效果如下

代码语言:javascript
复制
r n b q k Q . .
p p p p p p p .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . P . . .
P P P P . P P P
R N B . K B N R
image-20210118131352622
image-20210118131352622

这个终端还有挺多bug的,比如有时候最后一步checkmate判定不到,就需要再多走一步,还有的时候对手最后一步鲨你的king时棋盘号对应不上……(育碧行为

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • little tricks
  • MineGame
  • puzzle
  • chess
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档