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;

      }

      ?>

      

  • 相关阅读:
    Qt数据库操作
    Ubuntu12.04下Qt连接MySQL数据库
    VS2010下MFC的串口编程
    Ubuntu12.04(64bit)下安装Qt4总结
    Ubuntu12.04软件安装指南
    VirtualBox中安装Fedora9及其ARM开发环境配置
    Qt5+VS2010的安装及使用
    【MATLAB】边缘提取效果
    【Photoshop】批处理与快捷批处理
    【C#】WinForm 之 SQL Server 服务监控器(避免开机启动服务)
  • 原文地址:https://www.cnblogs.com/cnsanshao/p/2041682.html
Copyright © 2011-2022 走看看