关于php注入中的magic_quotes_gpc

作者:hack1990 时间:11-11-01 阅读数:622人阅读

magic_quotes_gpc = on
 
 
大家都知道php配置文件php.in  ,如果里面的magic_quotes_gpc  配置被打开 那就是magic_quotes_gpc = on   懂点php的人都知道。
 
那我们就要对数值型的字段注入。
 
 
 <?
 
if ( isset($_POST["f_login"] ) )
 
{
 
 //连接数据库
 
  $t_strUid = $_POST["f_uid"];
 
 $t_strPwd = $_POST["f_pwd"];
 
  $t_strSQL = "SELECT * FROM tbl_users WHERE uid=$t_strUid AND password = '$t_strPwd' LIMIT 0,1";
 
  if ( $t_hRes = mysql_query($t_strSQL) )
 
  {
 
    // 成功查询
 
 
 
  }
 
 
 
}
 
?>
 
<html><head><title>sample test</title></head>
 
<body>
 
<form method=post action="">
 
  User ID: <input type="text" name="username" size=30><br>
 
 
 
  Password: <input type=text name="userpwd" size=30><br>
 
  <input type="submit" name="user_login" value="登录">
 
</form>
 
</body>
 
 
上面这个代码是要我们输入username 和password 登入,有些代码省略了。
 
 
如果正确输入:
 
 
select * from tbltable_users WHERE userid=admin AND password = 'admin' LIMIT 0,1
 
 
如果攻击者在username处,输入:admin OR 1 =1 #,则注入的sql语句如下:
 
SELECT * FROM table_users WHERE userid=admin OR 1 =1 # AND password = 'admin' LIMIT 0,1
 
 
下面就可以进行注入了.
 
在php.ini 中把display_errors 选项设为display_errors = off  这样就可以防止.
 

发表评论