CTF-PHP程式碼審計,正則表示式記錄
阿新 • • 發佈:2019-02-07
一、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。