码迷,mamicode.com
首页 > 其他好文 > 详细

md5 collision

时间:2017-06-29 15:20:47      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:set   get   amp   ref   input   bsp   inpu   lis   类型   

题目源代码:

 1 <?php
 2 $md51 = md5(‘QNKCDZO‘);
 3 $a = @$_GET[‘a‘];
 4 $md52 = @md5($a);
 5 if(isset($a)){
 6 if ($a != ‘QNKCDZO‘ && $md51 == $md52) {
 7     echo "nctf{*****************}";
 8 } else {
 9     echo "false!!!";
10 }}
11 else{echo "please input a";}
12 ?>

问题出在代码 $md51==$md52 上

PHP涉及比较内容时存在一个特点:

如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。当用 === 或 !== 进行比较时则不进行类型转换,因为此时类型和数值都要比对。

观察

$md51=md5(‘QNKCDZO‘)=0e830400451993494058024219903391=0

所以只需要得到一个MD5值为0exxxxxx如此的值就可。

答案:

aabg7XSs

240610708

 

md5 collision

标签:set   get   amp   ref   input   bsp   inpu   lis   类型   

原文地址:http://www.cnblogs.com/rlgy/p/7094281.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!