zoukankan      html  css  js  c++  java
  • PHP漏洞详解

    几个重要的php.ini选项

      Register Globals

      php>=4.2.0,php.ini的register_globals选项的默认值预设为Off,当register_globals的设定为On时,程序可以接收来自服务器的各种环境变量,包括表单提交的变量,而且由于PHP不必事先初始化变量的值,从而导致很大的安全隐患.

      例1:

      //check_admin()用于检查当前用户权限,如果是admin设置$is_admin变量为true,然后下面判断此变量是否为true,然后执行管理的一些操作

      //ex1.php

      

      if (check_admin())

      {

      $is_admin = true;

      }

      if ($is_admin)

      {

      do_something();

      }

      ?>

      这一段代码没有将$is_admin事先初始化为Flase,如果register_globals为On,那么我们直接提交 http://www.sectop.com/ex1.php?is_admin=true,就可以绕过check_admin()的验证

      例2:

      //ex2.php

      

      if (isset($_SESSION["username"]))

      {

      do_something();

      }

      else

      {

      echo "您尚未登录!";

      }

      ?>

      //ex1.php

      

      $dir = $_GET["dir"];

      if (isset($dir))

      {

      echo "

    ";
    

      system("ls -al ".$dir);

      echo "

    ";

      }

      ?>

      

      mixed eval(string code_str) //eval注入一般发生在攻击者能控制输入的字符串的时候

      //ex2.php

      

      $var = "var";

      if (isset($_GET["arg"]))

      {

      $arg = $_GET["arg"];

      eval("\$var = $arg;");

      echo "\$var =".$var;

      }

      ?>

      

  • 相关阅读:
    HDU 1856 More is better
    并查集模板
    HDU 1325 Is It A Tree?
    HDU 1272 小希的迷宫
    CodeVS 2639 约会计划
    POJ 1163 数字三角形
    HDU 1232 畅通工程
    HDU 1213 How Many Tables
    树形结构打印二叉树
    网址收藏
  • 原文地址:https://www.cnblogs.com/cnsanshao/p/2041682.html
Copyright © 2011-2022 走看看