<?php highlight_file(__FILE__); include 'flag2.php'; if (isset($_GET['name']) && isset($_POST['password'])){ $name = $_GET['name']; $password = $_POST['password']; if ($name != $password && md5($name) == md5($password)){ echo $flag; } else { echo "wrong!"; } } else { echo 'wrong!'; } ?> wrong!
- 只要两个数的md5加密后的值以0e开头就可以绕过(因为php在进行弱类型比较‘==’时,会现转换字符串的类型再进行比较,因为两个数都是以0e开头会被认为是科学计数法,0e后面加任何数在科学计数法中都是0,所以两数相等)
name=240610708
password=QLTHNDT
- 使用[]类型,由于md5()函数存在缺陷,加密[]的时候返回值是NULL,这样子无论如何都相等了
标签:SWPUCTF,--,计数法,2021,0e,类型,php,md5 From: https://www.cnblogs.com/lhqrusht0p/p/18004964