ctfshow 遍地飘零
<?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

浙公网安备 33010602011771号