我正在嘗試將引用另一個變量的變量傳遞給eval()PHP 中的函數。bin2hex 和大多數其他 PHP 函數無法使用,因此我必須依賴(我認為的)PHP 特性,它將十六進制自動解析為 ascii 字符串。當我嘗試運行它時:<?php$t = "\x70\x68\x70\x69\x6e\x66\x6f\x28\x29"eval($t . "();");?>在phpinfo()被調用并在網頁上顯示但是當$t像這樣從超全局變量引用變量時:<?php// HTTP request:// http://myserver.com/debug.php?t=$_GET['s']&s=\x70\x68\x70\x69\x6e\x66\x6f\x28\x29// Info:// $_GET['t'] = $_GET['s'];// $_GET['s'] = \x70\x68\x70\x69\x6e\x66\x6f\x28\x29eval($_GET['t'] . "();");?>十六進制字符串不會被解析(而是按原樣打?。┎⑶也粫粓绦?。我的目標是通過 HTTP 查詢參數 ($_GET)phpinfo()在eval()函數內部執行,因為我通過\x70\x68\x70\x69\x6e\x66\x6f\x28\x29了phpinfo(). 但在我的情況下,十六進制沒有被解析,因此沒有被執行。我做錯了嗎?
- 1 回答
- 0 關注
- 238 瀏覽
添加回答
舉報
0/150
提交
取消