首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第32期->业界动态
期刊号: 类型: 关键词:
SQL Server组件发现漏洞 可运行任意代码

日期:2002-06-19

发布日期: 2002-6-17

日经BP社

  【日经BP社报道】日本微软于6月13日宣布,SQL Server 2000所含组件“SQLXML”中存在安全漏洞。在建立能够通过Internet Information Server/Services(IIS)向SQL Server直接发送请求(Query)的系统时,如果接收了某种被做过手脚的请求,就存在着IIS服务器上被执行任意代码(程序)的危险。与此同时,还在SQLXML中发现了可能危及客户端的安全漏洞。上述两个安全漏洞带来的危险均可通过补丁程序来避免。


  SQLXML是一种能够通过XML向SQL Server收发请求及来自SQL Server的结果的模块(功能)。作为SQL Server 2000的一部分安装在服务器上。通过使用SQLXML,能够经由IIS从Web浏览器向SQL Server收发请求,同时,还能够将这一结果显示在浏览器上。但是,为了使用IIS,必须在IIS设备中安装名为“SQLXML HTTP组件”的ISAPI Extension(因特网服务器应用程序编程接口),并更改IIS的设定。

  这一ISAPI Extension就是此次发现的安全漏洞的原因。由于在该ISAPI Extension中存在缓冲器溢出缺陷,如果接收了施以手脚的请求,就会被执行任意代码,或被中止IIS的服务。任意代码通过LocalSystem权限执行。

  据美国微软公布的信息显示,即使在相同设备中安装IIS与SQL Server,由于在默认值方面不能使用SQLXML,因此不会受到影响。而且,由于能够通过IIS向SQL Server直接发送请求的系统一般建立在因特网上,所以不会受到来自外部的攻击。

  除上述安全漏洞之外,同时还公布了另一SQLXML的安全漏洞。如果这一安全漏洞被恶意使用,利用SQLXML的SQL Server 2000服务器的用户(客户机)就有可能受到损失。具体来说,存在着不通过“因特网区域”的安全设定,而是通过“内部网区域”等的设定执行由因特网上的服务器发送来的脚本程序的危险。

  其原因在于,SQLXML不能对包含在通过XML交换的数据中的参数进行万无一失的检查。某种参数的赋值中可能含有脚本程序。为此,存在受到与Cross Site Scripting相同攻击的可能性。

  首先,攻击者将用户诱导至精心设计的Web页。在该页面上准备有能够将请求及上述参数、脚本程序发送到使用SQLXML的SQL Server(正确地讲是IIS)的链接。如果用户点击该链接,咨询和脚本程序就会被发送至SQL Server,结果和脚本程序则从SQL Server那里通过IIS发送至用户。

  用户收到的结果和脚本程序将显示在浏览器中。此时,脚本程序将通过IIS服务器的安全设置来解释。也就是说,即使嵌入脚本程序的攻击者的页面位于因特网上,当IIS服务器接入内部网络时,这一脚本也会在“内部网区域”的安全设定不如“因特网区域”限制严格的内网上运行。

  但是,要想成功实现这种攻击,攻击者必须知道使用SQLXML的服务器,而且必须诱导具有访问该服务器权限的用户。

  关于上述两个安全漏洞,只要使用补丁程序就可以避免受到损失。另外,不同的SQLXML版本也应使用不同的补丁程序。请用户务必参照微软的信息,确认版本后再使用补丁程序。(记者:胜村幸博=IT Pro) 
版权所有,未经许可,不得转载