总结ctf中 MD5 绕过的一些思路

2023-10-27


1. 常规的0e绕过

  • QNKCDZO
  • 240610708
  • s878926199a
  • s155964671a
  • s214587387a
  • s214587387a
这些字符串的 md5 值都是 0e 开头,在 php 弱类型比较中判断为相等

2. 数组绕过

如下代码

var_dump(md5($_GET['a']) == md5($_GET['b']))

传入

a[]=a&b[]=b 

虽然会报错,但是判断为真
在这里插入图片描述

可以看到,MD5一个数组返回了null,null==null,成功绕过


3. 强类型绕过

if((string)$_POST['a'] !== (string)$_POST['b'] && md5($_POST['a']) === md5($_POST['b']))

[安洵杯 2019]easy_web(buu有环境) 的源码,第一次遇到这个,我直接懵逼

上面的方法都不能用了,百度了一番才知道还有强类型绕过(这应该是md5碰撞了)

payload如下:

a=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2
&b=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2

进行url解码后的MD5值相等
在这里插入图片描述
收录一些MD5值相等的字符串

$Param1="\x4d\xc9\x68\xff\x0e\xe3\x5c\x20\x95\x72\xd4\x77\x7b\x72\x15\x87\xd3\x6f\xa7\xb2\x1b\xdc\x56\xb7\x4a\x3d\xc0\x78\x3e\x7b\x95\x18\xaf\xbf\xa2\x00\xa8\x28\x4b\xf3\x6e\x8e\x4b\x55\xb3\x5f\x42\x75\x93\xd8\x49\x67\x6d\xa0\xd1\x55\x5d\x83\x60\xfb\x5f\x07\xfe\xa2";
$Param2="\x4d\xc9\x68\xff\x0e\xe3\x5c\x20\x95\x72\xd4\x77\x7b\x72\x15\x87\xd3\x6f\xa7\xb2\x1b\xdc\x56\xb7\x4a\x3d\xc0\x78\x3e\x7b\x95\x18\xaf\xbf\xa2\x02\xa8\x28\x4b\xf3\x6e\x8e\x4b\x55\xb3\x5f\x42\x75\x93\xd8\x49\x67\x6d\xa0\xd1\xd5\x5d\x83\x60\xfb\x5f\x07\xfe\xa2";

$data1="\xd1\x31\xdd\x02\xc5\xe6\xee\xc4\x69\x3d\x9a\x06\x98\xaf\xf9\x5c\x2f\xca\xb5\x07\x12\x46\x7e\xab\x40\x04\x58\x3e\xb8\xfb\x7f\x89\x55\xad\x34\x06\x09\xf4\xb3\x02\x83\xe4\x88\x83\x25\xf1\x41\x5a\x08\x51\x25\xe8\xf7\xcd\xc9\x9f\xd9\x1d\xbd\x72\x80\x37\x3c\x5b\xd8\x82\x3e\x31\x56\x34\x8f\x5b\xae\x6d\xac\xd4\x36\xc9\x19\xc6\xdd\x53\xe2\x34\x87\xda\x03\xfd\x02\x39\x63\x06\xd2\x48\xcd\xa0\xe9\x9f\x33\x42\x0f\x57\x7e\xe8\xce\x54\xb6\x70\x80\x28\x0d\x1e\xc6\x98\x21\xbc\xb6\xa8\x83\x93\x96\xf9\x65\xab\x6f\xf7\x2a\x70";
$data2="\xd1\x31\xdd\x02\xc5\xe6\xee\xc4\x69\x3d\x9a\x06\x98\xaf\xf9\x5c\x2f\xca\xb5\x87\x12\x46\x7e\xab\x40\x04\x58\x3e\xb8\xfb\x7f\x89\x55\xad\x34\x06\x09\xf4\xb3\x02\x83\xe4\x88\x83\x25\x71\x41\x5a\x08\x51\x25\xe8\xf7\xcd\xc9\x9f\xd9\x1d\xbd\xf2\x80\x37\x3c\x5b\xd8\x82\x3e\x31\x56\x34\x8f\x5b\xae\x6d\xac\xd4\x36\xc9\x19\xc6\xdd\x53\xe2\xb4\x87\xda\x03\xfd\x02\x39\x63\x06\xd2\x48\xcd\xa0\xe9\x9f\x33\x42\x0f\x57\x7e\xe8\xce\x54\xb6\x70\x80\xa8\x0d\x1e\xc6\x98\x21\xbc\xb6\xa8\x83\x93\x96\xf9\x65\x2b\x6f\xf7\x2a\x70";

