joozh 发表于 2018-10-23 11:51:40

SQL注入实例

  看看表的结构先
  CREATE TABLE membres (
  id varchar(15) NOT NULL default '',
  login varchar(25),
  password varchar(25),
  email varchar(30),
  userlevel tinyint,
  PRIMARY KEY (id)
  )
  我们仍然假设userlevel表示用户等级,1为管理者,2为普通用户哈。
  代码如下
  < php
  //reg.php
  ……
  $query = "INSERT INTO members VALUES('$id','$login','$pass','$email',’2')" ;
  ……
  >
  默认插入用户等级是2
  现在我们构建注入语句了哦
  还是在要我们输入email的地方输入:
  ’,’1’)#
  sql语句执行时变成了:
  INSERT INTO membres VALUES ('youid','youname','youpass','’,’1’)#', ')
  看我们一注册就是管理员了。
  #号表示什么来着,不是忘了吧,晕了,这么快?
  忘就忘了吧,下面再详细给你说说
  5.mysql中的注释
  这个是很重要的,大家可不能再睡觉啦,要是再睡觉到期末考试的时候就挂了你们。
  我们继续
  相信大家在上面的几个例子中已经看到注释的强大作用了吧,这里我们将再详细介绍一下。
  Mysql有3种注释句法
  # 注射掉注释符后面的本行内容
  -- 注射效果同#
  /* ... */注释掉符号中间的部分
  对于#号将是我们最常用的注释方法。
  -- 号记得后面还得有一个空格才能起注释作用。
  /*…*/我们一般只用前面的/*就够了,因为后面的我们想加也不行,是吧?
  注意:在浏览器地址栏输入#时应把它写成%23,这样经urlencode转换后才能成为#,从而起到注释的作用。#号在浏览器的地址框中输入的话可什么也不是哦。
  为了大家深刻理解
  这里我给大家来个例题
  有如下的管理员信息表

页: [1]
查看完整版本: SQL注入实例