攻防世界:web区 Simple_PHP
这道题考察的是PHP的代码审计中的弱类型比较
== 就是先将二者变成相同的类型,然后再进行比较,即比较值
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
所以直接再url框里面输入:http://111.200.241.244:58705/?a='0’就可以让第一段代码为true。再尝试发现,a=“dudhf”,即任意字符串都可以,那么说明,这个弱比较,只比较类型
第二段代码的is_numeric()函数是判断是不是数字或者数字字符,所以b里面不能使用数字直接比大小,因为是若类型比较,可以输入"1234b"这种字符串
http://111.200.241.244:58705/?a=%27aaa%27&b=1236a
b可以是1234a、1235a,但不能前面的数字比1234小!
本文来自博客园,作者:{Zeker62},转载请注明原文链接:https://www.cnblogs.com/Zeker62/p/15167768.html