-
-
[分享]CTF2019第六题writeup
-
发表于: 2019-3-15 15:50 2777
-
- 这一题花了不少时间,因为没有接触过pwn,一开始没弄清楚这个题是破解题还是pwn,补了一些pwn的知识,有了大概的了解,就继续往下干了
- 首先打开试了下,就是一个输入-检查的程序,载入ida,查String,发现了Please Input Your Key_ Now!,跟过去,切换到sub_4014C0函数中,断点调试
- 在sub_4014C0函数中掉了几个子函数进行校验,一次跟进去,反算出前面8位
20101001
,继续往下,拿到接下来的一段X1Y0uN3tG00d
,总长度是24位,这里还差4位,后来更新了两个版本,确定了接下来的一位H
。到这里,程序还不算困难。 - 接下来就卡了蛮久,
strcpy(&Dest, a1);
,这里有溢出,程序自动退出来了,后来补了一下pwn知识后,发现应该是利用这里的溢出,覆盖EIP - 接下来就是找EIP了,
H
经过运算之后是F0
,程序地址的前两位都是高位肯定是0040
,反算出来是Ck
- 剩下还有一位待确定,在程序中找到
0040xxF0
的地址还不少,可以依次试下,我这里是看到了Haxk
,先猜了一把是Hack
或者HaCk
,最后得出是HaCk
- 然后发现又是一个坑。。。卡了更久,直到群里通知破第一步就ok,然后提交至~
- 接下来的分析是第二层的,这里分析到DES加密哪一块怎么都看不懂,最后才明白就是标准的DES加密,简单写下分析的过程,首先发现是将输入8个字符拆成64位的二进制,然后经过DES加密,最后和
9DB084AC97041E305697D5A499355A28
32位的数组按位对比 - 调试拿到key是
XiyouNet
,然后就去解密,开始自己网上找DES解密java代码,但是不知道咋的一直解不出来,后来发现52爱盘有个PYG密码学综合工具,拉进去解密一下,嚯,居然出来了,解出来是Wel1C0me
. - 所以最后的flag是
20101001X1Y0uN3tG00dHaCkWel1C0me
---END---
20101001
,继续往下,拿到接下来的一段X1Y0uN3tG00d
,总长度是24位,这里还差4位,后来更新了两个版本,确定了接下来的一位H
。到这里,程序还不算困难。strcpy(&Dest, a1);
,这里有溢出,程序自动退出来了,后来补了一下pwn知识后,发现应该是利用这里的溢出,覆盖EIPH
经过运算之后是F0
,程序地址的前两位都是高位肯定是0040
,反算出来是Ck
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
- [分享]CTF2019第六题writeup 2778
- [分享]CTF2019第十题writeup 2821
- [分享]CTF2019第一题writeup 3424
看原图
赞赏
雪币:
留言: