码迷,mamicode.com
首页 > 其他好文 > 详细

引用-Xp0int Team

时间:2020-03-30 15:51:42      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:有关   int   不可   md5   text   字符替换   team   esc   输入   

 
 

全场0血的crypto,然而我相信大家都是卡在其中一步,就是爆破K2上。
没有拿到flag,这个解法假设K2已知。

技术图片

题目要求输入三个字符串,m1 m2 m3。看源码可知,m3就是K2,5字节,唯一有关的信息是最后输出的h1_2,是m1根据一个固定算法得到的。最后的输出是一个md5,因此可以爆破K2

技术图片

然而事实是,在整个比赛周期都没有爆破出来,从alphanumeric到printable,都没有。。。意思就是K2里面还有不可见字符。。。那全场没人做出来也就可以理解了

假设K2已知,那么temp3就是0。
为了让temp2为0,需要type2_1(m1)和type2_2(m2)的结果相同:

技术图片

process就是第一个字符替换为它与最后一个字符异或后的结果,那么很简单,只要m1和m2最后10字节相同且最后一个字节都是\x00就可以绕过这一层。

temp1要求type1(m1)和type1(m2)相同,但m1和m2是不同的。这里需要md5碰撞的字符串,网上搜一下就有了。由于K1长度未知,需要填充一个固定长度的K1的后缀(或者说msg的前缀),使得K1加上后缀的长度刚好等于md5的分组长度即64字节,需要64次爆破。

技术图片

引用-Xp0int Team

标签:有关   int   不可   md5   text   字符替换   team   esc   输入   

原文地址:https://www.cnblogs.com/p201721410013/p/12598827.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!