入侵"高手"。可是无论是工具,还是众多方法,猜SQL数据的时候原理不外乎两种:一个是对方的WEB服务器在没有关闭错误提示的时候,让SQL出错来暴出想要的信息;">
黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客入门 >> 黑软介绍 >> 正文
·完美空间提供500M免费AS04-10·企业安全之YY内网准入以04-09
·企业安全之意识与策略04-09·剑走偏锋:IIS漏洞利用04-09
·我来免费网提供100M免费04-09·1122mb.com提供20G超大免04-08
·映像劫持与反劫持技术04-07·让所有"暴力删除工具"无04-07
·入侵88red系统的详细过程04-07·Sql Injection脚本注入终04-07
·vbs+delphi 反弹后门生成04-07·飞讯网提供100MB免费PHP04-07
·突破SQL注入攻击时输入框04-04·结合内核和病毒技术的最04-04
·Real Player rmoc3260.d04-04·亿万网络今月最后为您提04-04
·php+mysql 5 sql inject04-03·Real Player rmoc3260.d04-03
·oblog文件下载漏洞04-03·免费啦提供1G-2G免费全能04-03
·完全解析网页后门和挂马04-02·一句话开3389(只测试过04-02
·萧萧免费空间网提供100M04-02·谷道免费空间网提供1G免04-01
·从本地入手解决双线路由03-31·sablog 1.6 多个跨站漏洞03-31
·富文本编辑器的跨站脚本03-31·Cookie注入是怎样产生的03-31
[推荐]取代NBSI2:Opendatasource And Openrowset
      ★★★★★

取代NBSI2:Opendatasource And Openrowset

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2007-1-8 9:59:32

目前市面上的SQL Injection工具很多,最受推崇的当属NBSI2了。SQL Injection的方法在网上也是满天飞,大家认真学一下都会很快成为脚本入侵"高手"。可是无论是工具,还是众多方法,猜SQL数据的时候原理不外乎两种:一个是对方的WEB服务器在没有关闭错误提示的时候,让SQL出错来暴出想要的信息;一个是在对方的WEB服务器关闭错误提示的时候,采用ASCII码拆半法分析。当关闭错误提示的时候,猜数据会很慢,遇到网速蜗牛的时候真是急死人,NBSI2此时还经常会出现"猜解错误,是否要重试"的警告对话框,真是麻烦。不过有了Opendatasource和Openrowset这两个函数,一切问题都应刃而解了。

        在SQL联机从书的解释中,对没有定义为链接服务器名称的OLE DB数据源执行不常用查询时,使用特殊名称。在SQL Server 2000中,Openrowset和Opendatasource函数提供了连接信息,借以从OLE DB数据源访问数据。Openrowset和Opendatasource只应在引用不常访问的OLE DB数据源时使用。对于需要经常访问的数据源,应定义链接服务器。无论Opendatasource还是Openrowset都不能提供链接服务器定义的全部功能,包括安全管理和查询目录信息的能力。每次调用这些函数时,都必须提供所有的连接信息(包括密码)。简单来讲,这两个宏也就是不依靠链接服务器来进行分布式查循。

         因为用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>
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'and db_name()>0"的时候, 
我又在另一台服务器192.168.8.20装了一个SQL Server,sa的密码是lcx。因为Opendatasource宏走的是TCP协议,所以你要保证192.168.8.20的1433端口一定要被192.168.8.10访问到。OK,测试环境构建完毕,下面一起来看看如何入侵

小提示:SQL Server SP2版本如果默认装在Windows XP SP2下的话,1433端口是不会被外界访问到的,这一点需要注意,建议打上SP3补丁。

[1] [2] 下一页

文章录入:cainiaowang    责任编辑:cainiaowang 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
VIP 专 区
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886