<?php
include "flag.php";
highlight_file(__FILE__);$zeros="000000000000000000000000000000";foreach($_GET as $key => $value){$$key=$$value;
}if ($flag=="000000000000000000000000000000"){echo "好多零";
}else{echo "没有零,仔细看看输入有什么问题吧";var_dump($_GET);
}
这道题真的很巧妙("哭~")
涉及到变量覆盖和变量名和赋值$
首先foreach($_GET as $key => $value)是把GET请求收到的所有参数赋给$key然后把其值赋给$value
构造思路如下:
使得$key=_GET;$value=flag;那么$$key=$_GET;$$value=$flag;
因此我们将$flag的值成功赋值给$_GET;
成功在最后执行var_dump($_GET)打印出$flag的值
payload如下
?_GET=flag