安全中国首页 > 文章中心 > 技巧知识
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

SQL INJECTION的终极利器opendatasource和openrowset(图)

更新时间:2005-10-14 1:00:00
责任编辑:池天
热 点:
    目前市面上的SQL INECTION工具很多,最受推崇的当属NBSI了。SQL INECTION的方法在网上是也是满天飞,大家仔细学一下都会很快的成为脚本入侵高手。可是无论是工具,还是众多方法,猜SQL数据的时候原理不外乎两种。一个是对方的WEB服务器在没有关闭错误提示的时候是用让SQL出错来暴出想要的信息;一个是在对方的WEB服务器关闭错误提示的时候采用ASCII码拆半分法分析。当关闭错误提示的时候,这时来猜数据就很慢了,遇到网速蜗牛的时候真是急死人,NBSI此时还经常会出现猜解错误是否要重试的警告对话框。如果我来告诉你,有了opendatasource和openrowset这两个函数,一切问题都应刃而解了。
在SQL联机从书的解释中,对没有定义为链接服务器名称的 OLE DB 数据源执行不常用查询时,使用特殊名称。在 SQL Server 2000 中,OPENROWSET 和 OPENDATASOURCE 函数提供了连接信息,借以从 OLE DB 数据源访问数据。OPENROWSET 和 OPENDATASOURCE 只应在引用不常访问的 OLE DB 数据源时使用。对于需要经常访问的数据源,应定义链接服务器。无论 OPENDATASOURCE 还是 OPENROWSET 都不能提供链接服务器定义的全部功能,包括安全管理和查询目录信息的能力。每次调用这些函数时,都必须提供所有的连接信息(包括密码)。OPENROWSET 和 OPENDATASOURCE 看起来象函数,但其实是宏并且不支持将 Transact-SQL 变量提供为参数。

简单来讲,这两个宏也就是不依靠链接服务器来进行分布式查循。
因为用openrowset函数来直接获取注入数据库的信息的工具已经有了,我就不做详细介绍了,在文章尾我会介绍此工具的用法的,我这里着重来介绍一下opendatasource的使用。联机从书对OPENDATASOURCE宏的用法示例格式如下:

SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerName;User ID=MyUID;Password=MyPass'
).Northwind.dbo.Categories

想到了没有,我们完全可以用此语句获得注入数据库的库名、表名、列名、字段值的所有信息。如果你还是不明白,那就来看我表演。

我在192.168.8.10这台服务器上构建了一个测试环境,写了一个有漏洞的ASP代码。两段代码中的e.asp代码如下:


效果如图1所示:



f.asp代码如下:



当在图1中的文本框提交1’and db_name()>0—的时候,效果如图2所示:

1 2 3 4 下一页

 
相关文章
一日一文章
 
一日一软件
一日一动画