【CTF】PHP Hash漏洞(关于0e开头的md5值)

今天同事分享了一道题目,比较有意思

<?php

$a = @$_GET['a'];

$md51 = md5('QNKCDZO');

$md52 = md5($a);

if (isset($a)) {
    if ($a != 'QNKCDZO' && $md51 == $md52) {
        echo 'success';
    } else {
        echo 'fail';
    }
} else {
    echo 'please input a';
}

得到的答案是:
php中==如果判断的两个变量是string,同时以数字开头,那么只要在第一个非数字之前的全部数字都相等,就为true

本着求是的态度,写了几个测试:


image.png

image.png

image.png

发现好像并不是答案所说那样,而是跟e有点关系,继续跑了几个简单测试,发现只有0e开头,后面跟纯数字的才会出现这种情况,于是上网搜了搜答案,看到了这篇文章【CTF】PHP Hash漏洞(关于0e开头的md5值),得到正确答案(答案中说0e开头的就会出现,实验发现并不是,只有0e开头后面跟纯数字才会出现这种情况

以此记录,实践才是检验真理的唯一标准,一定要牢记啊~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容