web9
代码解析:
flag in the variable: flag在变量中
error_reporting(0): 设置 PHP 的报错级别并返回当前级别 (0):关闭错误报告
include “flag1.php”: include 语句包含并运行指定文件
highlight_file(file): highlight_file() 函数对文件进行语法高亮显示
$_GET: 变量用于收集来自 method=”get” 的表单中的值,直观的的就是浏览器中可以看到的参数
isset: 检测变量是否设置,并且不是 NULL
preg_match : 函数用于执行一个正则表达式匹配。
“/^\w+$/” : 正则表达式
^ 表示开头,是转义字符,使用时在前面加""
$ 表示结束,是转义字符,使用时在前面加""
\w 任意一个字母或数字或下划线,也就是 AZ,az,0~9,_ 中任意一个
这段正则表达式的意思就是字符全部由【AZ,az,0~9,_ 】组成,肯定不能为空
正则表达式
die() 函数输出一条消息,并退出当前脚本
eval() 函数把字符串按照 PHP 代码来计算。
var_dump() 函数用于输出变量的相关信息
这里可以看到,直接就是$$args,就是耀调用全局变量
直接构造/flag1.php?args=GLOBALS
发现不行,看来flag1.php是没用的信息
简单粗暴直接就是/?args=GLOBALS
,得出flag{aadda8a30ffbe51354e4f251525b856e}