[BJDCTF2020]Easy MD5-学习笔记
前置知识1、PHP 松散比较 vs 2、 0e 绕过正文一、代码审计md5函数知识点讲解二、构造请求参数三、PHP 松散比较四、构造数组实现MD5 绕过五、PHP 严格比较1、为什么 0e 绕过在这里失效2、为什么数组绕过仍然有效六、构造数组实现MD5 绕过前置知识1、PHP 松散比较vsPHP 有两种比较运算符松散比较只比较值会进行类型转换严格比较同时比较值和类型不会进行类型转换2、0e绕过当一个字符串的 MD5 哈希值形如0eXXXXXXXXX即0e开头后面全是数字PHP 的会把它当作科学计数法处理0e123在科学计数法中等于0 × 10¹²³0因此两个不同的0e开头的 MD5 值用比较结果都为true因为0 0经典0e碰撞对字符串MD5 值QNKCDZO0e830400451993494058024219903391s878926199a0e545993274517709034328855841020s155964671a0e342768416822451524974117254469s214587387a0e848240448830537924465865611904更简单的解法数组绕过:除了0e绕过还有更通用的数组绕过方法在 PHP 中md5(数组)→ 返回NULL因为md5()期望字符串参数传入数组会报错但返回NULLNULL NULL→true松散比较不同数组$a ! $b→true所以只需要传a[]1b[]2即可绕过。正文一、代码审计访问目标首页http://ceb7428be7b64f06d52ca0af.http-ctf2.dasctf.com:80/页面自动跳转到./leveldo4.php。访问./leveldo4.php响应头中包含一个提示Hint: select * from admin where passwordmd5($pass,true)页面是一个密码输入框提交的密码会经过md5($pass, true)处理后拼接到 SQL 查询中。md5函数知识点讲解md5($string, $raw_output)函数的第二个参数$raw_output默认false返回32 字符的十六进制字符串如d41d8cd98f00b204e9800998ecf8427e设为true返回16 字节的原始二进制数据可能包含不可见字符当md5($pass, true)的输出直接拼接到 SQL 查询时如果原始二进制数据中包含单引号等 SQL 特殊字符就可能造成 SQL 注入。因此我们需要找一个字符串它的 MD5 原始二进制值恰好构成 SQL 注入语句。经过前人验证字符串ffifdyop的 MD5 原始二进制值为 or 6É]é®ãR^ìÿ在 SQL 中解析后等效于select*fromadminwherepasswordor6É...由于6É...不为假 or 6É...结果为真从而绕过密码验证。其他可用字符串129581926211651571912466741651878684928→ MD5 raw:06da5430449f8f6f23dfc1276f722738但ffifdyop是最经典、最简洁的 payload。二、构造请求参数向./leveldo4.php发送 GET 请求参数为passwordffifdyopGET /leveldo4.php?passwordffifdyop HTTP/1.1 Host: ceb7428be7b64f06d52ca0af.http-ctf2.dasctf.com响应成功页面底部出现 JavaScript 重定向scriptwindow.location.replace(./levels91.php)/script三、PHP 松散比较访问./levels91.php页面 HTML 注释中泄露了 PHP 源码$a$_GET[a];$b$_GET[b];if($a!$bmd5($a)md5($b)){// wow, glzjin wants a girl friend.条件要求$a ! $b两个值不相等松散比较md5($a) md5($b)两个值的 MD5 哈希松散相等四、构造数组实现MD5 绕过向./levels91.php发送 GET 请求使用数组绕过GET /levels91.php?a[]1b[]2 HTTP/1.1 Host: ceb7428be7b64f06d52ca0af.http-ctf2.dasctf.com响应中出现 JavaScript 重定向scriptwindow.location.replace(./levell14.php)/script五、PHP 严格比较访问./levell14.php页面直接显示了 PHP 源码?phperror_reporting(0);includeflag.php;highlight_file(__FILE__);if($_POST[param1]!$_POST[param2]md5($_POST[param1])md5($_POST[param2])){echo$flag;}条件要求$_POST[param1] ! $_POST[param2]严格不相等类型和值都不同md5($_POST[param1]) md5($_POST[param2])MD5 哈希严格相等1、为什么0e绕过在这里失效严格比较要求类型和值都相等0e830400451993494058024219903391 0e545993274517709034328855841020→false即使它们数值上都是 0但字符串内容不同严格比较会直接返回false2、为什么数组绕过仍然有效当 PHP 的md5()函数接收到数组参数时PHP 会抛出警告Warning但仍然返回NULLmd5($_POST[param1])→NULLmd5($_POST[param2])→NULLNULL NULL→true类型相同NULL值相同NULL同时$_POST[param1] ! $_POST[param2]→true两个不同的数组因为$a array(0 1)和$b array(0 2)是两个不同的数组对象因此数组绕过对同样有效六、构造数组实现MD5 绕过向./levell14.php发送 POST 请求使用数组绕过POST /levell14.php HTTP/1.1 Host: ceb7428be7b64f06d52ca0af.http-ctf2.dasctf.com Content-Type: application/x-www-form-urlencoded Content-Length: 21 param1[]1param2[]2响应体中成功输出 Flag。

