[SWPUCTF 2021 新生赛]easy_md5

题目

在这里插入图片描述

读代码

包含了flag2.php文件
判断是否有用户通过GET方法传递了name参数,以及通过POST方法传递了password参数
如果没有,就直接输出wrong!。
如果有,它就将这两个参数分别赋值给name和password变量,并进行以下判断:
如果name和password不相等,并且它们的MD5哈希值相等,就输出flag2.php文件中的内容。
这是一个逻辑漏洞,因为MD5哈希函数是不可逆的,但是存在碰撞的可能性,也就是说,不同的输入可能产生相同的输出。所以,如果用户能够找到两个不同的字符串,但是它们的MD5值相同,就可以通过这个判断。
否则,就输出wrong!。
两变量值不相等,md5计算散列值后相等的绕过方法
的绕过
PHP中
是判断值是否相等,若两个变量的类型不相等,则会转化为相同类型后再进行比较。PHP在处理哈希字符串的时候,它把每一个以0e开头并且后面字符均为纯数字的哈希值都解析为0。

===的绕过
===会比较类型,这个时候可以用到PHP中md5()函数无法处理数组(会返回NULL)来实现绕过
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值