首页
论坛
课程
招聘
[原创] 看雪CTF2018-第二题writeup
2018-6-20 11:56 2221

[原创] 看雪CTF2018-第二题writeup

2018-6-20 11:56
2221

拿到程序strings一下,发现提示:


根据提示以及题目知道是考察字典树(Trietree),字典树是一种用于快速检索字符串的数据结构。

IDA打开进入main函数,发现先调用checkformat函数校验输入,必须符合在A-Z a-z 0-9范围:


之后对输入的长度进行校验,需满足22个字节:

接着进入主要的校验函数check,在函数中首先对输入分割:

因为IDA中变量名排序和内存位置有关,因此可以整理出分割并乱序后的输入如下:


之后开始使用分割后的各个字符串插入字典树:

按照插入顺序应该是:

进入第二层check2函数,可以看到有两个校验,根据上面的插入过程,可以知道索引66和索引67分别对应的是该结点的分支数以及到达该结点的字符串出现的频率,a2是用于校验的另一个字典树,可以通过动态调试获得正确的值:

接着进入字符的比较:

取得的结点字符值与校验的字典树进入find函数中,这里动态调试可以获取正确的值(v2):

最后根据动态调试,画出正确的字典树如下:

由于对于相同长度的字符串,和插入字典树的次序无关(即不确定在输入中的位置),存在多解情况,因此进入第三层校验check3:

这里传入的参数是:

即输入需要满足如下的方程:

写脚本跑下:

得到可能的组合: 

再对应字典树以及分支数和单词频率,得到最后的结果:

运行程序,成功:
flag:c7ctc7Mkxc7Mkctfct9c7M

看雪侠者千人榜,看看你上榜了吗?

收藏
点赞1
打赏
分享
最新回复 (11)
雪    币: 235
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
周周hehehe 活跃值 2018-6-20 12:36
2
0
mark,
雪    币: 2393
活跃值: 活跃值 (58)
能力值: ( LV9,RANK:145 )
在线值:
发帖
回帖
粉丝
青蛙mage 活跃值 2018-6-20 14:23
3
0
你第一个是什么,什么工具
雪    币: 2
活跃值: 活跃值 (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
leaffish 活跃值 2018-6-20 14:45
4
0
为什么我的ida显示和楼主显示的不一样
雪    币: 477
活跃值: 活跃值 (123)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
gxkyrftx 活跃值 2018-6-20 15:07
5
0
大佬,请问程序中的correct,wrong,check2,check3,是自己命名的么?还是反编译出来就有的?谢谢楼主
雪    币: 5197
活跃值: 活跃值 (230)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
cqzhou 活跃值 2018-6-20 15:31
6
0
怎么转换成这样显示
雪    币: 149
活跃值: 活跃值 (25)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
sherlly 活跃值 4 2018-6-20 19:03
7
0
青蛙mage 你第一个是什么,什么工具
strings命令
雪    币: 149
活跃值: 活跃值 (25)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
sherlly 活跃值 4 2018-6-20 19:03
8
0
wx_哈哈哈 大佬,请问程序中的correct,wrong,check2,check3,是自己命名的么?还是反编译出来就有的?谢谢楼主
自己命名的哈
雪    币: 149
活跃值: 活跃值 (25)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
sherlly 活跃值 4 2018-6-20 19:04
9
0
cqzhou 怎么转换成这样显示
如果你是指数组的话,IDA  7.0自动分析的
雪    币: 5197
活跃值: 活跃值 (230)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
cqzhou 活跃值 2018-6-21 08:48
10
0
sherlly 如果你是指数组的话,IDA 7.0自动分析的
谢谢··
雪    币: 205
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
东临碣石A 活跃值 2018-6-24 01:25
11
0
学习了
雪    币: 128
活跃值: 活跃值 (10)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
caigui 活跃值 1 2018-6-24 11:09
12
0
mark
游客
登录 | 注册 方可回帖
返回