链接 http://ctf.nuptsast.com/challenges#md5%20collision

题解 https://www.jianshu.com/p/9d541241b1d7

<?php
$md51 = md5('QNKCDZO');     //QNKCDZO的md5值为0e830400451993494058024219903391
$a = @$_GET['a'];
$md52 = @md5($a);
if(isset($a)){
if ($a != 'QNKCDZO' && $md51 == $md52) {   //需要找一个a不等于 QNKCDZO   但是两者md5相等  但不是完全相等 关于== http://zjw.dropsec.xyz/%E4%BB%A3%E7%A0%81/2016/10/09/php%E5%BC%B1%E7%B1%BB%E5%9E%8B.htmlecho "nctf{*****************}";
} else {echo "false!!!";                        //echo  输出
}}
else{echo "please input a";}
?>

网上搜索 php == 判断md5
发现文章:php弱类型中提到如下问题:

一个数字和一个字符串进行比较,PHP会把字符串转换成数字再进行比较。PHP转换的规则的是:若字符串以数字开头,则取开头数字作为转换结果,若无则输出0。例如:123abc转换后应该是123,而abc则为0,0==0这当然是成立的啦!所以,0 ==’abc’是成立的。当有一个对比参数是整数的时候,会把另外一个参数强制转换为整数。

  1.php使用==比较数字和字符串时,将字符串转换成数字后与数字进行比较。

2.php字符串转换成数字的规则是:

    字符串以数字开头:取前面的数字

    字符串不以数字开头:0

  3.上一点也是这道题的另一种思路。找到另一个字符串,这个字符串的md5值也以0e开头。参考:md5值以0e开头的字符串

参考   http://zjw.dropsec.xyz/%E4%BB%A3%E7%A0%81/2016/10/09/php%E5%BC%B1%E7%B1%BB%E5%9E%8B.html

  https://blog.csdn.net/anzhuangguai/article/details/70049960

找到的详细解释:

php关于==号是这样处理的,如果一边是整型,另一边也需要是整型。

0e545993274517709034328855841020

这是一个整数,在php里是理解为0*10^4549...20的意思,那么其值是0

同样

0e342768416822451524974117254469

这是一个整数,在php里是理解为0*10^34..69的意思,那么其值是0

举一个反面的例子

1e1和1e2

1e1 == 1e2 这个结果是对是错?

这里1e1=1*10^1=10

1e2=1*10^2=100

所以1e1 == 1e2这是false,但是

100 == 1e2 这是true,为什么1e2先转为整型,是100

注意,对于e是指幂次。而其他26字符并不具有此能力。
---------------------
原文:https://blog.csdn.net/anzhuangguai/article/details/70049960

转载于:https://www.cnblogs.com/islsy/p/10654277.html

南邮 md5 collision相关推荐

  1. 南邮ctf-web的writeup

    WEB 签到题 nctf{flag_admiaanaaaaaaaaaaa} ctrl+u或右键查看源代码即可.在CTF比赛中,代码注释.页面隐藏元素.超链接指向的其他页面.HTTP响应头部都可能隐藏f ...

  2. 南邮 CTF平台部分 write up

    #南邮 CTF部分 write up CG-CTF 2018.7 Welcome to http://aiqg.vip/ web md5 collision 看源代码 <?php $md51 = ...

  3. mysql 南邮ctf_南邮ctf之web之wp

    下面是所有现在可以做的web题的wp! 建议使用CTRL+F查找所需题目,我都有标注!这样方便! 1.签到题 直接查看源码即可 2.md5 collision 解读代码: $md51 = md5('Q ...

  4. 南邮CTF密码学write up

    南邮CTF练习平台网址: http://ctf.nuptzj.cn/challenges# 1.esay! base64解密不解释 nctf{this_is_base64_encode} 2.KeyB ...

  5. ctf wav文件头损坏_【CTF入门第二篇】南邮CTF web题目总结

    这几天写了南邮的web题目,都比较基础,但是对我这个小白来说还是收获蛮大的.可以借此总结一下web题的类型 一,信息都藏在哪 作为ctf题目,肯定是要有些提示的,这些提示有时会在题目介绍里说有时也会隐 ...

  6. 南邮CTF--bypass again

    南邮CTF--bypass again 提示:依旧弱类型,来源hctf 解析: 源代码: if (isset($_GET['a']) and isset($_GET['b'])) {​ if ($_G ...

  7. 南邮CG-CTF—杂项Misc writeup

    南邮CG-CTF-杂项Misc writeup Coding Gay 丘比龙De女神 知识点:文件MD5 Remove Boyfriend MD5 图种 注意!! 南邮CG-CTF链接 Coding ...

  8. 南邮CTF web题目总结

    这几天写了南邮的web题目,都比较基础,但是对我这个小白来说还是收获蛮大的.可以借此总结一下web题的类型 一,信息都藏在哪 作为ctf题目,肯定是要有些提示的,这些提示有时会在题目介绍里说有时也会隐 ...

  9. “亚信科技杯”南邮第七届大学生程序设计竞赛之网络预赛 (K L题解)

    "亚信科技杯"南邮第七届大学生程序设计竞赛之网络预赛 (K L题解) 第一次出题,果然背锅了,L题由于数据问题,让两种不对的方法ac了,分别是:H<0时取前一天送上花(应该是 ...

最新文章

  1. HYSBZ 1503 郁闷的出纳员 伸展树
  2. PXE启动芯片出错代码表、初始化/引导/载入Bootstrap错误代码
  3. 调整[0,x)区间上出现的概率
  4. python正则匹配找到所有的浮点数_Python随笔17:Python正则表达式基础(4):贪婪匹配和最小匹配...
  5. 卷积码主要是对抗_【零基础学会LTE】【3】LTE 36.212 咬尾卷积码详解
  6. 做游戏,学编程(C语言) 1 实现弹跳小球
  7. Android OpenGL ES 开发教程(16):Viewing和Modeling(MODELVIEW) 变换
  8. mysql client 升级_解决consider upgrading MySQL client问题
  9. SystemCenter2012SP1实践(2)部署证书服务器
  10. UDK安装和编译UEFI程序
  11. Visual Studio GUI应用程序_弹出控制台窗口/命令行窗口/dos窗口问题解决
  12. SQL2008用户sa登录失败(错误18456)解决方法
  13. python 视频 添加字幕_爱剪辑加字幕之经验及Python程序批量加字幕
  14. Python3学习笔记十三
  15. Android左右声道切换流程
  16. 现代循环神经网络 - 机器翻译与数据集
  17. C++复习炒剩饭(1)心一意
  18. Pytorch 3D卷积
  19. 银河麒麟高级服务器v10 sp2 下fpm工具打包rpm
  20. STC89C52定时器的简介

热门文章

  1. 今天聊:做好前端的 10 个习惯
  2. UI设计为什么要使用Figma?
  3. 函数节流你应该知道的那点事
  4. 2020年前端最火的技术是什么?
  5. 学习前端开发,可提高Web开发效率的15类工具
  6. 传感器工作原理_荧光氧气传感器工作原理简介
  7. 拉普拉斯定理_拉普拉斯妖:通晓宇宙一切,深知过去未来,最终被量子力学终结!...
  8. php 类自动执行,php类中的魔术方法及类的自动加载
  9. 清空div中的内容而不刷新整个页面_Vue中的$nextTick机制
  10. nginx php 扩展,源码安装Nginx+PHP-FPM及扩展