相关新闻

2026这6款硬核降AI率网站全揭秘,一键把AI检测率精准控到安全区!

2026这6款硬核降AI率网站全揭秘,一键把AI检测率精准控到安全区!

步入 2026 年,学术界的风向早已悄然转变。曾经只需盯着查重率的焦虑,如今已被“降 AIGC 率”的紧迫感彻底取代。AI 检测技术愈发精准,高校的审核标准也不断加码,论文再怎么精雕细琢,只要带着 AI 痕迹,就可能…

2026/8/2 4:34:08 阅读更多 →
去AI痕迹怎么操作?2026年论文AI率从70%降到8%的实测记录

去AI痕迹怎么操作?2026年论文AI率从70%降到8%的实测记录

「您的论文AIGC疑似度70%」——看到这个结果,很多人的第一反应是逐句手动改。改到凌晨三点,复查还有45%,崩溃。2026年各高校和期刊的AIGC检测越来越严,「去AI痕迹」成了论文收尾的刚需环节。我记录了自己把AI率从70%降到8%的全过程…

2026/8/2 4:34:08 阅读更多 →
PyTorch模型在NPU上训练:从环境搭建到性能调优实战指南

PyTorch模型在NPU上训练:从环境搭建到性能调优实战指南

1. 项目概述:当PyTorch遇上NPU最近在折腾一个图像分类的项目,手头正好有一台搭载了华为昇腾310 NPU的开发板。想着现在AI推理端侧化是大趋势,如果能直接在NPU上训练模型,岂不是能省去从GPU训练到NPU转换的繁琐流程?于是…

2026/8/2 4:34:08 阅读更多 →

最新新闻

从零打造MP3播放器:Arduino/ESP32硬件解码与嵌入式音频开发实践

从零打造MP3播放器:Arduino/ESP32硬件解码与嵌入式音频开发实践

1. 项目概述:从“听个响”到“玩出花”,聊聊DIY MP3播放器的那些事儿十几年前,MP3播放器还是人手一个的数码潮品,如今它似乎被手机“集成”了。但对我们这些喜欢动手折腾的人来说,用一块小小的开发板,从零开…

2026/8/2 5:13:23 阅读更多 →
家用艺术涂料选购与施工全攻略:新手也能避开90%的坑

家用艺术涂料选购与施工全攻略:新手也能避开90%的坑

“墙面装修别再被高价工艺迷惑!家用艺术涂料比乳胶漆耐用5-8年,15年不褪色,关键看环保认证和适配场景。这份攻略用20个问答帮你避开选购雷区,装出既美又实用的理想墙面。” 内容由AI智能生成 有用 “家用艺术涂料不是越贵越好&…

2026/8/2 5:13:23 阅读更多 →
嵌入式显示实战:11.9英寸HDMI LCD选型、驱动与抗干扰设计全解析

嵌入式显示实战:11.9英寸HDMI LCD选型、驱动与抗干扰设计全解析

1. 项目缘起:为什么是11.9英寸HDMI LCD?最近在折腾一个嵌入式显示项目,选型时在众多屏幕里挑花了眼。最终,一块11.9英寸、通过HDMI接口驱动的LCD屏幕进入了我的视野,并成为了项目的核心。你可能想问,市面上…

2026/8/2 5:13:23 阅读更多 →
微客外链功能解析:抖音_快手私信跳转微信的实现原理与技术路径

微客外链功能解析:抖音_快手私信跳转微信的实现原理与技术路径

微客外链功能解析:抖音/快手私信跳转微信的实现原理与技术路径 微客外链支持通过抖音、快手官方私信卡片,以及短信、浏览器等通用渠道,将用户引导至微信生态内指定入口——包括个人微信扫码添加页、企业微信联系页、微信群二维码页。该能力基…

2026/8/2 5:13:23 阅读更多 →
从 OpenRouter 看 AI 模型路由层:技术架构与中小开发者的切入思路

从 OpenRouter 看 AI 模型路由层:技术架构与中小开发者的切入思路

📌 本文是一篇技术案例分析。文中涉及的融资与经营数据均来自公开报道,部分数据为媒体披露口径,引用时已做标注,仅供技术讨论与架构参考。 2026 年 5 月 28 日,AI 模型聚合平台 OpenRouter​ 官方宣布完成 1.13 亿美元 B 轮融资,由 Alphabet 旗下成长基金 CapitalG 领投…

2026/8/2 5:13:23 阅读更多 →
深度 | AI Agent的可靠性危机:当34%端到端成功率撞上规模化部署

深度 | AI Agent的可靠性危机:当34%端到端成功率撞上规模化部署

AI Agent的可靠性危机:当34%端到端成功率撞上规模化部署 一、执行摘要 2026年7月最后一周,AI Agent行业在"规模化部署"和"可靠性崩溃"之间撞上了一堵墙。 一面是部署数量的狂飙——Tata Steel 300 Agent覆盖全球价值链 [A]、Cogni…

2026/8/2 5:12:23 阅读更多 →

日新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →