首页
社区
课程
招聘
[原创]【2019看雪CTF】Q3赛季 第五题:魅影舞姬 WP
发表于: 2019-9-24 13:46 3818

[原创]【2019看雪CTF】Q3赛季 第五题:魅影舞姬 WP

2019-9-24 13:46
3818

#【2019看雪CTF】Q3赛季 第五题:魅影舞姬 WP
程序开始先check了输入sn第一字节,使用算法有tea和md5。这个用意不明。(让人多花点时间?)
然后将输入sn的前36字节进行base64解码,再进行以6、6、6、8字节长度进行分组,记为deb。
接着以sn的前24字节为key,对deb[3]进行3des解密并替换。
再对解密后的deb进行check,check函数为sub_403832,其中共进行4次校验,成功次数记录在全局变量中,地址0x4AC048。
最后进行sn的md5 hash校验和0x4AC048处全局变量的校验。到这里,基本可以确定输入长度为36字节,最后的md5 hash校验是为了保证不多解,即36字节后没有输入数据。
函数sub_403832里的校验其实就是走迷宫,对deb的里的4组数据进行校验,以2个bit位的0-3表示上下左右。迷宫及走法如下:

走法转换成输入的hex值:

得到5575fff002a555757cff00a955757dfc30a83080033ffd555a80
'5575fff002a555757cff00a955757dfc30a8'.decode('hex').encode('base64')就得到前24字节的sn。
到目前得到了3des的key和明文,加密再base64编码即得到输入的后12字节:geWKJMtrmeY=
所以flag为:VXX/8AKlVXV8/wCpVXV9/DCogeWKJMtrmeY=


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2019-9-24 21:38 被poyoten编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//