MD5 review

BUUCTF刷题笔记—CODE REVIEW 1(使用Hacker google/Edge扩展器) BUUCTF CODE REVIEW Hacker 阅读详情
#include "md5p.h"

typedef unsigned long (*_md5_nl)(unsigned long,unsigned long,unsigned long);

static const unsigned long _md5_a = 0x67452301UL;
static const unsigned long _md5_b = 0xefcdab89UL;
static const unsigned long _md5_c = 0x98badcfeUL;
static const unsigned long _md5_d = 0x10325476UL;

static int _md5_n[4][2] = {
	{0, 1},
	{1, 5},
	{5, 3},
	{0, 7}
};

static unsigned long _md5_s[4][4] = {
	{ 7, 12, 17, 22},
	{ 5,  9, 14, 20},
	{ 4, 11, 16, 23},
	{ 6, 10, 15, 21}
};

static unsigned long _md5_t[4][16] = {
	{0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee, 0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501,
	 0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be, 0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821},
	{0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa, 0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8,
	 0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed, 0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a},
	{0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c, 0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70,
	 0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x04881d05, 0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665},
	{0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039, 0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1,
	 0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1, 0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391}
};

static inline unsigned long _md5_rol(unsigned long n, unsigned long c)
{
	return (n << c) | (n >> (32 - c));
}

static inline void _md5_xx(unsigned long& a, unsigned long b, unsigned long r, unsigned long M, unsigned long s, unsigned long t)
{
	a = b + _md5_rol(a + r + M + t, s);
}

static inline unsigned long _md5_f(unsigned long x, unsigned long y, unsigned long z)
{
	return (x & y) | ((~x) & z);
}

static inline unsigned long _md5_g(unsigned long x, unsigned long y, unsigned long z)
{
	return (x & z) | (y & (~z));
}

static inline unsigned long _md5_h(unsigned long x, unsigned long y, unsigned long z)
{
	return (x ^ y ^ z);
}

static inline unsigned long _md5_i(unsigned long x, unsigned long y, unsigned long z)
{
	return y ^ (x | (~z));
}

void MD5p::Initialize(unsigned long chain[4])
{
	chain[0] = _md5_a;
	chain[1] = _md5_b;
	chain[2] = _md5_c;
	chain[3] = _md5_d;
	return;
}

void MD5p::Update(unsigned long chain[4], unsigned long M[16])
{
	_md5_nl FN[4] = {
		_md5_f,
		_md5_g,
		_md5_h,
		_md5_i
	};
	unsigned long state[4];
	for (int i = 0; i < 4; i++) {
		state[i] = chain[i];
	}
	for (int i = 0; i < 4; i++) {
		int n = _md5_n[i][0];
		for (int j = 0; j < 16; j++) {
			int k = ((4 - (j & 3)) & 3);
			_md5_xx(state[k], state[(k + 1) & 3], FN[i](state[(k + 1) & 3], state[(k + 2) & 3], state[(k + 3) & 3]), M[n & 0xf], _md5_s[i][j & 3], _md5_t[i][j]);
			n += _md5_n[i][1];
		}
	}
	for (int i = 0; i < 4; i++) {
		chain[i] += state[i];
	}
}

void MD5p::Final(unsigned long chain[4], unsigned char* tail, unsigned long length[2])
{
	unsigned char E[128];

	int l = length[0] & 0x3f;
	int p = 0;
	for (p = 0; p < l; p++) {
		E[p] = tail[p];
	}
	int n = (l >= 56? 120: 56) - l;
	if (n > 0) {
		E[p++] = 0x80;
		while (--n > 0) {
			E[p++] = 0;
		}
	}
	((unsigned long *)(E + p))[0] = length[0] << 3;
	((unsigned long *)(E + p))[1] = length[1] << 3 | length[0] >> 29;
	Update(chain, (unsigned long *)E);
	if(l >= 56) {
		Update(chain, (unsigned long *)&E[64]);
	}
}

【Hive】(十四)Hive 项目实战之电子商务消费行为分析_hive项目实战 Hive 学习过程中的一个练习项目,如果不妥的地方或者更好的建议,欢迎指出!😁数据结构数据清洗基于Hive的数据分析这里通过UDF自定义 MD5加密函数 ,对地址、邮箱等信息进行加密。-- md5 udf自定义加密函数Clean and Mask customer_details 创建明细表。 阅读详情

