$stuff = $_POST["stuff"];
$array = ['admin', 'user'];
if($stuff === $array && $stuff[0] != 'admin') {
poc:
$stuff=array(0x100000000=>'admin',1=>'user');
$array = ['admin','user'];
image.png
isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返回 FALSE。 empty 判断变量是否为空,如果变量是非空 或非零 的值,则 empty() 返回 FALSE。换句话说,"" 、0 、“0”、NULL 、FALSE 、array() 、var $var; 以及没有任何属性的对象 都将被认为是空的,如果变量为空,则返回TRUE。
image.png
image.png
https://github.com/wonderkun/CTF_web/tree/master/php4fun 题目心得:
PHP弱类型导致的BUG,当$var是一个字符串/数组的时候,访问$var[“any string”]跟访问$var[intval(“any string”)]效果是一样的
参考:http://www.am0s.com/functions/406.html
REQUEST的取值方式是按照$GET、$POST和$COOKIE的顺序取值。当$GET、$POST、_COOKIE中存在同名变量时,后面的变量会覆盖掉前面的变量。