1. 程式人生 > >CTF-PHP程式碼審計,正則表示式記錄

CTF-PHP程式碼審計,正則表示式記錄

一、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);");
}
?>

正則表示式"/^\w+$/",匹配字串,\w表示字元+數字+下劃線{ a-z,A-Z,_,0-9 }。如果不匹配會輸出 ‘’args error!‘’\

兩個`/``/` 表明正則表示式的開始與結束,`^`開始字元,`$`結束字元,`+`代表可以有一個或多個`\w`。

PHP中變數可以當作另一個變數的變數名:$$args,結合第一句flag In the variable !

所以構造payload:URL?args=BLOBLAS

即可爆出所有args,其中包含flag。