md5绕过

news2024/12/23 5:19:33

文章目录

    • \=\=和\=\=\=
    • md5数组绕过
    • 科学计数法绕过
    • 双md加密
    • md5碰撞
    • Hash长度攻击

下面会以同一道题给大家演示:
(题目来源与nssctf)
在这里插入图片描述

==和===

在php代码中我们会看到==和===,虽然两个都是表示相等,但是在细节上会有所部区别

==:是弱比较,只比较结果,不比较数据类型。
===:是强比较,不仅会比较结果,也会比较数据类型。

md5数组绕过

原理:

由于md5不能加密数组,在加密数组的时候会返回NULL。

如果是我们传入的两个参数相等,我们可以传入两个数组,判断条件就成为NULL=NULL,这样就可以绕过判断。

在这里插入图片描述
题目只需要两个不同的值,md5加密后相同就可以。传入数组,两个不同,并且加密都为NULL,相等。
这样的题目需要注意等号,如果是==,可以一个是数组,一个是整型,但是为===,就必须都是整型,或者都是数组。

科学计数法绕过

原理:

可以传入两个md5加密后是0e开头的字符串,但这个以0e开头的字符串只能是纯数字,这样php在进行科学计算法的时候会将它转化为0。

同样是上面那道题:
在这里插入图片描述
传入两个md5后都是0e开头的纯数字,变为0=0。
这里可以收集一些网上的字符串,没有必要每次都自己去写脚本跑。

s878926199a
s155964671a
s214587387a
s214587387a
s878926199a
s1091221200a
s1885207154a
240610708
314282422
571579406
903251147
QNKCDZO
240610708
314282422
s878926199a
s155964671a
s214587387a
s214587387a

双md加密

正常的方法当然是写脚本去跑,但是做题的时候遇到了,肯定可以收集一下呀。
md和md5后都是0e开头的字符串:

CbDLytmyGm2xQyaLNhWn
770hQgrBOjrcqftrlaZk
7r4lGXCH2Ksu2JNT3BYM

md5碰撞

对于md5加密的我们也可以使用md5碰撞产生相等的值。
这里使用了工具fastcoll。下载的地址:

https://github.com/iamjazz/Md5collision?tab=readme-ov-file

下载压缩包解压就可以了。
然后使用的话,对着项目里的文档就可以。
同样是开头那道题:

1.首先新建init.txt文档,然后随便输入一点东西,我输入的是123456
2.然后执行 fastcoll_v1.0.0.5.exe -p init.txt -o 1.txt 2.txt

在这里插入图片描述
此时会在目录下生成1.txt和2.txt。
接着将Md5collision.php放在php环境中运行,注意因为要打开1.txt和2.txt,所以不要把Md5collision.php文件单独拖到php环境运行,可以直接将整个文件夹放入运行
在这里插入图片描述
这里我们可以看到生成的md5字符串。看着相似,但是中间是有所不同的。利用bp传入数据,可以得到flag
在这里插入图片描述

Hash长度攻击

使用:hashpump
一个值等于一个拼接的字符串的md5值,有长度要求
且拼接的字符串值等于一个已知字符串加上一个未知字符串,

hashpump直接根据提示传入相关数据,就会自动生成payload。
注:记得将/x换成%00

2023年楚慧杯的web题中考到了这个点,网上有wp。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1501417.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java基础面试题(day 01)

📑前言 本文主要是【Java】——Java基础面试题的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句&am…

httprunner参数化

1. 示例 引入对应的Parameters 1.1. CSV参数 from httprunner import HttpRunner, Config, Step, RunRequest, Parameters pytest.mark.parametrize("param", Parameters({"mobile_phone-pwd": "${P(csv_data/mobile_phone-pwd.csv)}"}))def …

C#中实现接口的一些小知识(C#用abstract或virtual来实现接口成员)

文章目录 不可用的修饰可用的修饰非抽象类实现接口抽象类实现接口抽象类与接口方法同名时一同实现 不可用的修饰 在C#中实现接口时,我们不能直接使用static或const来实现接口成员,因为接口中的成员默认都是实例成员,并且它们表示一种契约&am…

【SpringMVC】快速体验 SpringMVC接收数据 第一期

