先启动环境
得到一串php代码
这段代码是一个简单的PHP文件,它包含了一个变量$args和一个eval函数。
首先,它通过include "flag1.php";引入了一个名为flag1.php的文件。该文件的内容可能是一个标志或敏感信息。
然后,highlight_file(__file__);函数会将当前文件的源代码以HTML的形式显示在页面上,这可能是为了方便调试或学习。
接下来,该代码段会检查是否有名为args的GET参数传递给该PHP文件。如果有,它会将参数的值赋给变量$args。
然后,它使用正则表达式preg_match("/^\w+$/",$args)来检查$args的值是否只包含字母、数字和下划线,并且是一个以字母或下划线开头的字符串。如果不是满足这些条件,代码会输出"args error!"并终止执行。
最后,如果前面检查通过,代码会执行eval("var_dump($$args);");,它会将$args作为变量名,将$$args的值输出到页面上。这里使用了$$args的方式可以间接引用到flag1.php文件中的内容,如果$args的值为"flag1",那么var_dump($$args);的执行将输出flag1.php文件中的内容。
注意,使用eval函数存在安全风险,可以导致代码注入漏洞,因此在实际应用中应尽量避免使用eval函数并严格过滤用户输入。
我构造了args=GLOBALS
因为glopals包含了所有的条件
回车得到flag