首页
论坛
课程
招聘
[原创]看雪ctf 2017=秋季赛第二题-fpc
2017-10-27 17:40 1583

[原创]看雪ctf 2017=秋季赛第二题-fpc

aqs 活跃值
5
2017-10-27 17:40
1583
这题目挺有意思的 : P

运行一下看看


程序要输入一个字符串,正确给你 get it , 错误返回 keep trying

ida 打开看看 , main 函数如下, sub_401050 是输入字符串调用函数, sub_401090 ,sub_4010e0 分别是两个验证函数



验证函数如下



两个差不多的函数, 分别将输入的字符串的 前四个 byte 和后四个 byte 进行操作,
写了个脚本跑了一下, sub_401090 要满足的话 字符串的第一位都只能是 B
也就是 BxxxBxxx 的形式, 这样到了 sub_4010e0  之后也是会的得到同样的结果 0x83,这就矛盾了呀,根本就解不出来

随便输了一下
发现这里有一个溢出,溢出之后可以随便跳转。。这不会是pwn题吧



ida 下拉可以看到 一堆 识别不了的地址, 加上 413131 就是 字符串 A11 ,所以很有可能是要跳转到这个地址


测试一下,发现可以正常运行,但是这里有一堆花指令,也不知道要怎么去除,总之跟着走了一下



一步一步跟着调可以发现 这里的代码和 前面的 两个 伪 验证 函数进行了差不多的操作,都是构成几个数学表达式类似的东西

最后提取出来结果如下,使用 z3 求解 得到结果





getshell ... 不不, getflag

[培训]12月3日2020京麒网络安全大会《物联网安全攻防实战》训练营,正在火热报名中!地点:北京 · 新云南皇冠假日酒店

收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 2
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Antibac 活跃值 2017-11-6 15:22
2
0
你好,萌新想问一下为什么我的OD打开0x413131是这个样子的,怎样才能看到像你一样的代码?
雪    币: 37
活跃值: 活跃值 (10)
能力值: ( LV4,RANK:41 )
在线值:
发帖
回帖
粉丝
xinali 活跃值 2017-11-7 10:37
3
0
删除自动代码分析
游客
登录 | 注册 方可回帖
返回