从入门到入土:[SEED-Lab]MD5碰撞试验|MD5collgen实验|linux|Ubuntu|MD5 Collision Attack Lab|详细讲解
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)
本人博客所有文章纯属学习之用,不涉及商业利益。不合适引用,自当删除!
若被用于非法行为,与我本人无关
MD5collgen实验|linux|Ubuntu|MD5 Collision Attack Lab|详细讲解
- task01
- task2
- task3
task01
使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制编辑器查看输出的两个文件,描述你观察到的情况;
关于这部分,首先创建一个prefix.txt
前提是md5collgen已经导入
然后输入命令
./md5collgen -p prefix.txt -o out1.bin out2.bin
ls
- 查看目录下是否生成了对应文件
diff out1.bin out2.bin
- 在图形界面也可以看到
hexdump -C out1.bin
- 查看二进制文件的命令
task2
- 参考Lab3_task2.c的代码,生成两个MD5值相同但输出不同的两个可执行文件。
#include <stdio.h>
unsigned char xyz[200] = {0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41,
};
int main()
{int i;
for (i=0; i<200; i++){printf("%x", xyz[i]);
}
printf("\n");
}
gcc -o lab3_task2 Lab3_task3.c
- 编译一下
./Lab3_task2
- 执行查看输出结果
- 查看二进制文件
- 截取部分数组以及前段输出二进制
- 用该片段生成两个MD5值相同的文件
- 同时拼接后段
- 执行输出发现结果不同,查看MD5值发现相同
task3
- c)参考Lab3_task3.c的代码,生成两个MD5值相同但代码行为不相同的可执行文件。
#include <stdio.h>
unsigned char a[200] = {'B', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A','A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A','A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A','A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A','A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A','A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'B'
};
unsigned char b[200] = {'B', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A','A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A','A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A','A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A','A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A','A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'B'
};
int main()
{int i;int isSame=1;for(i = 0; i < 200; i++){if(a[i]!=b[i])isSame=0;}if(isSame)printf("run benign code\n");elseprintf("run malicious code\n");
}
- 常规编译一下
- 截取前端生成两个MD5相同的文件
- 检验一下
- 截取生成的字符串
- 取第二个字符串(不含)后面的内容
- 截取第二个字符串(不含)前面的内容
- 截取到需要填充的 0x00
- 分别运行并检查 md5
- 具体的切片位置需要自己看,具体情况具体分析
从入门到入土:[SEED-Lab]MD5碰撞试验|MD5collgen实验|linux|Ubuntu|MD5 Collision Attack Lab|详细讲解相关推荐
- 漏洞挖掘——实验12 Cross-Site Scripting (XSS) Attack Lab
漏洞挖掘前言 题目 Lab Cross-Site Scripting (XSS) Attack Lab Pre 1.名词解释:double free,UAF (Use After Free),RELR ...
- 从入门到入土:IP源地址欺骗dos攻击实验
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 从入门到入土:恶意代码Lab03-03.exe|分析实验|运行截图|问题回答|
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 逆向工程实验——pre9(可执行文件的加密MD5碰撞lab)
目录标题 1.阅读 2.阅读 3.阅读 4.阅读下面这三篇文章: 5.MD5 Collision Attack Lab Task 1:使用相同的MD5哈希值生成两个不同的文件 问题1:如果前缀文件的长 ...
- c语言实现md5比java难_浅谈md5弱类型比较和强碰撞
前言 在CTF中,md5的题目太常见了,虽然有很多这方面的文章,但相对来说比较零散,这里主要将自己学习和比赛时遇到的md5弱类型和强碰撞的题目从浅到深地梳理一下. 本文涉及知识点实操练习:浅谈md5弱 ...
- 【SeedLab】ARP Cache Poisoning Attack Lab
目录 实验手册 实验环境 Task 1: ARP Cache Poisoning Task 1.A (using ARP request). Task 1.B (using ARP reply). T ...
- 从入门到入土:[SEED-Lab]-幽灵攻击|Spectre Attack Lab|详细说明|实验步骤|实验截图
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...
- 狭义相对论从入门到入土(建议初一及以上)
欢迎来到HowardZhangdqs的劝退小课堂.这是狭义相对论从入门到入土(建议初一以上)系列的第二个集合版,修订了大量之前未发现的错误,如果大家在阅读时发现了错误欢迎联系我 zjh@shangha ...
- 【网络攻防技术】实验三——MD5碰撞实验
一.实验要求 本次实验主要是加深大家对MD5碰撞及其原理的理解,使用SEED实验环境中的工具及编程语言,完成以下任务: a)使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制 ...
最新文章
- MySQL 性能调优专题一(索引数据结构详解)
- Android 4.0操作系统的20个使用小技巧
- nccloud开发环境搭建_VS Code 搭建开发环境
- mysql sql sysdate_MySQL与Oracle SQL语言差异比较一览
- Exchange Reporter Plus概述
- 为什么事业单位公务员的公积金比企业里要缴得多?
- PHP CURL实现远程下载文件到本地
- AngularJS学习之旅—AngularJS 事件(十四)
- javascript写字技巧_关于 js的一些书写习惯 实用风格 小技巧
- MSDN 2015本地帮助文档安装教程(简单明了版)
- mkfs.ext3 快速格式化_U盘格式化
- FastReport.Net 常用功能总汇
- 非度量多维标度_R软件包vegan教程 2.1非度量多维度标度变换
- 网站调用百度地图展示位置,调用百度开放平台api 动态静态调用
- 切片函数python_python切片操作
- mysql多张表join_mysql多表联查join优化之 straight_join
- 1小时赚300块,不打代码帮人做个吃鸡网页 [IVX实战第3篇]
- html5在线裁剪,html5 Canvas裁剪图片
- 衡水年内计划发放万张农民工“一卡通” 防止拖欠工资
- ROS综合学习记录(一)---cmd_vel转换为阿克曼模型的速度变换
热门文章
- 【干货】如何删除“自豪地采用WordPress“
- hihocoder第196周
- InteliJ Idea通过maven创建webapp
- 几道比较难的SQL题
- onchange 与 onblur
- SQL SERVER数据库设计与现实
- django-区分时区的时间类型
- 20165309 实验三 敏捷开发与XP实践
- Redis基础学习(四)—Redis的持久化
- 从source folder 下将其所有子文件夹的*.* 文件拷贝到 target folder (不拷贝文件夹名仅拷贝文件)...