需要注意的几个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; } ?>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|