前言:
记录一下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传值
结语:
就这样吧