在这里插入图片描述


4. $a==md5($a)

0e215962017 的 MD5 值也是由 0e 开头,在 PHP 弱类型比较中相等


5. md5 与SQL注入

buu easy_md5

当 md5 函数的第二个参数为 true 时,返回为 字符串

一个特殊的 md5 值:ffifdyop
在这里插入图片描述


$a !== $b && md5($a) === md5($b) && sha1($a) === sha1($b)

利用 Exception 类中的 __toString() 方法返回的字符串相同,返回值只有第一个参数和行号可变,所以只要保持第一个参数相同且在同一行实例化,就能保证 a、b 作为字符串使用的时候相等,但是如果第二个参数(int)不同,他们作为对象比较时就不相等,可以满足上面的条件

php5:
php5 中不能直接执行变量 a、b,继续看 php7
在这里插入图片描述

php7:
php7 正常执行
在这里插入图片描述
php5中可以看作执行如下文件

<?php
	exception 'Exception' with message 'phpinfo(); 
?>

显然不是一个合法的 php 文件

继续看 php7

<?php
	Exception:
		phpinfo();
	
	//goto Exception;
?>

为了便于理解,我加了一个 goto 的注释,也就是说 Exception 被当作了标签,是合乎 php 语法的,可以被正常运行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

总结ctf中 MD5 绕过的一些思路 的相关文章

  • VulnHub实战篇六:Me And My Girlfriend靶机渗透记录

    0x00靶机信息 下载地址 下载地址 攻击机ip 172 16 12 137 靶机ip 172 16 12 141 目标 getshell 获取两个flag 并提权至root 0x01过程 首先识别一下目标开启的端口和服务 可以看到目标开启
  • 攻防世界-re-for-50-plz-50

    1 下载附件 exeinfo查壳 无壳 2 32位IDA分析 主函数分析 在注释里 31的来源 python和C语言 a cbtcqLUBChERV Nh X D X YPV CJ print len a include
  • CTFshow 信息收集 web 6 7 8 9 10

    目录 第六关 提示 flag 第七关 提示 知识点 flag 第八关 提示 知识点 flag 第九关 提示 知识点 flag 第十关 提示 flag 第六关 提示 解压源码到当前目录 测试正常 收工 这道题考的是备份文件www zip 根据
  • BUUCTF系列 // [极客大挑战 2019] LoveSQL

    前言 本题知识点 SQL注入 WP 这题居然是个连续剧 首先尝试使用上一题的解法绕过看看 上一题 WP 的 传送门 结果如下 注意到密码有些奇怪 尝试着用 MD5 解码失败 也没啥思路 最后事实证明确实也用不到这玩意 故回到 SQL 注入上
  • 2020ciscn wp

    目录 1 签到电台 2 基于挑战码的双向认证 1 2 3 web Ezpo 4 基于挑战码的双向认证3 5 ISO9798 6 问卷调查 7 ez usb 8 login nomal 1 签到电台 操作内容 根据公众号提示 知道了模十的算法
  • ctf.show web入门(信息搜集) 1~20

    目录 web1 源码 web2 源码 web3 抓包 web4 robots web5 index phps web6 解压源码泄露 web7 git泄露 web8 svn泄露 web9 vim缓存 web10 cookie web11 域
  • [羊城杯 2020]A Piece Of Java

    羊城杯 2020 A Piece Of Java 文章目录 羊城杯 2020 A Piece Of Java 源码分析 从后往前测试 逐步写exp 构造DatabaseInfo类对象 InfoInvocationHandler 动态代理 序
  • CTF中那些脑洞大开的编码和加密

    0x00 前言 正文开始之前先闲扯几句吧 玩CTF的小伙伴也许会遇到类似这样的问题 表哥 你知道这是什么加密吗 其实CTF中脑洞密码题 非现代加密方式 一般都是各种古典密码的变形 一般出题者会对密文进行一些处理 但是会给留一些线索 所以写此
  • MATRIX: 1 ctf challenge

    MATRIX 1 About Release Back to the Top Name Matrix 1 Date release 19 Aug 2018 Author Ajay Verma Series Matrix Download B
  • ctfshow_web149

    打开容器
  • BUUCTF[强网杯 2019]随便注 的三种解法

    文章目录 尝试注入 解题思路1 解题思路2 解题思路3 知识点总结 打开后题目是这样的 尝试注入 1 测试 1 or 1 1 初步判定存在SQL注入 1 or 1 1 再测试字段数 到3时报错 说明字段数为2 1 order by 1 接着
  • [CTF/网络安全] 攻防世界 disabled_button 解题详析

    CTF 网络安全 攻防世界 disabled button 解题详析 input标签 姿势 disable属性 总结 题目描述 X老师今天上课讲了前端知识 然后给了大家一个不能按的按钮 小宁惊奇地发现这个按钮按不下去 到底怎么才能按下去呢
  • Burp Suit+Phpstudy+Pikachu搭建Web安全练习环境

    1 软件安全测试工具Burp Suit安装 1 1 社区版 进入官网 Download Burp Suite Community Edition PortSwigger 进行下载安装即可 1 2 专业版 搜索Burp Suit2 0 11从
  • CTF入门学习笔记——Crypto密码(古典密码)

    文章目录 CTF入门学习笔记 Crypto密码 古典密码 凯撒密码 看我回旋踢 摩斯密码 摩斯 维吉尼亚密码 Vigen re 栅栏密码 篱笆墙的影子 栅栏密码 篱笆墙的影子 猪圈密码 待补充 CTF入门学习笔记 Crypto密码 古典密码
  • 强网杯 2019]随便注 【SQL注入】四种解法

    题目简介 题目名称 强网杯 2019 随便注 1 题目平台 BUUCTF 题目类型 Web 考察知识点 SQL注入 解题步骤 方法一 首先启动并访问靶机 有一个输入框 随便输入1 or 1 1 测试一下是否存在sql注入 提交后提示erro
  • 攻防 & 渗透 & Kali笔记(持续更新)

    0x00 写在前面 本来是记录kali用法的一篇文章 后来就慢慢变成了记录攻防 渗透测试 Kali用法的文章了 本来信息安全就涉及到方方面面就是个大杂烩 0x01 John the Ripper john爆破需要一个shadow文件 推荐使
  • 全国大学生信息安全竞赛真题(CTF)

    web篇 https blog csdn net csu vc article details 78011716 https www cnblogs com iamstudy articles 2017 quanguo ctf web wr
  • [SHCTF 2023]——week1-week3 Web方向详细Writeup

    Week1 babyRCE 源码如下
  • 我如何检查 base64 字符串是否是文件(什么类型?)?

    我参加了 Spentalkux 挑战https 2020 ractf co uk https 2020 ractf co uk 这是我第一次参加CTF挑战 所以我解决了https github com W3rni0 RACTF 2020 b
  • 通过 url 将整数传递给 php $_GET

    所以我正在做一些 CTF 挑战之一是关于 php 类型杂耍 代码看起来像这样 if GET var1 hash md4 GET var1 print flag 所以我 80 确定我需要传入一个整数 这样它就会是真的 但我能操作的只是 url

