需要注意的几个PHP漏洞小结

需要注意的几个PHP漏洞
几个重要的PHP.ini选项
  Register Globals
  PHP>=4.2.0,PHP.ini的register_globals选项的认值预设为Off,当register_globals的设定为On时,程序可以接收来自服务器的各种环境变量,包括表单提交的变量,而且由于PHP不必事先初始化变量的值,从而导致很大的安全隐患.
  例1:
<div class="codetitle"><a style="CURSOR: pointer" data="44364" class="copybut" id="copybut44364" onclick="doCopy('code44364')"> 代码如下:

<div class="codebody" id="code44364">
  //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:
<div class="codetitle"><a style="CURSOR: pointer" data="36078" class="copybut" id="copybut36078" onclick="doCopy('code36078')"> 代码如下:
<div class="codebody" id="code36078">
  //ex2.PHP
  
  if (isset($_SESSION["username"]))
  {
  do_something();
  }
  else
  {
  echo "您尚未登录!";
  }
  ?>

<div class="codetitle"><a style="CURSOR: pointer" data="14052" class="copybut" id="copybut14052" onclick="doCopy('code14052')"> 代码如下:
<div class="codebody" id="code14052">
  //ex1.PHP
  
  $dir = $_GET["dir"];
  if (isset($dir))
  {
  echo "";
  system("ls -al ".$dir);
  echo "";
  }
  ?>


 mixed eval(string code_str) //eval注入一般发生在攻击者能控制输入的字符串的时候
  //ex2.PHP
<div class="codetitle"><a style="CURSOR: pointer" data="53573" class="copybut" id="copybut53573" onclick="doCopy('code53573')"> 代码如下:<div class="codebody" id="code53573">  
  $var = "var";
  if (isset($_GET["arg"]))
  {
  $arg = $_GET["arg"];
  eval("$var = $arg;");
  echo "$var =".$var;
  }
  ?>

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...