-
-
[原创]【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编辑
,原因:
赞赏
他的文章
看原图
赞赏
雪币:
留言: