bugku—Web—CTF--變數1
阿新 • • 發佈:2018-11-30
S
這種題目純屬考察PHP的基礎知識
超級全域性變數GLOBALS的用法
flag In the variable ! <?php
網頁程式碼顯示:
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
$args = $_GET['args'];
if(!preg_match("/^\w+$/",$args)){
die("args error!");
}
eval("var_dump($$args);");
}
?>
提示說flag在變數裡面,經分析只要執行 eval("var_dump($$args);");,falg很有可能就會出來
$$args====>我們可以猜想$args很有可能是一個數組,應該想到的就是超全域性變數$GLOBALS
他是用儲存全域性變數的,全域性變數的值在這個超級全域性變數裡面是一個鍵值,先當於hashmap的鍵值對
全域性變數可以通過變數名在$GLOBALS找到相對應的值。
eval()這個函式的作用是字串裡面的php程式碼按正常的php程式碼被執行
通過構造一個GET引數,直接傳GET一個全域性變數即可
http://123.206.87.240:8004/index1.php?args=GLOBALS
拿到FLAG..