相关推荐

1688 item_review 接口深度分析及 Python 实现

1688 的接口是阿里巴巴开放平台提供的核心接口之一,用于获取指定商品的买家评论数据,包括文本评价、评分、晒图、采购属性(如采购数量、用途)等信息。该接口是分析商品质量、供应商信誉、买家需求的关键数据来源,广泛应用于供应链风控、竞品分析、商品优化等场景。

yuweide19761218的博客 961

BUU CODE REVIEW 1 1(反序列化+md5绕过)

BUU CODE REVIEW 1 1(反序列化+md5绕过)

小谢的博客 4285

大众点评评论数据抓取实战:如何绕过_token加密参数(Python+PyExecJS完整方案)

本文详细介绍了如何通过Python和PyExecJS逆向分析并绕过大众点评评论接口的_token加密参数,实现高效稳定的数据抓取。文章提供了从接口识别、加密逻辑分析到完整工程化代码实现的完整方案,帮助开发者直接获取结构化的JSON评论数据,解决Ajax接口动态参数难题。

weixin_29009501的博客 302

BUUCTF——Basic-BUU CODE REVIEW(MD5弱碰撞&反序列化漏洞)

所以我们不能将input设为具体的值,而是在序列化执行,令input=&correct。于是涉及到了md5绕过的问题,md5这个地方可以用md5弱碰撞,因为是弱类型比较。右键“检查”,使用Hackbar工具,输入对应的GET和POST参数然后Execute,得到flag。POST传入的参数pleasepost=2,同时要求md51和md52的值不同,但是md5值相同。要求GET传入的参数pleaseget=1,于是GET处的参数很简单,就是。得到了POST第二个部分的字段,最后拼接起来就是。...

Zichel77的博客 996

高效数据迁移:ICCAP到ADS的数据导入与导出实战指南

本文提供了从ICCAP到ADS进行高效、准确数据迁移的实战指南。针对射频与微波电路设计中的关键挑战,详细阐述了迁移前的战略规划、ICCAP数据的精细化导出(包括脚本化批处理)、ADS数据的多种导入方法(如Data Items、DML模型库及编程化API),并强调了数据完整性与准确性验证的重要性,确保模型参数和仿真结果在平台间可靠传递。

weixin_29291185的博客 132

CAN总线BusOff恢复机制详解:快慢恢复策略在车载网络中的实战应用

本文深入解析了CAN总线BusOff恢复机制,重点阐述了快慢恢复策略在车载网络中的工程应用。通过对比NXP S32K与STM32平台的实现代码,并结合CANoe仿真与参数优化方法,为工程师提供了从理论到实战的完整解决方案,旨在提升车载网络的可靠性与功能安全。

7up55的博客 615

# Codex 项目实战:从 0 搭建 AGENTS.md、Rules、Test 与 AI Code Review 工作流plus pro chatgpt 5.6sol

这一点经常被误解。我们公司成立于……这个项目最早创建于……项目的愿景是……这些内容不是完全没用。但对于 Coding Agent 来说,Signal 很低。WhereHowConstraintValidation代码在哪里?应该怎么改?什么不能做?怎么判断正确?什么情况下才算完成?2026 年 Coding Agent 已经越来越能够真正执行系统操作。OpenAI 2026 年公开介绍 Codex 安全运行机制时,也重点强调了技术边界、人工批准、系统访问范围和可审计性;

2601_96445177的博客 302

YOLOv11【第二章:核心模块进阶篇·第3节】LDConv线性可变形卷积改进YOLOv11!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 7440

【CTF Web】BUUCTF BUU CODE REVIEW 1 Writeup(代码审计+PHP弱类型漏洞+MD5的0e绕过+反序列化)

1。

HEX9CF的技术博客 957

【2024-06-21】网易互娱秋招实习笔试三道编程题解

恭喜发现宝藏!搜索公众号【TechGuide】回复公司名,解锁更多新鲜好文和互联网大厂的笔经面经。作者@TechGuide【全网同名】

试问道几许 1055

第10集:AIOps 平台架构设计!画出面试官最想看的系统全景图

