linux脚本读取mssql数据库,WebShell通过SQL语句管理MSSQL
最近在做一个网络安全相关项目的渗透测试,在拿到了服务器的webshell之后,需要进一步渗透,服务器上有较高权限的软件只剩SQL Server 2005了,而且在webshell中通过SQL Server 2005提权拿到系统权限,由于拿到webshell的服务器在内网,通过防火墙做了端口映射,无法直接使用SQL Server管理工具进行管理,就需要通过webshell执行SQL 语句来操作SQL Server数据库,其中用到了一些非常规的SQL语句,列举一些sql语句来介绍数据库,数据表,视图等等。当我们在使用查询查询操作时这些sql语句都是非常有用的。虽然在sql server对象浏览器中我们也可以获得这些语句,但是如果我们写这些语句时我们可以将它自定义。这就意味着我们可以给予自己的需求来过滤结果。
sql语句列表(当拿到webshell之后只能看到服务器上有SQL Server数据库但是不知道数据库里有哪些库,这将会是我们无法操作数据库)
如何列举sql server当前连接的可用数据库
Method 1 : SP_DATABASES
Method 2 : SELECT name FROM SYS.DATABASES
Method 3 : SELECT name FROM SYS.MASTER_FILES
Method 4 : SELECT * FROM SYS.MASTER_FILES -- Type=0 for .mdf and type=1 for .ldf
SP_DATABASES是一个可以列举数据库及其大小的存储过程
sys.databases语句中可以列举数据库名称,创建日期,修改日期,已经数据库id和其他一些信息。
SYS.MASTER_FILES语句可以查询数据的详细情况,比如数据库id,大小,物理存储路径以及列举数据库mdf和ldf.
如何列举数据库中的数据表
(知道了数据库还需要指导数据库里有那些表,这样才能知道各个库里有什么数据,哪些数据能够帮助我们拿到更高的业务平台权限)
以下的sql语句都可以列表sql server数据库中的用户表.
Method 1 : SELECT name FROM SYS.OBJECTS WHERE type='U'
Method 2 : SELECT NAME FROM SYSOBJECTS WHERE xtype='U'
Method 3 : SELECT name FROM SYS.TABLES
Method 4 : SELECT name FROM SYS.ALL_OBJECTS WHERE type='U'
Method 5 : SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
Method 6 : SP_TABLES
如何列举数据库中的存储过程
Method 1 : SELECT name FROM SYS.OBJECTS WHERE type='P'
Method 2 : SELECT name FROM SYS.PROCEDURES
Method 3 : SELECT name FROM SYS.ALL_OBJECTS WHERE type='P'
Method 4 : SELECT NAME FROM SYSOBJECTS WHERE xtype='P'
Method 5 : SELECT Routine_name FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE='PROCEDURE'
SYS.OBJECTS数据表包含了全部的存储过程,数据表,触发器,视图等的信息,这里使用type=’p'来查询存储过程.
Information_schema.routines在sql server 7.0是一个数据视图,在其后的版本中已经变成存储过程专有的表.
如何列举数据库中的视图
Method 1 : SELECT name FROM SYS.OBJECTS WHERE type='V'
Method 2 : SELECT name FROM SYS.ALL_OBJECTS WHERE type='V'
Method 3 : SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS
Method 4 : SELECT name FROM SYS.VIEWS
如何列举数据库中的函数Method 1 : SELECT name FROM SYS.OBJECTS WHERE type='IF' -- inline function
Method 2 : SELECT name FROM SYS.OBJECTS WHERE type='TF' -- table valued function
Method 3 : SELECT name FROM SYS.OBJECTS WHERE type='FN' -- scalar function
Method 4 : SELECT name FROM SYS.ALL_OBJECTS WHERE type='IF' -- inline function
Method 5 : SELECT name FROM SYS.ALL_OBJECTS WHERE type='TF' -- table valued function
Method 6 : SELECT name FROM SYS.ALL_OBJECTS WHERE type='FN' -- scalar function
Method 7 : SELECT Routine_name FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE='FUNCTION'
如何列举数据库中的触发器
Method 1 : SP_HELPTRIGGER Products
Method 2 : SELECT * FROM SYS.TRIGGERS WHERE parent_id = object_id('products')
下面我以一个products表为例列举一些对表的操作.
如何获取数据表中的列Method 1 : SP_HELP Products
Method 2 : SP_COLUMNS Products
Method 3 : SELECT * FROM SYS.COLUMNS WHERE object_id = object_id('Products')
Method 4 : SELECT COLUMN_NAME,Ordinal_position,Data_Type,character_maximum_length FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='Products'
如何根据数据表的列查找数据表的名称
Method 1 : SELECT O.name FROM SYS.OBJECTS O INNER JOIN SYS.COLUMNS C ON C.Object_ID = O.Object_ID WHERE C.name LIKE '%ShipName%'
Method 2 : SELECT OBJECT_NAME(object_id) AS [Table Name] FROM SYS.COLUMNS WHERE name LIKE '%ShipName%'
Method 3 : SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE '%ShipName%'
如何获得数据表的总列数Method 1 : SELECT COUNT(@@ROWCOUNT) FROM Products
Method 2 : SELECT COUNT (ProductID) FROM Products
Method 3 : SELECT OBJECT_NAME(id) AS [Table Name],rowcnt FROM SYSINDEXES WHERE OBJECTPROPERTY(id,'isUserTable')=1 AND indid < 2 ORDER BY rowcnt DESC
Method 4 : SELECT rowcnt FROM sysindexes WHERE id = OBJECT_ID('Products') AND indid < 2
Method 5 : SELECT OBJECT_NAME(OBJECT_ID) TableName,row_count FROM sys.dm_db_partition_stats WHERE object_id = object_id('Products') AND index_id < 2
如何获得数据表的约束
Method 1 : SELECT * FROM SYS.OBJECTS WHERE type='C'
Method 2 : SELECT * FROM sys.check_constraints
如何获得数据表的索引
Method 1 : sp_helpindex Products
Method 2 : SELECT * FROM sys.indexes WHERE object_id = object_id('products')
如何获得数据视图的模式定义
Method 1 : SELECT OBJECT_NAME(id) AS [View Name],text FROM SYSCOMMENTS WHERE id IN (SELECT object_id FROM SYS.VIEWS)
Method 2 : SELECT * FROM sys.all_sql_modules WHERE object_id IN (SELECT object_id FROM SYS.VIEWS)
Method 3 : SP_HELPTEXT ViewName
如何获得存储过程中的数据表
Method 1 : SELECT OBJECT_NAME(id) FROM SYSCOMMENTS S
INNER JOIN SYS.OBJECTS O ON O.Object_Id = S.id
WHERE S.text LIKE '%Products%'
AND O.type='P'
总结为了避免涉及到渗透测试相关的保密数据,这里的相关操作已经经过了处理,以上列举了一下sql server用实用的一些sql语句,希望对你在使用查询窗口操作时有用,这些SQL语句能在无法使用客户端的情况下,通过webshell执行SQL语句的形式对数据库进行管理,由于通过webshell连接的数据库用户权限受限,需要通过现有较低的权限获取系统的结构信息,进一步借助系统现有的较高权限的软件进行提权。
linux脚本读取mssql数据库,WebShell通过SQL语句管理MSSQL相关推荐
- 数据库导入语句linux,数据库应用-SQL语句导入导出大全
数据库应用-SQL语句导入导出大全 发布时间:2006-06-03 09:59:43来源:红联作者:yo /******* 导出到excel EXEC master..xp_cmdshell 'bcp ...
- 帝国cms php sql,帝国CMS下在PHP文件中调用数据库类执行SQL语句实例
帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 例1:连接MYSQL数据库例子.(a.php) db_close(); //关闭MYSQL链接$empire=null; //注消操作类变量? ...
- java数据库编程——执行SQL 语句
[0]README 1) 本文文字描述+source code 均转自 core java volume 2 , 旨在理解 java数据库编程--执行SQL 语句 的基础知识 : 2)for sour ...
- 云服务器怎么执行sql文件在哪里,总结帝国CMS下在PHP文件中怎么调用数据库类执行SQL语句实例...
总结帝国CMS下在PHP文件中怎么调用数据库类执行SQL语句实例 发布时间:2020-10-19 14:58:08 来源:亿速云 阅读:83 作者:小新 这篇文章将为大家详细讲解有关总结帝国CMS下在 ...
- Java让数据库执行一条sql_java数据库编程——执行SQL 语句
[0]README [1]java数据库编程--执行SQL 语句相关 1)执行 SQL 命令前, 首先需要创建一个 Statement 对象: 要创建 statement 对象,不需要调用 Drive ...
- 软件创新实验室:MySQL数据库与简单SQL语句使用
文章目录 前言 简介 特点 SQL DDL:操作数据库.表 DML:增删改表中数据 DQL:查询表中的记录 后记 拓展 范式 第一范式 1NF 第二范式 2NF 第三范式 3NF B+树 节点结构 插 ...
- 第二十三章 MySQL数据库 手册2 SQL语句
第二十三章 MySQL数据库 手册2 SQL语句 实验二:用SQL语句,管理数据库 `危险命令,delete 后不加 where 条件代表删除所有数据 delete.` `更加危险的删除命令trunc ...
- 命令行客户端MySQL基本命令的使用(登录、登出、数据库操作的SQL语句、表结构的SQL语句、表数据操作的SQL语句)
1. 登录和登出数据库 登录数据库: 输入下面命令: mysql -uroot -p 说明: -u 后面是登录的用户名 [写成-u root也是可以的] -p 后面是登录密码, 如果不填写, 回车之 ...
- 怎么从 SQL Server 数据库中导出 SQL 语句?
同于直接/备份/恢复 或者 导入/导出 数据库操作. 新版本SQL Server客户端中还可以生成相对应的SQL语句. 非常方便与查看和与其他人共享. 操作步骤如下: 连接上数据库后, 右击数据库, ...
最新文章
- 使用Nginx搭建简单的音视频直播平台RTMP协议
- 逻辑判断 java_写 JS 逻辑判断,不要只知道用 if-else 和 switch
- OpenGL Cubic Bezier三次贝塞尔曲线修补实例
- POJ 2337 欧拉回路
- Initializer provides no value for this binding element and the binding element has no default value
- 懒加载 jquery代码
- 文字阴影-CSS Text-Shadow
- 新乡学院2019计算机报名,新乡学院2019年招生章程
- 两个女的:“你好,我想问一下......我们饿了,能不能买......”
- iOS的帮助网站(企业包发布)adhoc的测试
- 理解函数:对象(this,arguments),方法(apply(),call(),bind())。
- MYSQL——数据修改
- 一枝穿云箭,千军万马来相见——致2015届电子科大信软学院新生
- usb打印机命令_自己动手不求人 日常打印机故障全知晓
- 燕十八的php教材学完能找工作吗,燕十八的布尔教育怎么样? - php完全自学手册...
- phpstudy mysql恢复数据_MySQL_详解MySQL误操作后怎样进行数据恢复,一、开启binlog。
首先查看binlo - phpStudy...
- 舞伴配对问题(顺序队列)
- OCR文本图像合成工具
- JS的严格模式和标准模式
- 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第八章:高级控件