fastcoll进行md5碰撞

前言:

记录一下fastcoll工具的使用

fastcoll

做php题的时候有不少md5碰撞的题,fastcoll这个工具还蛮好用的。

网上下载fastcoll的exe程序,我把程序名改为了fastcoll.exe

我们再存在fastcoll的目录下打开cmd

输入fastcoll.exe -h可以查看fastcoll的命令

常用的参数为-p-o
我们首先创建一个名为test的txt文件,写入一个test

我们可以使用命令fastcoll.exe -p test.txt -o md5_msg1.txt md5_msg2.txt生成两个md5值相等的文件

我们就生成了两个md5相等的文件,我们可以使用命令分别查看两个文件的md5值

certutil -hashfile md5_msg1.txt MD5

certutil -hashfile md5_msg2.txt MD5

可以看到两个文件的md5相等,成功了。

do

SHCTF 2024 week1 MD5 Master
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
highlight_file(__file__);

$master = "MD5 master!";

if(isset($_POST["master1"]) && isset($_POST["master2"])){
if($master.$_POST["master1"] !== $master.$_POST["master2"] && md5($master.$_POST["master1"]) === md5($master.$_POST["master2"])){
echo $master . "<br>";
echo file_get_contents('/flag');
}
}
else{
die("master? <br>");
}

使用官方payload,test.txt文件写入MD5 master!

1
2
3
4
5
6
7
8
9
10
<?php
$md51=file_get_contents('./md5_msg1.txt');
$md52=file_get_contents('./md5_msg2.txt');
$master = "MD5 master!";

if($md51 !== $md52 && md5($md51)===md5($md52)){
echo "master1=".urlencode(substr($md51,strlen($master)));
echo "&";
echo "master2=".urlencode(substr($md52,strlen($master)));
}

这题只能bp才行而且传参最后不能有空格,还得加上&才行,有点(

或者

可以使用在线工具碰撞MD5 在线碰撞 - 百川在线工具箱 (chaitin.cn)

写个php

1
2
3
4
5
6
<?php
$hex1="4d4435206d6173746572210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1b4267b7af8c15bdd43f3b5c872ab73bb68aec4178e854614c6412d13b09c4b16c3d1e8ee87996a8b246b992f94546f9602335d1323ce4520e9c7c987820fbeca38ed14cc95aa9fe3aab474c59951b231f3b15f741d12f20bb530382b60a8c8cbab7848af04705cfb48ce5242840911cec5e61e421ccca0b9d01584ce250bf2";
$hex2="4d4435206d6173746572210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1b4267b7af8c15bdd43f3b5c872ab73bb68ae44178e854614c6412d13b09c4b16c3d1e8ee87996a8b246b992f14556f9602335d1323ce4520e9c74987820fbeca38ed14cc95aa9fe3aab474c59951b231f3b1df741d12f20bb530382b60a8c8cbab7848af04705cfb48ce5242040911cec5e61e421ccca0b9d01504ce250bf2";
echo "master1=".urlencode(hex2bin($hex1));
echo "&";
echo "master2=".urlencode(hex2bin($hex2));

手动把两个的MD5+master%21删除,bp传值

结语:

就这样吧


fastcoll进行md5碰撞
http://example.com/2024/10/27/fastcoll工具md5碰撞/
作者
piiick
发布于
2024年10月27日
许可协议