<?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);"); }
首先分析了一波,
以为和WEB8差不多,
代入发现还是很年轻,
WP
在eval处有两个$$符号,
这里涉及到PHP的变量问题(可变变量)
可变变量是一中独特的变量,它允许动态的改变一个变量名称。
工作原理是该变量的名称由另外一个变量值来确定,实现过程中就是在变量前面在加一个美元符号$
也就是给变量传一个全局数组变量, 构造?args=GLOBALS,拿到flag