Fork me on GitHub

Bugku-CTF之变量1

 Day9

 

变量1

http://123.206.87.240:8004/index1.php

 

 
 
 
 
 
本题要点:正则表达式、可变变量、全局变量
 
 
对代码的解释:
 
 <?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);");
}
?>
 
 
 介绍一下可变变量
具体详情见:
https://www.php.net/manual/zh/language.variables.variable.php
 

 

 

所以我们只需给变量传一个全局数组变量就好了 所以我们构造 ?args=GLOBALS加到url后面
http://120.24.86.145:8004/index1.php?args=GLOBALS
 
注:此处全局变量的GLOBALS必须为大写!!!!

 

便可得到FLAG
 
 
完成!

 

 

参考资料:

https://www.php.net/manual/zh/language.variables.variable.php

 

posted @ 2019-04-20 12:44  0yst3r  阅读(1438)  评论(0编辑  收藏  举报
返回顶部