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

CTF-[Web] MD5解题思路 最近练习了一些CTF中关于md5绕过的题目,总结了几种思路,本质没有太大变化,就是各种组合绕过,也是比较考察基础的,前段时间太摆烂了,好久没有更新了,革命尚未成功,同志仍需努力!!! 阅读详情


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=
CTF入门之md5 一道很综合的md5的题 一共有三关 1.md5(s,true) 在响应头中发现 select * from 'admin' where password=md5($pass,true) 可以看到md5函数第二个参数是True,意为返回原始16字符二进制格式。 也就是说如果md5值经过hex转成字符串后为 ‘or’+balabala这样的字符串 目的就是让md5函数的结果为true 这里提供一个最常用的:ffifdyop,该字符串md5加密后若raw参数为True时会返回 'or’6 (其实就是一些乱码和 阅读详情

相关推荐

PHP中的MD5()函数漏洞

文章目录1. MD5函数漏洞2.PHP特性3.MD5碰撞 1. MD5函数漏洞 $_GET['a'] != $_GET['b'] && MD5($_GET['a']) == MD5($_GET['b']) 要让上面的等式成立,a和b的值不能相等,但是md5后的值相等。因为是==比较,只判断值是否相等,不判断类型是否相同。如果类型不同先转换为相同类型再进行比较而PHP在处理哈希字...

John_lain的博客 4128

ctfMD5绕过详细总结及例题[BJDCTF2020]Easy MD5

MD5()函数简单了解及ctf中常见绕过技巧,结尾附加例题。

m0_56691564的博客 5988

2024年CTF-[Web] MD5解题思路_md5绕过题,看完这一篇就够了

”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0(当成科学计数法进行处理),所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。题目中,要求两个字符串值不能相等,但是两个字符串经过md5加密后的值需要相等,通过上面PHP 0e漏洞的原理,也就将此题转化成 ==> 寻找两个值加密后以0e开头,且0e后面是纯数字的字符串即可,可以使用Python写个程序或者直接在网上搜。对于从来没有接触过网络安全的同学,我们帮你准备了详细的。

2401_84265972的博客 1221

MD5算法

应用: 用于密码管理 当我们需要保存某些密码信息以用于身份确认时,如果直接将密码信息以明码方式保存在数据库中,不使用任何保密措施,系统管理员就很容易能得到原来的密码信息,这些信息一旦泄露, 密码也很容易被破译。为了增加安全性,有必要对数据库中需要保密的信息进行加密,这样,即使有人得到了整个数据库,如果没有解密算法,也不能得到原来的密码信息。MD5算法可以很好地解决这个问题,因为它可以将任意长度的输入串经过计算得到固定长度的输出,而且只有在明文相同的情况下,才能等到相同的密文,并且这个算法是不可逆的,即便

m0_37925407的博客 891

md5 php 绕过,ctfMD5 绕过的一些思路

1. 常规的0e绕过QNKCDZO240610708s878926199as155964671as214587387as214587387a这些字符串的md5值都是0e开头,在php弱类型比较中判断为相等12. 数组绕过如下代码var_dump(md5($_GET['a'])==md5($_GET['b']))1传入a[]=a&b[]=b1虽然会报错,但是判断为真可以看到,...

weixin_34081553的博客 1187

2024年CTF-[Web] MD5解题思路_md5绕过

— | — |string| 必需。规定要计算的字符串。raw| 可选。规定十六进制或二进制输出格式: TRUE - 原始 16 字符二进制格式 FALSE - 默认 32 字符十六进制数 |具体使用方法,可以参考。

2401_84254087的博客 1178

最新CTF-[Web] MD5解题思路_md5绕过题,2024年最新网络安全中高级面试题

本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!

2301_82257383的博客 1029

最新CTF-[Web] MD5解题思路_md5绕过题(1),2024年最新面试竟然被这31道网络安全基础题难倒了

本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!

2301_82257383的博客 1358

CTF】关于md5总结

md5:一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。原理:MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。应用用于密码管理。

网络安全 671

网络安全最新CTF-[Web] MD5解题思路_md5绕过题(2),带你全面掌握高级知识点

