弱类型比较绕过.md

字符串与数字弱类型比较

构造password=404abc即可

原理

password和数字进行弱类型比较的时候,password后面的字母部分被截断,因此结果为404


字符串与数字的运算

if (isset($_GET['num'])) {
	$num = $_GET['num'];
	if (intval($num) < 2020 && intval($num + 1) > 2021) {
		echo("success");
	} else {
		die("failed");
	}
}

构造num=1e5即可

原理

在较低版本的php中,intval函数解析到字符串非数字部分直接结束,因而'1e5'被解析为1

而当字符串同数字进行四则运算时会先行转换为数字,也就是100000,在进行相应的运算

#Web #PHP #特性 #bypass #function