探讨md5弱种类较为和强撞击
序言
在CTF中,md5的题型太普遍了,尽管有很多这些方面的文章内容,但相对而言较为零散,这儿关键将自身学习培训和赛事时碰到的md5弱种类和强撞击的题型从浅到深地整理一下。
文中涉及到知识要点实际操作训练:探讨md5弱种类较为和强撞击 有关试验:Weekly CTF(本课程内容致力于出示一些CTF题型给对CTF很感兴趣的小伙伴们,让大伙儿根据这种题型学习培训到有关专业知识。)
php中有二种较为的标记==与=====在开展较为的情况下,假如较为一个数据和字符串或是较为牵涉到数据內容的字符串,则字符串会被变换为标值而且较为依照标值来开展。
===在开展较为的情况下,会先分辨二种字符串的种类是不是相同,再较为。
0e开头且全是数据的字符串,弱种类较为都相当于0。
测试程序
因为md5不可以加密二维数组,在加密二维数组的情况下会回到NULL
因此 ,我们可以传入2个二维数组
能够传入2个md5加密后是0e开头的字符串,必须留意的地区是,这一以0e开头的字符串只有是纯数据,那样php在开展计算机的应用法的情况下才会将它转换为0。能够搜索以0e开头md5加密相同的字符串,还可以自身撰写编码,出示下列脚本制作。
还可以传入2个二维数组,但不会再合适传入2个0e开头的字符串,由于===是md5的强撞击,开展了严苛的过虑。
应用md5加密后2个彻底相同的2个字符串来绕开过虑。
怎样转化成2个不一样的字符串,可是MD5是一样的呢。参照怎样用不一样的标值搭建一样的MD5后,我们可以应用迅速MD5撞击制作器来搭建2个MD5一样,但內容彻底不一样的字符串。
fastcoll_v1.0.0.5.exe.zip
结构
建立一个文本文档,载入随意的文档內容,取名为ywj.txt (源代码)
运作fastcoll輸出下列主要参数。-p 是源代码,-o是輸出文档
检测
对生产制造的1.txt和2.txt文件开展检测
能够见到,1.txt和2.txt文件二进制md5加密后的結果完全一致。因为1.txt和2.txt文件中带有不由此可见标识符,因此 必须将其url编号后应用。能够见到url编号后的2个字符串不完全一致,达到大家键入2个不一样主要参数的必须。
当题型限定不可以传入二维数组,只有传入字符串时,以下练习题,就只有选用打法2.
源代码
最先查询一些strtr()涵数的使用方法:
strtr() 涵数变换字符串中特殊的标识符。
观查源代码,规定传入四个主要参数,最先param1===param2,由于沒有其他限定,因此 我们可以传入2个二维数组。针对是str1和str2,最先str1只有是数据,且最终
b,但md5_1 !=md5_2,因此 我们不能传入2个md5加密后以0e开头的字符串。
又由于会将md5加密后的str1和str2中的cxhp换成0123,换句话说c会被换成0,因此 一个ce开头的字符串会被换成0e开头的字符串。
能够想起只需寻找2个md5加密后是ce开头的字符串,或是一个md5加密后是ce开头的字符串,一个md5加密后是0e开头的字符串就可以绕开过虑。
结构脚本制作
它是一开始的脚本制作,传参少,且实行速度比较慢。
它是进一步提升的脚本制作
观查编码,有一个rondom方式,回到的是一个随机数字,在这道题中,不用清晰回到的是哪些內容,大家只需了解回到的是一串数据就可以了。传入2个主要参数a和b,规定传入的是字符串,b会历经md5加密。最终要让$a.$r==$b。由于是弱种类较为,且只有传入字符串,要想的是2个0e开头的字符串开展较为,前边大家早已了解,以0e开头的字符串只有是纯数据,那样php在开展计算机的应用法的情况下才会将它转换为0。因此 确保$a以0e开头就可以了,由于$r是一串数据,因此 $a.$r在php中還是能够被分析为0。由于$b是主要参数b历经md5加密而成,因此 大家传入md5加密后是0e开头的字符串就可以。
2/7
热烈欢迎文章投稿至电子邮箱:
重金悬赏 | 原創文章投稿涨稿酬啦!
有才可以的你赶紧来文章投稿吧!
快戳“阅读”做射击场训练