文章目录 一、SpringMVC 介绍1.1 主要作用1.2 核心组件和调用流程理解 二、快速体验三、SpringMVC接收数据3.1 访问路径设置3.1.1 精准路径匹配3.1.2 模糊路径匹配3.1.3 类和方法级别区别3.1.4 附带请求方式限制3.1.5 进阶注解 与 常见配置问题 3.2 接收参数(重点&a…

C++ 智能指针深度剖析

文章目录 1. 前言2. 为什么需要智能指针?3. 内存泄漏3.1 内存泄漏的概念及危害3.2 内存泄漏的分类3.3 如何检测内存泄漏3.4 如何避免内存泄漏 4. 智能指针的使用及原理4.1 RAII思想4.2 智能指针的原理4.3 C智能指针发展历史4.4 std::auto_ptr4.5 std::unique_ptr4.6…

计算机组成原理之机器:存储器之辅助存储器

计算机组成原理之机器:存储器之辅助存储器 笔记来源:哈尔滨工业大学计算机组成原理(哈工大刘宏伟) Chapter3:存储器之辅助存储器 3.1 概述 3.2 磁记录原理 通不同方向电流时磁化方向不同,由此区分写入…

vue 使用谷歌地图 @googlemaps/js-api-loader 进行模糊搜索

<template><div class"map"><div class"mapLeftStyle"><el-inputv-model"input"placeholder"请输入内容"class"controls"input"chnageinput"><i slot"prefix" class"e…

2007-2022年上市公司迪博内部控制评价缺陷数量数据

2007-2022年上市公司迪博内部控制评价缺陷数量数据 1、时间&#xff1a;2007-2022年 2、范围&#xff1a;上市公司 3、指标&#xff1a;证券代码、证券简称、辖区、证监会行业、申万行业、是否存在财报内控重大缺陷、财报内控重大缺陷数量、是否存在财报内控重要缺陷、财报内…

Linux第73步_学习Linux设备树和“OF函数”

掌握设备树是 Linux驱动开发人员必备的技能&#xff01; 1、了解设备树文件 在3.x版本以前的Linux内核源码中&#xff0c;存在大量的“arc/arm/mach-xxx”和“arc/arm/plat-xxx”文件夹&#xff0c;里面很多个“.c”和“.h”文件&#xff0c;它们用来描述设备信息。而现在的A…

使用Portainer让测试环境搭建飞起来

Docker的用处不多加赘述&#xff0c;Docker目前有以下应用场景&#xff1a; 测试&#xff1a;Docker很适合用于测试发布&#xff0c;将 Docker 封装后可以直接提供给测试人员进行运行&#xff0c;不再需要测试人员与运维、开发进行配合&#xff0c;进行环境搭建与部署。 测试…

【考研数学】李林《880》vs 李永乐《660》完美使用搭配

没有说谁一定好&#xff0c;只有适不适合自身情况&#xff0c;针对自身弱点选择性价比才最高。 两者侧重点不同&#xff0c;660适合强化前期&#xff0c;弥补基础的不足&#xff0c;880适合强化后期&#xff0c;题型全面&#xff0c;提高我们对综合运用知识的能力。 选择习题…

动手学深度学习PyTorch版

基本的数据操作 import torch # 创建一个行向量&#xff0c;默认为从0开始的12个整数 # n维数组也称为张量 x torch.arange(12) x # 张量的形状 x.shape# 张量的大小,张量所有元素的个数 x.numel()#修改张量的形状 x x.reshape(3,4)#生成形状为3*4的两个向量&#xff0c;向…

C#实现归并排序算法

C#实现归并排序算法 以下是 C# 中的归并排序算法实现示例&#xff1a; using System;class MergeSortAlgorithm {// 合并两个子数组static void Merge(int[] arr, int left, int mid, int right){// 计算左子数组和右子数组的长度int n1 mid - left 1;int n2 right - mid;/…

力扣--滑动窗口438.找到字符串中所有字母异位词

思路分析&#xff1a; 使用两个数组snum和pnum分别记录字符串s和p中各字符出现的次数。遍历字符串p&#xff0c;统计其中各字符的出现次数&#xff0c;存储在pnum数组中。初始化snum数组&#xff0c;统计s的前m-1个字符的出现次数。从第m个字符开始遍历s&#xff0c;通过滑动窗…

STM32(14)USART

USART:一种片上外设&#xff0c;用来实现串口通信&#xff0c;就是stm32内部的串口 USART简介 串并转换电路 串行通信和并行通信 串行&#xff1a;一根数据线&#xff0c;逐个比特位发送 为什么要串并转换 移位寄存器 USART的基本模型 通过查询SR&#xff08;状态寄存器&…

w022郑州大学招新赛选拔赛

A-SW的与众不同数组_2022学年第一学期郑州大学ACM招新赛&选拔赛 (nowcoder.com) #include <bits/stdc.h> #define int long long using namespace std;void solve(){int n;cin >> n;vector<int> v;for(int i 1; i < n; i){int x;cin >> x;v.p…

Java集合面试题(day 02)

&#x1f4d1;前言 本文主要是【JAVA】——Java集合面试题的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f304;每日一句&am…

一文扫荡,12个可视化图表js库,收藏备用。

hello&#xff0c;我是贝格前端工场&#xff0c;可视化图表在web前端开发中经常碰到&#xff0c;是不是很疑惑这些炫酷的图表是怎么实现的&#xff0c;其实是通过js库开发的&#xff0c;本文带来12个javascript库的介绍&#xff0c;欢迎关注我&#xff0c;阅读精彩内容。 一、什…

【新版Hi3521DV200处理器性能】

新版Hi3521DV200处理器性能 Hi3521DV200是针对多路高清/超高清&#xff08;1080p/4M/5M/4K&#xff09;DVR产品应用开发的新一代专业SoC芯片。Hi3521DV200集成了ARM Cortex-A7四核处理器和性能强大的神经网络推理引擎&#xff0c;支持多种智能算法应用。同时&#xff0c;Hi352…

Media Encoder 2024:未来媒体编码的新纪元 mac/win版

随着科技的飞速发展&#xff0c;媒体内容已成为我们日常生活中不可或缺的一部分。为了满足用户对高质量视频内容不断增长的需求&#xff0c;Media Encoder 2024应运而生&#xff0c;它凭借卓越的技术和创新的特性&#xff0c;重塑了媒体编码的未来。 Media Encoder 2024软件获…