常见SQL Server 2000漏洞及其相关利用(3)
来源:yesky 发布时间:2007-10-01 14:45:00
3、进一步解释
上面用的xp_cmdshell是SQL Server的扩展存储过程中的一个,存储过程就像是我们编程用的函数,内容是按需要编写的一系列SQL 语句和可选控制流语句,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。每个库都可以存放存储过程,但扩展存储过程只存在master 数据库中,对用户来说,扩展存储过程与普通存储过程一样,执行方法也相同。但扩展存储过程能执行除了数据库之外的许多操作,上面我们看到通过调用xp_cmdshell可以执行windows系统下的各种命令。
扩展存储过程的功能非常强大,如图8,它们存在master库中的扩展存储过程中。
如xp_regenumvalues、 xp_regread、 xp_regwrite 、xp_regdeletevalue、 xp_regdeletekey这些扩展存储过程能对注册表进行读写操作。例如:可以通过下面命令查看注册表中的启动项目。
Exec xp_regenumvalues 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
图8
二、注入和跨库攻击
注入和跨库攻击可能是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的就是用户自己建的库。图10中用Select name FROM sysdatabases where dbid>6可以查出用户自己建的库,刚建的xyz库也在其中。
图9
图10
猜你喜欢
- 一、问题引发思考前阵子与同事探讨一个小需求时又遇到了按钮表示“动作”和表示“状态”间矛盾问题。想想这个问题多年前已经开始讨论了,所以在此整理
- 在JAVASCRIPT中LEFT函数的等价函数:function left(mainStr,lngLen) {if&nb
- 一直以来,ACCESS数据库中的申报数据在分公司与总公司之间传递,用EXCEL或DBASE、TXT甚至ACCESS等格式,我总觉得不太理想。
- Sun周三宣布,准备以10亿美元收购MySQL开源数据库公司。据悉,Sun将支付大约8亿美元现金给MySQL,以获得其私募股票,另外,Sun
- 可以在Mac OS X 10.2.x(“Jaguar”)和以上版本上Mac OS X使用二进制安装软
- 三、支持XML的公司和它们的开发工具 尽管XML还处在开发阶段,其标准正在由W3C组织制定,但是已经有许多公司表示全力支持XML,并开发了不
- 这个程序将记数器的数字放在ACCESS数据库中,当然你也能用你希望其它的ODBC数据源.这个程序从URL中读取记数信息.如下:< IM
- /* --注意:准备数据(可略过,非常耗时) CREATE TABLE CHECK1_T1 ( ID INT, C1 CHAR(8000)
- JS提供两个截取字符串的方法,分别是:slice()和substring()slice和substring都可以接受一个或两个参数,第1个参
- SPAN 和 DIV 的区别在于,DIV(division)是一个块级元素,可以包含段落、标题、表格,乃至诸如章节、摘要和备注等。而SPAN
- Function getIpvalue(clientIP)'得到客户端的IP转换成长整型,返回值getIpvalue&nb
- 对于大多数web应用来说,数据库都是一个十分基础性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子
- 问:把数据从MySQL迁移到Oracle需要注意些什么?答:以下是MySQL迁到Oracle需要掌握的注意事项,希望对你有所帮助。1.自动增
- 1. 你必须有自己的服务器,可以在服务器上建立站点。2. 域名管理里 你的域名必须支持泛解析。(现在好像除了 双线双I
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 6 - Manipulating HTML通过Mo
- 很多用ACCEE97开发过数据库的用户都有这种体会:要想在窗体中添加一个命令按钮实现打开通用对话框的功能真是很困难。因为ACCESS97本身
- 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。请回想一下在硬盘上是如何查找文件的。您肯
- 这是由十几位视觉设计师设计的挂历,每个月份都是不同的风格,就像每个月都有不同温度和心情一样,思维跳跃性很大,可以作为挂历设计参考。当然,如果
- 1. TVP, 表变量,临时表,CTE 的区别 TVP和临时表都是可以索引的,总是存在tempdb中,会增加系统数据库开销,而表变量和CTE
- 以前的服务器,由于内存的价格过高,一般配置的内存不是很多,超过4GB的当然就不多了.现在的服务器,配置超过4GB就很多,在配作SQL 数据库