了解mssql数据库

0x00前言介于这段时间比较忙,所以博客的更新也比较慢。本来想前几天就发这个mssql数据库的,但是因为mssql的结构比较复杂,利用方式也比较多,所以又去深入研究了一下mssql的数据库结构和各

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

0x00   前言

介于这段时间比较忙,所以博客的更新也比较慢。本来想前几天就发这个mssql数据库的,但是因为mssql的结构比较复杂,利用方式也比较多,所以又去深入研究了一下mssql的数据库结构和各类的利用方式,以前都是工具一顿唆没有深入去研究过一些手工注入。

0x01  了解mssql数据库

这里说的mssql也就是我们的sqlserver数据库

美国Microsoft公司推出的一种关系型数据库系统。SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
(1)高性能设计,可充分利用WindowsNT的优势。
(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
(3)强壮的事务处理功能,采用各种方法保证数据的完整性。
(4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。

上面是百度百科的资料。

mssql和sqlserver有着很大的不同,sqlserver的结构比较复杂,注入语句也比较复杂。但是如果在注入当中数据库是采用sa用户来运行的,那么我们就可以很轻松的拿下webshell。mssql可以直接启用存储过程来执行命令。

我们来看一下mssql的系统自带数据库的作用。

了解mssql数据库

 

 

 

master 数据库存放着一切对象的信息,sa或者其他用户的密码 以密文存储
model: 存在创建用户数据库的模板
msdb:用户数据库,存放所有的任务调度
tmpdb:临时数据库,在注入时候如果受限制显示位,存在在某表里面,然后再爆数据。重启会清空tempdb的数据

数据库自带用户介绍:

前面带#号的是mssql 内部用户数据库仅用数据库内部使用
nt开头的是数据库安装的时候创建的

了解mssql数据库

 

 

 

如果msql 执行命令是使用nt serivice\mssqlserver 这个 服务来执行命令 。

 

下面我们来查询个看看,来查看与mysql 不同的地方。

select * from master.dbo.sysobjects where xtype = 'u';

matster是指定数据库名点号后面跟上的是他的架构 再加上表名。

那么我们发现其实这个数据库里面根本没有这张表是怎么回事?

其实这个只是我们的视图,而不是我们真正的表。

sysobjects 是系统的视图,用于存放改数据库内创建的所有对象、如约束、默认值、日志、规则、存储过程,

xtype是代表对象类型:
U:表(用户自定义的表)
V:视图
P :存储过程
X :扩展存储过程

我们可以来查询我们所有的数据库名字

select * from master..sysdatabases;

了解mssql数据库

 

 

 

这个查询的也是我们的视图 在mssql里面information这个数据库也都是以视图的形式存在的

查看是否站库分离

 and (select host_name()) = (select @@servername)) 

查询数据库的名字,这个函数可以遍历 在括号里面输入数字可以查询对应的数据库名字

SELECT DB_NAME();

 

了解mssql数据库

 

 

 

这里再来说到mssql的权限划分,

sa:sysadmin      超级管理员权限
dbo : db_owner   数据库管理员权限
public :访问用户权限

 

 

0x02  存储过程

存储过程(Stored Procedure)是在大型数据库系统中,
一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效
,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
存储过程是数据库中的一个重要对象。
在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升

那么我们在实战当中就可以利用到存储过程来直接执行cmd命令

常用的存储过程有xp_cmdshell,sp_oacreate  sp_oacreate这个存储过程执行命令无回显,需要输出到txt文件然后进行查看。

在00版本是默认开启xp_cmdshell的 05版本后需要手工开启。

 

0x03  结尾

本次文章耗时3小时,记录一下时间点。下篇文章写mssql各类注入语法与bypass手法

了解mssql数据库

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119972.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月11日 上午8:00
下一篇 2021年12月11日 上午8:00


相关推荐

  • oracle 错误01017,ORA-01017:用户名密码出错 故障实例「建议收藏」

    oracle 错误01017,ORA-01017:用户名密码出错 故障实例「建议收藏」sysdba登录ORA-01017:用户名密码出错故障排查实例早上接到一个朋友的急call,说是数据库的sys登录不了系统叻。普通用户连接可以登录,只要是assysdba就提示ORA-01017:用户名密码出错。很显然这是一个典型的sysdba登录的问题。首先要他查看了sqlnet文件。SQLNET.AUTHENTICATION_SERVICES=(NONE)启动密码文件验证了,接着查看…

    2022年5月31日
    86
  • Java实现远程屏幕监视

    Java实现远程屏幕监视Robotrobot newRobot 要捕捉的屏幕显示范围 下面以全屏示例说明 Rectanglerec newRectangle Toolkit getDefaultTo getScreenSiz BufferedImag robot createScreen rect nbsp 通过上面

    2026年3月17日
    2
  • cmd 远程连接_mysql在cmd中无法访问

    cmd 远程连接_mysql在cmd中无法访问mysql-h192.168.0.1-P80-uroot-p注意的是参数使用都是要和值一起中间不能有空格…..

    2022年10月13日
    5
  • 2.5.1大礼包

    2.5.1大礼包查找:全局搜索 prefs:root=或者 openURL:不要有“prefs:root=xxxx”这个可能出在自己项目中,特别是接手老项目,另一种可能是第三方sdk里出现的特别是调用相册相机调用wifi这类的第三方框架或SDK。如果第三方出现重新下载最新的包或者换第三方,联系第三方sdk开发者修改。修改一般只弹框提示不做跳转或者用苹果提供的方法。不要出现:@"pre…

    2022年7月16日
    16
  • OpenCV人脸识别的原理 完整版代码

    OpenCV人脸识别的原理 完整版代码http://blog.csdn.net/yanming901012/article/details/8606183本程序首先利用从摄像头检测到的人脸图片,先进行直方图均衡化 并缩放到92*112的图片大小,然后根据train.txt的采集到的人脸模版 进行匹配识别(最好是在统一光照下,采集不同角度的人脸图片各一张) 注意:影响的极大因素在于光照,模版若与采集的图像光照不一样,识别率很低。…

    2022年5月2日
    51
  • JVM_虚拟机目录

    JVM_虚拟机目录fontcolor red 在人生的道路上 即使一切都失去了 只要一息尚存 你就没有丝毫理由绝望 因为失去的一切 又可能在新的层次上复得 font JVM00 面试官对类加载器子系统 运行时数据区 内存分布 执行引擎你能坚持到第几问 https blog csdn net TZ article details JVM01 概述 跨平台原理 分类 三大商业虚拟机 https blog csdn net TZ articl

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号