本文介绍了如何将AIOps平台的六大功能模块整合为四层架构设计,并生成专业系统全景图。文章首先指出面试中架构设计能力的重要性,强调一张清晰的架构图能直观展现全局观。随后指导读者检查项目结构,准备绘图环境。核心部分详细拆解了四层架构:数据采集层(Prometheus、ELK等)、AI分析层(巡检、告警、预测等)、决策执行层(工作流引擎、自愈Agent)和展示交互层(API、控制台)。通过Python代码自动生成模块依赖关系图,并提供了面试讲解技巧。全文旨在帮助开发者在面试中系统性地展示项目架构设计能力。

qq_2937655951的博客 93

刚换到 Codex 不顺手?用 3 层配置解决 4 个常见问题

本文介绍了如何通过三层配置优化Codex的使用体验,解决审批频繁、回复冗长等常见问题。第一层是模型参数配置,建议显式设置模型类型和推理档位;第二层通过AGENTS.md文件管理沟通方式,要求回复简洁高效;第三层使用Rules命令边界控制操作权限,实施两阶段变更协议。文章还推荐使用Auto-review减少无效审批,并提供了配置审计工具下载链接。通过这三层配置,可以实现低风险操作自动完成、修改操作先计划后执行、外部访问需解释审批、高破坏性操作禁止执行的协作流程。

快乐的修补匠的专栏 335

【即插即用模块】注意力篇 | MICCAI 2023 | MFE:多尺度特征提取,告别固定感受野,猛涨2个点!

本文提出一种用于低分辨率乳腺癌病理图像超分辨率与分类的网络SHISRCNet。针对现有方法处理低分辨率图像效果差、感受野固定等问题,设计了多特征提取模块(MFE),通过多速率空洞卷积覆盖全尺度感受野(局部到全局),结合递进残差连接和动态权重融合机制,实现自适应多尺度特征增强。实验表明,该模块在超分辨率任务中PSNR提升近2个点,分类准确率显著提高。代码提供详细注释,支持即插即用,适用于各类多尺度视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 206

第二周学习内容

反序列化+md5绕过。

weixin_55133245的博客 774

【PyTorch深度学习项目实战100例目录】项目详解 + 数据集 + 完整源码

大家好,我是阿光。本专栏整理了《深度学习100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。正在更新中~ ✨。

优快云 精品推荐 10万+

全志V3S嵌入式驱动开发(解决kernel 5.2.y wifi驱动问题)

​【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 wifi模块,之前测试的时候,开发板上用的是esp8089,当时内核时4.14.y,测试也是通过的。链接地址在这里, https://blog.youkuaiyun.com/feixiaoxing/article/details/131178420?spm=1001.2014.3001.5501 那个时候测试的时候,我们就说过,wifi驱动可能是除了镜像制作之外,最复杂的一个

嵌入式-老费,一个分享专业嵌入式知识的blog 1158

业务审查任务_business-review-task

