使用fastcoll生成字符串MD5碰撞
打CTF的时候会遇到诸如$a!=$b&&md5($a)===md5($b)的题。
这就要求我们找到这样的两个字符串a和b,内容不同,但md5值相同。这就涉及到md5的碰撞。
我们使用fastcoll来快速生成这种碰撞。
1.建立一个a.txt,内容如下:
2.将这个文件拖到fastcoll_v1.0.0.5.exe上,等于使用fastcoll打开它。
3.fastcoll会自动生成两个文件:
这两个文件内容不同,但是md5值是相同的。
然后我们写一个php脚本根据生成的文件生成碰撞的字符串:
<?php
function readmyfile($path){$fh = fopen($path, "rb");$data = fread($fh, filesize($path));fclose($fh);return $data;
}
$a = urlencode(readmyfile("E:/a_msg1.txt"));
$b = urlencode(readmyfile("E:/a_msg2.txt"));
if(md5((string)urldecode($a))===md5((string)urldecode($b))){echo $a;
}
if(urldecode($a)!=urldecode($b)){echo $b;
}
这里生成的a和b是已经经过url编码的:
fuck%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00O%EC%28%FE%D4%C2%22%FA%40Lx%CFC%3CqMx%975%EA%0F%B7Tq%28.%7F%26%D7%8A2%F8%EC%08%BC%E9%60j%0B%DA%CF%05%40q%C2%DDa7%D0%40%C6i%97%10l%84%9D%BA%7FK%7E%FEq%A6%3F%E4%5Dl%06%7F%7F%0A%05%F6%DB%EDQ%ED%28%3D%CEhjj%15%FC%A0X%C1%1B%F5%CC%CD0%5D%A2%F5P%17%03.%8Crb%93%83%C0%EF%C2AF%88%DC%97%A0%85%CF%DA%A2G%F6%D7%0Cw%0E%A3%94%9B
fuck%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00O%EC%28%FE%D4%C2%22%FA%40Lx%CFC%3CqMx%975j%0F%B7Tq%28.%7F%26%D7%8A2%F8%EC%08%BC%E9%60j%0B%DA%CF%05%40q%C2%5Db7%D0%40%C6i%97%10l%84%9D%BA%7F%CB%7E%FEq%A6%3F%E4%5Dl%06%7F%7F%0A%05%F6%DB%EDQ%ED%28%3D%CEhj%EA%15%FC%A0X%C1%1B%F5%CC%CD0%5D%A2%F5P%17%03.%8Crb%93%83%C0%EF%C2%C1E%88%DC%97%A0%85%CF%DA%A2G%F6%D7%0C%F7%0E%A3%94%9B
根据以上方法可以构建任意二进制文件,进而生成不同内容但是MD5值相等的字符串。
使用fastcoll生成字符串MD5碰撞相关推荐
- java产生字符函数_java生成字符串md5函数类(javaSE)
//实现生成MD5值 import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.B ...
- QT中生成字符串md5的方法
QT中,提供了QCryptographicHash类,很方便的实现的字符串到md5/md4/sha1的转换, 可以通过两种方法实现: [cpp] view plain copy QString pwd ...
- 利用fastcoll实现MD5碰撞
源码: <?php show_source(__FILE__); class CDUTSEC {public $var1;public $var2;function __construct($v ...
- 使用fastcoll进行md5碰撞,两个不同的文件md5值一样。
生成两个文件 fastcoll_v1.0.0.5.exe -p C:\windows\notepad.exe -o D:\notepad1.exe D:\notepad2.exe 比较 md5 校验是 ...
- java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串...
java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串 1 package com.zdz.test; ...
- md5碰撞介绍及工具,并对百度网盘进行碰撞
md5碰撞介绍及工具,并对百度网盘进行碰撞 前言 什么是MD5 什么是MD5碰撞 md5碰撞 常见的碰撞法 差分攻击 构造前缀碰撞法 快速 MD5 碰撞生成器使用方法 百度网盘md5碰撞攻击 总结 参 ...
- 逆向工程实验——pre9(可执行文件的加密MD5碰撞lab)
目录标题 1.阅读 2.阅读 3.阅读 4.阅读下面这三篇文章: 5.MD5 Collision Attack Lab Task 1:使用相同的MD5哈希值生成两个不同的文件 问题1:如果前缀文件的长 ...
- 【网络攻防技术】实验三——MD5碰撞实验
一.实验要求 本次实验主要是加深大家对MD5碰撞及其原理的理解,使用SEED实验环境中的工具及编程语言,完成以下任务: a)使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制 ...
- MD5碰撞与撞库和题
MD5 相同的情况叫做"碰撞",现在网络中已经出现了两个相同的 MD5 可执行文件,所以MD5现在已经被弃用了,发生碰撞的概率是1/(2^128). SHA-1 也会发生碰撞,但是 ...
- md5 collision(md5碰撞)
题目来源:南京邮电大学网络攻防训练平台 Web题 md5 collision 解题过程: 点开题目标题,呈现在眼前的是一段php代码,代码如下: $md51 = md5('QNKCDZO'); $a ...
最新文章
- spring cloud alibaba版本选择
- 《精通Unix下C语言编程与项目实践》目录
- 微信小程序把玩(四十)animation API
- php每天一题:strlen()与mb_strlen()的作用分别是什么
- signature=f7a4b29b93ef2b36608792fdef7f454a,Embedding of image authentication signatures
- html里span和div,HTML div和span
- adnroid string拼接_Android开发中string.xml文件中字符串的拼接
- Python全栈开发:web框架们
- 红米Redmi品牌独立首战告捷:半月多出货超100万
- C#接口的作用(经典)
- 如何打造139团队(不同层次人员的选择与培养,大型研发团队,大型敏捷开发团队)...
- python用pandas读取数据时出现错误_Python Pandas错误标记数据
- Java 并发:volatile 关键字解析
- C语言--------学生管理系统(源代码)
- windows驱动开发技术详解 VC6与DDK搭配使用的设置
- PDF转换成word转换器绿色版
- 微信小程序-找地儿住-官方文档
- 【MySQL】物化视图
- badboy安装及使用
- 如何建立高质量团队-《克服团队协作的五种障碍》笔记与心得