首页
社区
课程
招聘
[原创] 看雪·2024 KCTF 大赛 第十题 试探 WriteUP
发表于: 2024-9-8 00:19 542

[原创] 看雪·2024 KCTF 大赛 第十题 试探 WriteUP

2024-9-8 00:19
542

看雪·2024 KCTF 大赛 第十题 试探 WriteUP

一、开篇

趁着周末的闲暇时间,记录一下这次 KCTF 的 WriteUP~

镇楼图

二、初步分析

拿到题目后,经过简单的调试和分析,可以总结出整个程序的核心逻辑大致如下:

  1. 程序首先申请了一块内存,并将用户输入值和一段 shellcode 写入其中。
  2. 正常程序流程会启动一个线程 sub_140001530,该线程会循环检测内存开头的值是否为特定值;如果值不符,则判断输入值错误。
  3. 程序通过线程池相关函数的回调机制执行 shellcode。
  4. shellcode 要求输入值为数字,且输入个数必须为偶数。
  5. shellcode 将输入值视作华容道的移动指令,要求最终的拼图结果符合特定的结构,才能判定输入为正确。(本质上是一个滑块拼图小游戏)

部分指令流

三、分析过程

我们重点对 shellcode 进行了分析。shellcode 中包含了大量的花指令,但由于这些花指令是定长的,可以通过模式匹配直接去除。

shellcode

接下来,我们需要解出华容道的移动方式,将其转换为正确的输入。题目要求在 6 步之内完成拼图。

内置华容道初始状态:

0 1 2
0 00 01 03
1 05 02 06
2 04 07 08

目标特定结构:

0 1 2
0 01 02 03
1 04 05 06
2 07 08 00

四、总结

通过上述分析,我们可以推导出正确的输入。根据华容道的逻辑,正确步骤如下(特别感谢 T 神(ThTsOd)提供的步骤,这个华容道真没玩明白 )。

华容道移动方式


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2024-9-8 00:22 被上学困难户编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//