md5加密相等绕过

0x01

<?php
$md51 = md5('QNKCDZO');
$a = @$_GET['a'];
$md52 = @md5($a);
if(isset($a)){
	if ($a != 'QNKCDZO' && $md51 == $md52) {
		echo "flag{*}";
} else {
	echo "false!!!";
}}
else{
	echo "please input a";}
?>

0x02代码分析

变量a的值不等于QNKCNZO,但变量a与其值的md5值相等,输出flag

QNKCDZO加密后为0e830400451993494058024219903391
php把以0E/0e开头的哈希值解释为0
所以找到一个oe开头的哈希值绕过

s878926199a
0e545993274517709034328855841020

http://123.206.87.240:9009/13.php?a=s878926199a

参考链接:
https://www.cnblogs.com/gaonuoqi/p/11408083.html

原文地址:https://www.cnblogs.com/observering/p/12831453.html