一、实验要求

本次实验主要是加深大家对MD5碰撞及其原理的理解,使用SEED实验环境中的工具及编程语言,完成以下任务:
a)使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制编辑器查看输出的两个文件,描述你观察到的情况;
b)参考Lab3_task2.c的代码,生成两个MD5值相同但输出不同的两个可执行文件。
c)参考Lab3_task3.c的代码,生成两个MD5值相同但代码行为不相同的可执行文件。
d)回答问题:通过上面的实验,请解释为什么可以做到不同行为的两个可执行文件具有相同的MD5值?

二、实验步骤

(1)使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制编辑器查看输出的两个文件,描述你观察到的情况;

  • 首先创建prefix.txt并修改内容为hail hydra
  • 生成两个MD5相同的文件
  • 验证文件是否相同、MD5是否相同
  • 分别查看out1.bin和out2.bin


    (2)参考Lab3_task2.c的代码,生成两个MD5值相同但输出不同的两个可执行文件。
  • 修改Lab3_task2.c为以下内容
  • 编译,利用bless定位字符串的位置

  • 截取到12340位置,计算得到在 12320 到 12379 范围内,12352 为 64 的倍数,因此我们把12352 后面的截取出来:
  • 然后对 prefix 生成 md5 相同的两个文件
  • 把刚刚的尾巴接到这两个文件后面
  • 赋予执行权限
  • 运行
  • 可以看到两个输出是不同的:

    (3)参考Lab3_task3.c的代码,生成两个MD5值相同但代码行为不相同的可执行文件:
  • 将Lab3_task3.c构造如下:
  • 编译后利用bless找到两个数组的位置
  • 构造两个 md5 相同的文件
  • 截取字符串(生成的字符串、第二个字符串后面(前面)的内容,需要填充的字符串),拼接并赋予新的文件执行权限:
  • 分别运行并检查 md5

    可以看到,它们运行了不同的代码,但 md5 是相同的

(4)回答问题:通过上面的实验,请解释为什么可以做到不同行为的两个可执行文件具有相同的MD5值?
答:MD5校验值的长度是固定的128Bit,其总共有2的128次方种不同的值,被MD5校验的文件长度却是任意的,可以用有限的2的128次方种不同的值去匹配正无穷个文件,结果是必然有重复的,同一个MD5值有正无穷个不同的文件,所以在实验中可以经过适当的拼接做到不同行为的两个可执行文件具有相同的MD5值。

【网络攻防技术】实验三——MD5碰撞实验相关推荐

  1. 20155201 网络攻防技术 实验六 信息搜集与漏洞

    20155201 网络攻防技术 实验六 信息搜集与漏洞 一.实践内容 各种搜索技巧的应用 DNS IP注册信息的查询 基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的查点 漏洞扫描: ...

  2. 网络攻防技术-Lab5-shellcode编写实验(SEED Labs – Shellcode Development Lab)

    网络攻防技术实验,实验环境.实验说明.实验代码见 Shellcode Development Lab Task 1: Writing Shellcode a: The Entire Process 1 ...

  3. 大数据技术基础实验三:HDFS实验——部署HDFS

    大数据技术基础实验三:HDFS实验--部署HDFS 文章目录 大数据技术基础实验三:HDFS实验--部署HDFS 一.前言 二.实验要求 三.实验原理 1.什么是HDFS? 2.HDFS的体系结构 3 ...

  4. 网络攻防技术(摆烂一天)

    网络攻防技术非常基础 1. 信息采集 信息采集的重点概念: 信息采集是黑客为了更有效的实施攻击而在攻击前对被攻击目标进行探测活动(信息渗透的过程) 信息采集是渗透重要的一部分:知道的越多就可能知道的更 ...

  5. 2018-2019-2 20189215 《网络攻防技术》第九周作业

    教材<网络攻防技术>第九.十章学习 第9章 恶意代码安全攻防 9.1 恶意代码基础知识 恶意代码是指使计算机按照攻击者的意图执行以达到恶意目标的指令集.类型包括:计算机病毒.蠕虫.恶意移动 ...

  6. 2018-2019-2 20189215 《网络攻防技术》第五周作业

    <Python 黑帽子>第四章 代码托管:[https://github.com/jsjliyang/python3-Black.Hat/tree/master/chapter4) 教材& ...

  7. 2018-2019-2 20189215 《网络攻防技术》第六周作业

    教材<网络攻防技术>第五.六章学习 第5章 TCP/IP网络协议攻击 5.1 TCP/IP协议栈攻击概述 网络安全的属性:机密性 .完整性 .可用性 .真实性 .不可抵赖性 . 网络攻击的 ...

  8. 2018-2019-2 20165315《网络攻防技术》Exp6 信息搜集与漏洞扫描

    2018-2019-2 20165315<网络攻防技术>Exp6 信息搜集与漏洞扫描 目录 一.实验内容 二.实验步骤 1.各种搜索技巧的应用 2.DNS IP注册信息的查询 3.基本的扫 ...

  9. 2018-2019-2 20165212《网络攻防技术》Exp5 MSF基础应用

    2018-2019-2 20165212<网络攻防技术>Exp5 MSF基础应用 攻击成果 主动攻击的实践 ms17010eternalblue payload windows/x64/m ...

最新文章

  1. 服务器硬盘冷迁移后网卡无法启动问题
  2. MyEclipse在保存时总是building workspace,反应很慢
  3. Forms Builder 学习笔记 1 ――安装
  4. leetcode 151. 翻转字符串里的单词
  5. 美团点评基于 Flink 的实时数仓平台实践
  6. 数学--数论--四大定理之威尔逊定理
  7. android启调支付宝
  8. 随机游走问题的神奇应用(一)
  9. 联想微型计算机 y720,助你全场超神 评联想拯救者Y720 Cube
  10. 最全的ASCII码对照表
  11. 机器人操作系统二(ROS2)- 修行 Taoism
  12. 拉普拉斯变换和Z变换表
  13. [Azure - VNet] Azure网络带宽的性能测试
  14. 从hr口中了解react的状态管理库(mobx, recoil), 立马过来学习之mobx
  15. 百度移动开放平台上线
  16. MPN (Learning Normal Dynamics in Videos with Meta Prototype Network)代码阅读
  17. 递归、迭代、分治、回溯、动态规划、贪心算法
  18. python3 获取/备份 iPhone icloud云端 中相关数据
  19. Lei ❤函数的初识
  20. 仿生学导论学习笔记——第四章

热门文章

  1. ROS调用笔记本摄像头和外界摄像头问题汇总(本人亲身经历)非常好用
  2. python GUI demo(tkinter)
  3. Python语言_理論與習題
  4. 几种图像处理库的研究
  5. 经济危机下看SaaS厂商的突围策略
  6. 让ie6也支持websocket
  7. 每个元音包含偶数次的最长子字符串——打死我也想不到的代码
  8. 小学生有必要学机器人编程吗
  9. Windows10 微软输入法突然变成繁体输入
  10. CodeCraft-20 (Div. 2)(C(本原多项式) D (BFS) E (状压+dp))