Bugku-web-变量1

web-变量1

打开了网址是这样的

img

分析一下给出的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变量就完事了

img

依旧不太理解php。。还是太菜

img

原文地址:https://www.cnblogs.com/lightice/p/12650007.html