以下为本文档的中文说明business-review-task(业务审查任务)是Relaticle开发的一款专业技能,充当非技术产品经理的角色来审查代码变更。该技能通过驱动真实的Relaticle应用(https://relaticle.test)并逐条断言验收标准,验证代码差异是否真正实现了其所声称的功能。它支持多种调用模式:默认模式审查当前分支与main的差异;–working-tree包含未暂存的更改;–pr N审查GitHub PR;–describe通过文字描述验收标准;

小青蛙电气 138

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

HiveSQL电商分析案例30题

问题导读: 1、如何通过UDF自定义 MD5加密函数 ,对地址、邮箱等信息进行加密? 2、如何对表内容进行检查? 3、如何进行数据分析? 一、前言 Hive 学习过程中的一个练习项目,如果不妥的地方或者更好的建议,欢迎指出!我们主要进行一下一些练习: 数据结构 数据清洗 基于Hive的数据分析 二、项目需求 首先和大家讲一下这个项目的需求: 「对某零售企业最近1年门店收集的数据进行数据分析」 潜在客户画像 ...

格子衫 881

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

每日进步一点点(网安)

先看源代码源代码中包含BUU类和if条件判断语句先分析BUU类,有__destruct()方法,就是对象被销毁时自动调用,可以通过序列化结果进行post传参,让correct和input相等即可得到flag,这是对BUU类的操作s:0:"";R:2;为什么这样构造呢?因为uniqid()产生的数是随时变化的,所以不能单纯让两个变量的值相等,因为无法保障值是确定唯一的,所以用到指针,让两个变量的内存地址相等,也就是共用一个内存地址。

longnice666的博客 1466

寒假学习笔记【反序列化2】

观察代码,类函数中destruct中存在if条件,达成可以输出flag,if条件为correct强等于input,但在此之前correct会被赋值。类函数之外有if条件的反序列化,第一个是使get传参的pleaseget===‘1’,之后是post传参的pleasepost==='2',最后是让经过md5哈希后的md51==md52并且md51不等于md52。要想上传obj,首先要绕过md5在PHP中,如果字符串以0e开头并且后面是纯数字,它会被解释为科学计数法,并且其值会被认为是0。

2407_87762515的博客 324

反序列化2

is_valid() 方法规定传入变量的字符的 ASCII 码必须是 32-125,而变量是 protected 定义的,protected 属性在序列化后会出现不可见字符 \x00*\x00,转化为 ASCII 码不符合要求,而 public 属性序列化不会出现不可见字符,可以用 public属性来绕过。//flag.php 也可,但是使用 php 封装协议过滤更加完善。接着来看魔术方法 __destruct(),在这个方法中,当 op 强等于 2 时,会使 op 等于 1,但在 php 中,强比较。

2401_87620236的博客 828

php反序列化练习

根据前面学的代码审计一下,发现需要满足三个条件get=1post=2md51!=md52 但是要满足md5(md51) ==md5(md52),MD5函数不能处理数组,那么我们可以利用NULL等于NULL来进行绕过这样flag就能出现,这里可以用php在线工具直接编写出来objs:0:"";R:2;那就可以开始操作了,得到flag了。

awy147的博客 318

5大领域10道题定起点:find-your-level测评技巧与AI学习计划定制指南

[![AI Engineering from Scratch 开源课程封面,展示511课、20阶段的学习计划体系](https://raw.gitcode.com/GitHub_Trending/ai/ai-engineering-from-scratch/raw/2429e50b5c484d9461809b90c88d2ce2a967a975/site/og-image.png?utm_sour

gitblog_00757的博客 1020

Codex 深度解读:不止是模型,而是一套编码工作系统(THS)

Codex深度解读:OpenAI打造的下一代编码工作系统 本文系统解析了OpenAI Codex的设计理念与核心价值。Codex并非单纯的代码生成模型,而是由模型层(GPT-5.4-codex)、执行框架层(Harness)和交互入口层(App/CLI/IDE/Cloud)组成的三层架构系统,专注于提升复杂任务的稳定交付能力。与常见AI编码助手相比,Codex更强调"一次做对"的完成度、系统化工作流和风险控制。其核心创新在于Skills(固化开发流程)与MCP(连接外部服务)机制,将AI能力转化为可复用的工

技术引领业务创新 781

我用 Claude Code 干了 3 个月:从写代码到搭系统,这些技巧让我效率翻倍

Claude Code 是 2026 年三大 AI 编程工具之一,独特优势是能理解整个项目、执行复杂任务、自主调试。本文基于 3 个月重度使用经验,总结 8 个最实用的技巧:用 Plan Mode 先规划再执行(返工率降低 70%)、用 CLAUDE.md 存项目规范、先写测试再写代码(TDD + AI)、用 @ 引用文件、让它解释代码而不是直接改、Background Agent 后台执行、多轮对话迭代(每轮 200-500 行代码)、让它做 Code Review。附 5 个踩坑记录和与 Cursor/

haoxinpoju的博客 506

推荐一款强大又免费的检测iOS应用是否会4.3a的工具

前言做马甲包、多渠道App的iOS开发,最头疼的莫过于4.3(a)重复应用驳回。很多团队只更换图标、APP名称、少量文案就打包提审,结果直接收到4.3拒信,白白浪费两三天审核周期,反复返工也找不到苹果判定高度相似的核心依据。市面上专门针对4.3风险检测的开源工具非常稀缺:商用混淆工具收费昂贵且逻辑不透明,没法自查混淆效果;海外工具适配国内多马甲场景很差;纯人工对比两套包的代码、资源,耗时长还极易遗漏关键相似特征。

fireplumewhite的博客 459
上一篇: VB Unescape
下一篇: MD5 for Assembler
vizee
博客等级 码龄16年 3粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值