写在前面:首先感谢出题人和运维的辛苦付出,让jkd有了第一届CTF,祝比赛越办越好
第一次写wp,同时由于自己太菜,赛中很多是参考了类似题的wp才能做出来,大部分直接手撕。为了让这篇wp显得不那么拉跨,于是参考了某究极卷王黄爷爷的脚本和出题人原汁原味的两道wp。
1.
下载附件,点开一看
丢进exeinfope,是个64位的
打开ida64,shift+f12,搜索字符串
2.
应该是非预期解(我大概也没有哪个题是预期解
做题参考博文:
https://blog.csdn.net/xiangshangbashaonian/article/details/83476084?utm_source=app
(此处感谢安卓出题人,同样也是这道题的出题人,让孩子去你的博客找base64解法,没找到,却找到了这题的解法)
以下是反编译的代码
关键代码是第23行,需要将数组md5s的四组十进制数转回十六进制,再每组进行md5解密,最后拼在一起,就是flag
然后对着博文里的抄转十六进制的代码
第三组少了一位,应该是转十六进制的时候出了问题,赛后看了黄爷爷的wp后才知道最前面少了一个0,分组去在线md5网站解密
或者使用前面所提及的博文中的脚本进行爆破
#937b8b318c5691f3 = JUST{
#b9ed7cb8a2f0bafe = you_a
#0e29cc9171a49daf = re_ri
#a99e9ee21f22d4d7 = ght_}
#flag=JUST{you_are_right_}
3.
题目提示使用uncompyle6的库进行反编译,没管(直接去了在线反编译网站
然鹅md5那题不能这么干,使用网站反编译出来的会少代码
这里放一下安装及使用的代码
pip install uncompyle6 #安装前记得安装pip
uncompyle6 models.pyc > models.py #将mode