题目中,要求两个字符串值不能相等,但是两个字符串经过md5加密后的值需要相等,通过上面PHP 0e漏洞的原理,也就将此题转化成 ==> 寻找两个值加密后以0e开头,且0e后面是纯数字的字符串即可,可以使用Python写个程序或者直接在网上搜。PHP在攻击者可以利用这一漏洞,通过输入一个经过哈希后以”0E”开头的字符串,即会被PHP解释为0,如果数据库中存在这种哈希值以”0E”开头的密码的话,他就可以以这个用户的身份登录进去,尽管并没有真正的密码。全等运算符“===”,既比较值又比较类型,题目中“!

2401_84132685的博客 296

BUUCTF-Web

输入ip=127.0.0.1后有回显输入127.0.0.1|ls发现存在两个文件,对flag.php进行访问,?空格被过滤掉了,尝试绕过空格的方法发现大括号被过滤了flag也被过滤掉了尝试访问另一个文件,index.phpa=g;啥也没有,查看源码,得到flag内联函数:将指定的函数体插入并取代每一处调用该函数的地方。反引号在linux中作为内联执行,执行输出结果。也就是说cat `ls` 执行ls输出 index.php 和 flag.php。然后再执行 cat flag.php。

2301_80125214的博客 1263

强迫自己学习计算机打卡第一天MD5绕过和上传木马

距离毕业已经快三个月了,还是没有动力去踏足网安领域,但是要是再这么继续颓废下去肯定是不行的,所以让我们浅浅的强迫自己一下吧。今天的学期内容主要是靶场相关的信息,让我们看看吧。

qq_61726551的博客 920

CTF——MD5总结

文章目录1.MD5简介2.弱类型比较的MD5绕过3.强类型比较的MD5绕过4.MD5构造攻击语句 1.MD5简介 MD5是一种常见的加密方式,但准确来说,它只是一种编码方式,它将任意有限长度的字符串通过哈希函数转换为特定长度的字符串。 MD5编码具有单向性,即由明文变密文简单,由密文变明文困难。 破解时只能通过暴力破解即穷举法 所以基于这个特性,MD5可以有效保证信息的完整性,当文件进行一点点的修改,MD5值都会有很大的改变。 MD5生成的密文由2进制表示——128位构成 由16进制表示——32位(大小写

aoao331198的博客 3117

PHP漏洞之md5()

本文参考 本文总结一下常见的PHP之一md5() 开始前先补充我们这一课所需要的知识。 PHP’==‘与’= = ='的区别。 PHP‘= =’ 与‘===’的区别,在我们使用= =号是时后的两个变量只要求数值相同例如A=123 B=‘123’当进行判断时A= =B是为真虽然他们的类型并不相同但当我们使用A= = =B进行判断时返回值却为假,因为两个变量的类型并不相同。所以我们把‘= = ’称为弱比较‘= = =’称为强比较具体的绕过方法我们再接下来的例子再进行讲解。 下面我们进入第一种PHP的弱比较 if

dogeace的博客 1515

【超全总结】CTF常见的MD5绕过漏洞和应对方法

$str1 = $_GET['str1'];$str2 = $_GET['str2'];if (md5($str1) == md5($str2)){die('OK'); } php弱类型比较产生的漏洞 想要满足这个判断只需要构造出MD5值为0e开头的字符串,这样的话弱类型比较会认为是科学技术法,0的多少次方都是0,因此可以绕过 有一些字符串的MD5值为0e开头,这里记录一下 QNKCDZO 240610708 s878926199a s155964671a s2145

M0nH1N的博客 7653

PHP安全相关知识

PHP安全相关知识

wanan的博客 3万+

PHP代码安全【PHP弱口令、加密函数、绕过函数】/CTF代码审计题

1、判等类型 1.1、”==”与”===”比较漏洞/switch 如果你认为“==”和"==="最大的区别在于,“==”是判断数值是否相等,“===”则是判断数值和类型是否相等,那就错了,这并没有说到最核心的一个关键点,要知道“==”最可怕的一点是,如果类型不同的进行比较,其会将类型转换成相同的再进行比较 <?php   var_dump("admin" ==0); var_dump("1...

洞若观火 1853

CTF中常见的MD5运用

CTF中常见的MD5运用

lubai60060的博客 1686
上一篇: 极客巅峰 2020 babyphp2(phar反序列化)
下一篇: php 命令执行中 PHPSESSID 妙用
yจุ๊บng
博客等级 码龄7年 54粉丝 24原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值