首页
社区
课程
招聘
[分享]CTF2019第六题writeup
发表于: 2019-3-15 15:50 2777

[分享]CTF2019第六题writeup

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

    ---END---

  • 这一题花了不少时间,因为没有接触过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

  • [招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

    收藏
    免费 1
    支持
    分享
    最新回复 (0)
    游客
    登录 | 注册 方可回帖
    返回
    //