入侵高手。">
黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客入门 >> 黑软介绍 >> 正文
·没有路由密码权限时的鸽08-23·上网安全 Vista自我防范10-11
·让濒临崩溃的Windows XP10-11·有备无患,快速自制救急10-11
·要你好看!Windows看图工10-11·空间赞助网提供不同类型10-11
·讨论net.exe和net1.exe的10-10·让3389远程桌面传输更通10-10
·巧妙入侵渗透赌博站10-10·Aspx空间扫权限工具10-10
·Windows2003最新提权工具10-10·易淘乐提供100M免费全能10-10
·系统开机密码忘了不着急10-09·中意网络提供免费100M免10-09
·与众不同 Windows XP开始10-08·让桌面图标翻跟斗 在XP上10-08
·上海宽元站长资助计划-提10-08·个性化Windows XP的任务10-07
·趣盘提供3G免费网络硬盘10-07·秀山热线提供200MB免费全10-07
·一次艰辛的提权过程10-06·成功入侵IT大卖场的渗透10-06
·mysqlhack- MYSQL利用工10-06·lanker一句话PHP后门客户10-06
·WIXI提供3G免费多媒体网10-06·新人网络提供100M/ftp免10-06
·如何利用QQ带来高流量10-05·UuShare提供免费网络文件10-05
[组图]SQL INJECTION的终极利器opendatasource和openrowset
      ★★★★★

SQL INJECTION的终极利器opendatasource和openrowset

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2007-5-14 9:18:01

很老的文章了,05年4月份的,存档。文章末尾提供DOC文档和文中提及的工具下载,其中DOC文档来自neeao那里,工具是我google了好长时间才找到的,不知道为什么这么难找。

作者:LCX

  目前市面上的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代码如下:

以下是引用片段:
<form action=f.asp method=get>
帐号lcx<br>
密码<input type=text size=100 name=password>
<input type=submit value=submit>
</form>

效果如图1所示:

f.asp代码如下:

<%    
strSQLServerName = "127.0.0.1"
strSQLDBUserName = "sa"
strSQLDBPassword = "lcx"
strSQLDBName = "bbsuser"
Set conn = Server.CreateObject("ADODB.Connection")
strCon = "Provider=SQLOLEDB.1;Persist Security Info=False;Server=" & strSQLServerName & ";User ID=" & strSQLDBUserName & ";Password=" & strSQLDBPassword & ";Database=" & strSQLDBName & ";"
conn.open strCon
sql2="select * from bbsuser where username='admin' and password='"&request("password")&"'"
set rs2=conn.execute(sql2)
%>
<br>
<%=" 执行的SQL语句是"&sql2%>
<%
rs2.close
set rs2=nothing
conn.close
set conn=nothing
%>

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

  OK,测试环境构建完毕。我又在另一台服务器192.168.8.20装了一个sqlserver,sa的密码是lcx。因为opendatasource宏走得是TCP协议,所以你要保证192.168.8.20的1433端口 一定要被192.168.8.10访问到。Sqlserver sp2版本如果默认装在xp sp2下的话1433端口不会被外界访问到的,这一点你要注意,建议打上SQL的SP3补丁。

[1] [2] [3] 下一页

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体:
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886