首页
社区
课程
招聘
[原创]2017CTF秋季赛 第三题 crackMe 结题报告
发表于: 2017-10-29 21:21 3152

[原创]2017CTF秋季赛 第三题 crackMe 结题报告

2017-10-29 21:21
3152

反编译

主函数

 

解码函数

 

迷宫函数

猜测作者意图

  1. 获取输入 ipt
  2. 两次 base64 解码得到 buf
  3. 自定义解码得到 cmd
  4. 判断 sm3(buf[:3) == ipt[-64:]
  5. cmd 能在迷宫走到终点

作者的bug

  1. base64 解码没有判断返回正确,和成功解码字符串长度,直接导致输入不规范 sm3 总是 hash([0, 0, 0])
  2. 迷宫函数中,遇到空格则是结束并且正确,猜测坐标 8.3 是目标
  3. 迷宫函数中,没有限定 cmd 长度,导致基本可以返回正确,因为内存中总会碰到空格(撞墙几率低,要碰到 zlqp 才行)
  4. 迷宫函数中,防止倒退的代码有问题,导致就算其他 bug 没有,我也可以重复走造成多解
  5. 想到再补

后记

因为作者的意图不确定,所以这个报告也没有意义


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 1140
活跃值: (102)
能力值: ( LV4,RANK:48 )
在线值:
发帖
回帖
粉丝
2
问下大佬,你是怎么一下就知道这是  sm3  算法。。。
2017-11-13 22:28
0
游客
登录 | 注册 方可回帖
返回
//