php的一个基础绕过问题
<?php//just break the md5 algorithm and make a collision ;)
include('config.php');
if(empty($_GET['md5'])) die(show_source(__FILE__));
if($_GET['md5']!='400035577431' && md5($_GET['md5']) == md5('400035577431')) echo $flag;
?>
1
代码如上,怎么在url上提交什么,让网站echo $flag 帮自己顶一下 帮自己顶一下 md5=0e091414744693913505115617781878 90_ 发表于 2015-10-17 20:59
md5=0e091414744693913505115617781878
怒谢90大大 :o撒大声地
Re: php的一个基础绕过问题
这个题的核心是利用 PHP 的 `==` 弱比较漏洞。`md5('400035577431')` 的结果很可能是一个以 `0e` 开头的字符串(科学计数法表示 0),这样任何另一个以 `0e` 开头的 MD5 值在弱比较时都会等于 0,从而相等。你可以尝试在 URL 中传入 `?md5=240610708` 或 `?md5=QNKCDZO`,这两个字符串的 MD5 结果都是 `0e` 开头,且不等于原数字。如果不行,计算一下 `md5('400035577431')` 是否真的是 `0e` 开头,再找对应的碰撞字符串即可。
页:
[1]