zoukankan      html  css  js  c++  java
  • WEB_变量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参数是否存在 
        $args = $_GET['args'];             //赋值给变量  $args
        if(!preg_match("/^w+$/",$args)){  // /^开始, w表示任意一个单词字符,即[a-zA-Z0-9_] ,+将前面的字符匹配一次或多次,$/结尾
            die("args error!");            //输出 args error! 
        }
        eval("var_dump($$args);");         // 将字符串作为php代码执行结尾加分号 var_dump()函数 显示关于一个或多个表达式的结构信息,包括表达式的类型与 值。数组将递归展开值,通过缩进显示其结构。$$args 可以理解为$($args)
    }
    ?>

    本题设计一个知识点,可变变量,相关信息如下:

    eval()函数存在命令执行漏洞  我们的目标是查看flag1.php中的flag 首先想到的是本地包含漏洞查看源码,而本题条件判断加了正则表达式判断,过滤了括号和引号等字符。无法构造!  但输出时是   $$args 于是我们想到构造 php中全局变量 $GLOBALS  ,PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。

    在URL中添加  ?args=GLOBALS

    http://123.206.87.240:8004/index1.php?args=GLOBALS

    回车,即可得到flag相关信息

    flag为:flag{92853051ab894a64f7865cf3c2128b34}

  • 相关阅读:
    欧几里得学习笔记
    卢卡斯定理学习笔记
    环相关问题
    BSGS学习笔记
    淘宝首页自动切换选项卡变换内容
    彻底弄懂CSS盒子模式(DIV布局快速入门)
    runoo' blog WEB2.0
    彻底弄懂CSS盒子模式
    CSS 样式切换
    js强贴收藏
  • 原文地址:https://www.cnblogs.com/gzu_zb/p/10357544.html
Copyright © 2011-2022 走看看