浅谈对数据库的攻击

浅谈对数据库的攻击

佳佳在这里简单谈一下对数据库的攻击。由于本人才疏学浅,望大家能够批评指正。

一般的web server都要使用数据库来存储信息,几乎所有的网站都要用数据库。这样就存在着两种可能,一种是使用小型数据库,如aceess,一般就储存在本地。另一种是使用大型数据库,如SQL server,Oracle这时候一般就放在另一台机器上,然后通过ODBC来访问它。 

由于页面经常需要查询各种信息,修改用户信息等操作,实质上就是和数据库打交道了。这样就给非法用户留下利用的机会了。

1.对本地数据库的攻击。

对本地数据库的攻击一种方法就是下载数据库,然后呢,你就可以打开这个数据库得到内部的用户和帐号了,以及其它有用的信息。

下面以“水莲会”为例:

经过扫描,得知www.suilian.net使用的是虚拟主机,使用的是WIndows NT+IIS4.0.扫描器你可以使用twwwscan或者其它,其实功能都大同小异。

在对IIS攻击时如果能够看到ASP源代码,那么成功的可能性就很大了。

经过测试,发现此站点存在源代码暴露漏洞。。。

大家可以试试:


http://www.suilian.net/null.htw? ... p;CiHiliteType=full
http://www.suilian.net/null.htw? ... p;CiHiliteType=full
http://www.suilian.net/null.htw? ... p;CiHiliteType=full
http://www.suilian.net/null.htw? ... p;CiHiliteType=full
http://www.suilian.net/null.htw? ... p;CiHiliteType=full
http://www.suilian.net/null.htw? ... p;CiHiliteType=full
http://www.suilian.net/null.htw? ... p;CiHiliteType=full


看见了什么?

当然源代码泄露的漏洞有很多种,这里就不一一列举,你可以去查漏洞手册。

现在你就可以去查看ASP源代码了。

如果你对ASP不熟悉,我简单介绍一下(其实佳佳也不熟悉)。

ASP是嵌在之间。一般使用VBScript或者JavaScript书写代码。

看这个例子使用VBScript书写的:

这是一个典型的与数据库连接的代码。

依次的步骤为:

建立连接对象,

设置数据库路径,

打开数据库,

设置记录对象,

取记录。

这里我们就可以知道数据库的类型,名称和路径,这里是在当前目录下。

还可以知道数据库的表名和字段名称。

有经验的程序员一般不会把数据库名直接放在代码里,而是在ODBC里设置数据源,以增加安全性。

然后就发现存在

d:\S\suilian\chat\news.mdb

d:\S\suilian\topic22.mdb等数据库

你只要使用

http://www.suilian.net/chat/news.mdb

http://www.suilian.net/topic22.mdb

就可以把它下载下来。。。

有什么问题请在佳佳的BBS留言,经常去586,lovehacker,mayi都是高手。。。

对本地数据库的攻击的第二种方法是使用SQL语句,这和远程数据库的方法一样,会在下一节介绍的。

再见!
这次主要介绍对远程数据库的攻击:

佳佳写完此文后得到深圳黑客cyberman的大幅度修改(可以说本文主要内容是由cyberman完成),在此对cyberman的黑客精神表示感谢!

1。突破script的限制。

例如,某网页上有一文本框,允许你输入用户名称,但是它限制你只能输入4个字符。许多程序都是在客户端限制,然后用msgbox弹出错误提示。如果你攻击时需要突破此限制,只需要在本地做一个一样的主页,只是取消了限制,通常是去掉VBscript或IavaScript的限制程序,就可以成功突破。

如果是javascript做的,干脆临时把浏览器的脚本支持关掉。如果是,所以可以用javascript把它转到其他站点上或做些什么。

如果只是改了端口号就要看程序里数据库用户的权限了,如果是管理用户,可以用


' exec master.dbo.xp_cmshell 'net user /add aaa bbb


来创建一个操作系统用户,然后再用

' exec master.dbo.xp_cmdshell 'net localgroup /add administrators aaa


来把它升级为超级用户。
如果这台服务器的NetBIOS绑定了TCP/IP,而且C$、D$等管理共享存在,呵呵,恭喜了,你在DOS命令下用net use Z: \ip address$ "bbb" /user:"aaa"就可以把对方的整个C盘映射为你本地的一个网络驱对器Z:了。

6。数据库里如何留后门。

创建用户的sp_addlogin、权限分配的sp_addsrvrolemember是用一条语句来判断用户是否有权限执行,也就是说用户都可以执行它,它再来判断用户是否有权执行。

当你攻入一个数据库时可以用它的Enterprise Manager来连上去修改这些存储过程,因为这些存储过程都没有加密。

可以在判断的地方加个条件,当这个条件满足时就不直接执行下去而不管是什么权限的用户调用它。

不过改完要注意,这时它的Type成了User,要想改回可以到sysobjects表中把name为sp_addlogin的一条删除,然后再把没有改过的相同版本的MS SQL Server的同一条记录拷贝进去就可以了。

当然不要忘了这些默认是不能手工修改的,要修改得先把掉SQL Server的参数,改完不要忘了再改回来啊:) 这时只要网站的程序有问题,不管程序中的用户权限如何,你都可以随时创建SQL Server的管理用户。

7。数据库扫描工具。

ISS DATABASE Scanner

全文结束!