問題在於這個語句是無效的:
echo ();
它會導致解析錯誤。所以你需要注入一些東西來避免這個錯誤。例如:
$var = "1); phpinfo(); echo (1"; eval("echo ($var);");
當你使用那個輸入時,替換變數(shù)的結果是:
eval("echo ($a='1');phpinfo();echo($a);");
所以這裡賦值了 $a='1'
,並且輸出了該賦值的結果(即被賦給 $a
的值)。然後執(zhí)行了 phpinfo()
。最後再次輸出了 $a
。
如果你嘗試使用);phpinfo();echo(
,它不會起作用,因為它試圖執(zhí)行echo ()
。但是echo
至少需要一個參數(shù)。
所以要在這裡注入程式碼,你必須確保輸入以在 echo (
之後是有效的內容開頭,並且以在 );
之前是有效的內容結尾。將你想要注入的額外程式碼放在這兩部分之間。