设为首页收藏本站
查看: 3002|回复: 15

【图文】SQL Server的几个安全问题

  [复制链接]
  • TA的每日心情
    无聊
    6 天前
  • 签到天数: 408 天

    [LV.9]以坛为家II

    发表于 2013-10-12 14:23:18 | 显示全部楼层 |阅读模式
    本帖最后由 services 于 2013-10-12 14:27 编辑

    安全意识非常薄弱,这也许是初学者容易忽视的问题,本文探讨一些SQL Server常见的安全问题……


    单位的小王学习SQL Server已有一段时间了,已经做了个不错的管理系统,有次小王让我帮着看看库的设计有没有问题,其间我发现他的安全意识非常薄弱,这也许是初学者容易忽视的问题,本文探讨一些SQL Server常见的安全问题,是给初入SQL Server的人看的,写的肯定很絮叨,高手勿读。本文的用的是SQL Server 2000,下文中都简写为SQL Server。

      一、空口令或弱口令

      初学者在安装SQL Server时为了省事,SQL Server管理员sa 用的是空口令或弱口令,这样危险性十分巨大,而这些危险往往是初学者意识不到的,小王就觉得,自己的库是试验数据,没什么用,即使别人连上库也无所谓。殊不知SQL Server的默认用户sa的权限非常巨大,有种观点是sa的权限要大于administrator的权限,也就是说没有限制的sa用户可以做Windows系统管理员所做的任何事。


      下面我们做个简单的试验。通过SQL Server给Windows系统增加一个用户user1,并且把该用户增加到管理员用户组administrators里。


      1、首先看看正常情况下在Windows系统增加该用户的方法。

    有两种:一是在图形界面下进行,二是在命令窗口下进行,下面演示通过命令增加用户。


    1)、在“开始”——〉“运行”处输入cmd,回车进入到命令窗口,如图1所示:
      2)、第一行命令net user user1 /add (增加一个用户名是user1的用户)。
      3)、第二行net localgroupadminisstrators user1 /add(将此用户增加到管理员用户组administrators中)。
      4)、第三行net user(查看目前系统的用户,可以看到已增加了user1用户)。
      5)、第四行net user user1 /delete (删除user1用户),为了下面通过SQL Server 给系统增加用户。





    2、在SQL Server中增加系统用户

      1)、打开SQL Server的“企业管理器”——〉“工具”——〉 “SQL 查询分析器” 。如图2,输入要连接的SQL Server的IP地址,确定后出现图3界面,注意连接的是master库。



    2)、如图3所示,在查询窗口中输入:

    1. e xe c xp_cmdsh ell net user user1 /add
    复制代码

    ,按
    执行,如果出现图4“命令成功完成”的提示说明执行成功。

      3)、接着如图5所示,输入
    1. e xec xp_cmd shell net localgroup administrators user1 /add
    复制代码

    ,执行成功后出现图5的提示说明。





    上边输入的 net user user1 /add 和 net localgroup administrators user1 /add是不是很眼熟?它们就是我们上面用过的windows系统下的标准命令。图6可以看出user1已增加到管理员administrators组中。



    看到这明白了吧!通过功能强大的SQL Server可以做Windows系统管理员能做的事。上面通过SQL Server建立用户的实验是我从本机远程连接到测试机的SQL Server,增加了用户,图7是用刚建立的用户user1和远程计算机建立的ipc连接,这时要进入这台机器就是易如反掌的事了。接下来的的安全知识自己查查吧,网上非常多的。




    3、进一步解释  上面用的xp_cmdshell是SQL Server的扩展存储过程中的一个,存储过程就像是我们编程用的函数,内容是按需要编写的一系列SQL 语句和可选控制流语句,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。每个库都可以存放存储过程,但扩展存储过程只存在master 数据库中,对用户来说,扩展存储过程与普通存储过程一样,执行方法也相同。但扩展存储过程能执行除了数据库之外的许多操作,上面我们看到通过调用xp_cmdshell可以执行windows系统下的各种命令。
      扩展存储过程的功能非常强大,如图8,它们存在master库中的扩展存储过程中。  如xp_regenumvalues、 xp_regread、 xp_regwrite 、xp_regdeletevalue、 xp_regdeletekey这些扩展存储过程能对注册表进行读写操作。例如:可以通过下面命令查看注册表中的启动项目。  

    1. E xec xp_regenumva lues HKEY_LOCAL_MACHINE,SOFTWAREMicrosoftWindowsCurrentVersionRun
    复制代码




    二、注入和跨库攻击  

    注入和跨库攻击可能是2004年黑客攻击中最流行的词了,它的原理和上面讲的都是获得了SQL Server管理员sa的权限,从而控制数据库,还可以利用xp_cmdshell这样的SQL Server的扩展存储过程控制Windows系统。注入和空口令获取sa权限的方法不同,注入是ASP程序在连接SQL Server时有漏洞,黑客利用漏洞获取了sa权限。说到这,小王有点疑问,程序中sa连接的是自己的库而扩展存储过程在master库中,如何利用的?简单的说,有sa 的权限后就能查询出用户建的什么库,库中有哪些表,表中有什么字段,表的纪录等。这些又是如何实现的呢?  要解答这个问题需要从两个方面着手,一是新建个库后,SQL Server起了什么变化?二是SQL Server的权限。



      1、新建一个库后其在系统库和系统表的位置  
    例:在SQL Server新建一个库,库名称为:xyz,在该库下建一个test的表,表中字段为id、name、password。
      
    1)、库在哪里?  


    SQL Server安装完毕后默认安装了master、model、msdb、northwind、pubs、tempdb这6个库,其中northwind、pubs是例子库,其它都是系统数据库,各有其用。xyz库建好后,库名称存在master库中的sysdatabases表中,如图9所示,sysdatabases表中的 dbid字段的值大于6的就是用户自己建的库。

    1. SEL ECT name FROM sysdatabases wh ere dbid >6
    复制代码

    可以查出用户自己建的库,刚建的xyz库也在其中。






    2)、表在哪里?  表名称存在xyz库中的sysobjects表且xtype=u,如图11,输入
    1. SEL ECT *FROM sysobjects wh ere xtype=u
    复制代码

    可以查出表名称是test,记住我们刚建的表test对应的id是357576312



    3)、有哪些字段?  test表中有哪些字段呢?该表的字段存在xyz库中的syscolumns表中,且id等于sysobjects表中test表对应的id,也就是我们上面查出来的357576312。  如图12,输入
    1. SE LECT * FROM syscolumns whe re id=357576312
    复制代码

    可以查出test表中的字段。








    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册

    x

    评分

    3

    查看全部评分

  • TA的每日心情
    无聊
    2015-7-15 13:01
  • 签到天数: 177 天

    [LV.7]常住居民III

    发表于 2013-10-12 14:42:32 | 显示全部楼层
      长知识了,虽然是练习或学习,但是也要有安全意识!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-1-29 21:32
  • 签到天数: 343 天

    [LV.8]以坛为家I

    发表于 2013-10-12 15:52:43 | 显示全部楼层
    很不错哈~~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-11-8 10:02
  • 签到天数: 62 天

    [LV.6]常住居民II

    发表于 2013-10-12 16:26:26 | 显示全部楼层
    确实,这个可以有。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-5-11 16:44
  • 签到天数: 630 天

    [LV.9]以坛为家II

    发表于 2013-10-12 16:48:56 | 显示全部楼层
    用户名一般都没人改,最多就到安全性加个密码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-3-2 08:20
  • 签到天数: 114 天

    [LV.6]常住居民II

    发表于 2013-10-12 17:41:12 | 显示全部楼层
    很有帮助的帖子 特别是刚上手
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-12 18:28
  • 签到天数: 418 天

    [LV.9]以坛为家II

    发表于 2013-10-12 17:43:13 | 显示全部楼层
    学习了,,收藏了,,不知现在sql2008,2010等等,还可以这么做不
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-7-15 00:18
  • 签到天数: 202 天

    [LV.7]常住居民III

    发表于 2013-10-12 22:02:28 | 显示全部楼层
    蛮不错的文章,01.e xec xp_cmd shell  一般为了安全,这个就不要启动了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-1-5 14:26
  • 签到天数: 72 天

    [LV.6]常住居民II

    发表于 2013-10-21 22:28:07 | 显示全部楼层
    学了蛮不错的、、、
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-12-23 08:59
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    发表于 2013-10-22 17:44:28 | 显示全部楼层
    很不错的文章
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-12-30 14:05
  • 签到天数: 35 天

    [LV.5]常住居民I

    发表于 2013-10-26 22:07:49 | 显示全部楼层
    目前也在学SQL。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2015-3-21 09:30
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2013-12-16 15:36:27 来自手机 | 显示全部楼层
    收藏个。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2018-10-21 18:08
  • 签到天数: 125 天

    [LV.7]常住居民III

    发表于 2017-5-19 12:11:13 | 显示全部楼层 赞助商
      你的图片不能显示了  。光看文字有点难懂
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-5-20 14:31
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    发表于 2017-5-19 13:06:11 | 显示全部楼层

    感谢楼主分享。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-12-6 11:35
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    发表于 2018-10-17 09:53:22 来自手机 | 显示全部楼层
    图片怎么不显示了?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    站长推荐 上一条 /1 下一条

    红盟社区--中国红客联盟 

    Processed in 0.094296 second(s), 30 queries.

    站点统计| 举报| Archiver| 手机版| 黑屋 |   

    Powered by HUC © 2001-2017 Comsenz Inc.

    手机扫我进入移动触屏客户端

    关注我们可获取更多热点资讯

    Honor accompaniments. theme macfee

    快速回复 返回顶部 返回列表