随机推荐

  • Android中Fragment的hide和show的一些技巧

    我们App中主页是四个Fragment 通过RadioGroup的onCheckChanged来调用show和hide实现主页面Fragment的切换 此时就有一个问题就是 我们需要知道每一个Fragment的生命周期 此时就可以重写 Ov
  • 接受拖放文件

    需要重载类的WM DROPFILE消息 接受拖放的文件并显示路径与文件名的示例 void CYuEdit OnDropFiles HDROP hDropInfo TODO Add your message handler code here
  • linux-vsprintf.c

    linux kernel vsprintf c 对参数产生格式化的输出 C 1991 Linus Torvalds vsprintf c Lars Wirzenius Linus Torvalds Wirzenius wrote this
  • Java一个属性依赖于另外一个属性的值

    一个java类中的一个属性最开始需要从另外一个属性的值得到 现在举例如下 最简单的例子 判断是否成功 Data ApiModel description 返回结果集 public class ReturnResult
  • 人工神经网络的基本模型,神经网络解剖学模型图

    神经网络是什么 神经网络可以指向两种 一个是生物神经网络 一个是人工神经网络 生物神经网络 一般指生物的大脑神经元 细胞 触点等组成的网络 用于产生生物的意识 帮助生物进行思考和行动 人工神经网络 Artificial Neural Net
  • plsql显示不出来服务器,求救:PLSQL调用webservice服务器端获取不到值

    我使用的是UTL DBWS包去调用webservice 现在我测试可以通过调用 但是发现服务器端获取不到值我贴下我的代码 create or replace procedure pro trig test is service utl db
  • 5-Java 泛型

    5 泛型 泛型的本质是参数化类型 也就是说所操作的数据类型被指定为一个参数 5 1 泛型方法 在调用时可以接收不同类型的参数 每一个类型参数声明部分包含一个或多个类型参数 参数间用逗号隔开 类型参数能被用来声明返回值类型 泛型方法体的声明和
  • 50个java编程程序之四

    程序 31 题目 将一个数组逆序输出 import java util public class lianxi31 public static void main String args Scanner s new Scanner Syst
  • python对字符串进行加密_python学习:实现将字符串进行加密

    题目描述 1 对输入的字符串进行加解密 并输出 2加密方法为 当内容是英文字母时则用该英文字母的后一个字母替换 同时字母变换大小写 如字母a时则替换为B 字母Z时则替换为a 当内容是数字时则把该数字加1 如0替换1 1替换2 9替换0 其他
  • UE4 图表插件使用文档

    UE4图表插件使用文档 插件概述 插件获取 插件演示 插件配置 插件使用 创建图表控件 控件调节属性 备注 插件概述 SCUI插件是一套UnrealEngine的UMG图表插件 初衷是为了快速制作智慧城市项目 解决复杂数据展示的难点 简化数
  • 蓝色版去水印小程序源码+接口

    介绍 蓝色版小程序源码 接口 网盘下载地址 http kekewangLuo net edaLtfZJUE40 图片
  • C++在线五子棋对战(网页版)项目:websocket协议

    目标 认识理解websocket协议 websocket切换过程和websocket协议格式 认识和学会使用websocketpp库常用接口 了解websocketpp库搭建服务器流程 认识和学会使用websocketpp库bin接口 最后
  • HTML标签marquee实现文字,图片等滚动效果

    HTML标签marquee实现文字 图片等滚动效果 页面的自动滚动效果 可由javascript来实现 也可以由一个html标签 就可以实现多种滚动效果 无需js控制 使用marquee标记不仅可以移动文字 也可以移动图片 表格等 语法 说
  • maven集成tomcat插件以及乱码解决

    Maven已经是Java的项目管理标配 如何在JavaEE开发使用Maven调用Web应用 是很多同学关心的问题 本文将介绍 Maven如何介绍Tomcat插件 Maven Tomcat插件现在主要有两个版本 tomcat maven pl
  • csdn博客推荐系统实战-5文本聚类-话题模型LDA

    话题模型topic model是自然语言处理领域里面热门的一个技术 可以用来做很多的事情 例如相似度比较 关键词提取 分类 还有就是具体产品业务上的事了 总之可以干很多的事情 今天不会讲LDA模型的很多细节和原理 没有满屏的数学公式 只讲一
  • OpenGL光源位置

    一 OpenGL光源简介 OpenGL提供了多种形式的光源 如点光源 平行光源和聚光灯光源等 所有光源都使用 glLight 接口来设置光源属性 其中包括 glLight if 和 glLight if v 两类 1 示例光源 GLfloa
  • 下载好unity后打开出现这个弹窗怎么解决

    unity我重新下了两遍 始终出现这个弹窗 无法打开unity 始终找不到许可 急求 谢谢
  • Matlab 中三角函数

    Matlab 中三角函数 atan2 基本数学函数 abs 绝对值 acos 反余弦 acosh 反双曲余弦函数 acot 反余切 acoth 反双曲线余切 acsc 反余割 acsch 反双曲线余割 angle 相位角 asec 反正割
  • Materials Studio工具模块介绍

    相关教程和破解版软件包下载链接为 https blog csdn net qwxwaty article details 80402505 各模块细节介绍 Materials Visualizer Materials visualizer
  • 总结ctf中 MD5 绕过的一些思路

    总结ctf中 MD5 绕过的一些思路 1 常规的0e绕过 2 数组绕过 3 强类型绕过 4 a md5 a 5 md5 与SQL注入 a b md5 a md5 b sha1 a sha1 b 1 常规的0e绕过 QNKCDZO 24061