Bugku-web-变量1
web-变量1
打开了网址是这样的
分析一下给出的php代码
flag In the variable ! <?php
error_reporting(0);// 关闭php错误显示
include "flag1.php";// 引入flag1.php文件代码
highlight_file(file);
if(isset($_GET['args'])){// 通过get方式传递 args变量才能执行if里面的代码
$args = $_GET['args'];
if(!preg_match("/^\w+$/",$args)){// 这个正则表达式的意思是匹配任意 [A-Za-z0-9_] 的字符,就是任意大小写字母和0到9以及下划线组成
die("args error!");
}
eval("var_dump($$args);");// 这边告诉我们这题是代码审计的题目
}
?>
分析完还不是很理解,$$args提示我们需要用上可变变量,意思是说flag在变量里,但是并不是args变量,我们可以通过用全局变量赋给args变量,用$$实现变量的变化来得到flag,我就直接掏出postman把GLOBALS丢给args变量就完事了
依旧不太理解php。。还是太菜