首页 | 培训 | 求学 | 参考 | 教师 | 教材 | 学校 | 招聘 | 租房 | 旅游ASKEDU.com  


培训指南—ASKEDU.com

返回 | 主页


浅谈数据库的攻击(数据库的利用)



[摘要]
如果程序中的连接用户权限极小,甚至多数表只能读,你就很难有所作为了。这时所能做的是能猜出表名和字段名来进行删除数据或表的操作。

INSERT语句利用起来讨厌一些,主要是里面有好多列,而且还要处理掉最后的“)”。

我就以我最熟悉的MS SQL Server来说一些吧。它的默认端口号是1433,你用telnet连一下服务器的这个端口,如果能连上去一般是装了MS ...

如果程序中的连接用户权限极小,甚至多数表只能读,你就很难有所作为了。这时所能做的是能猜出表名和字段名来进行删除数据或表的操作。

INSERT语句利用起来讨厌一些,主要是里面有好多列,而且还要处理掉最后的“)”。

我就以我最熟悉的MS SQL Server来说一些吧。它的默认端口号是1433,你用telnet连一下服务器的这个端口,如果能连上去一般是装了MS SQL Server,当然这是可以改掉的。

好了,说一说数据库的利用。

如果对方的数据直接在Web服务器上而且你知道端口号,有帐号就干脆用SQL Analyzer来直接连接数据库。在它里面可以执行SQL语句。常用的是存储过程master.dbo.xp_cmdshell,这是一个扩展存储过程,它只有一个参数,把参数做为系统命令来装给系统执行。

如果是管理用户就有权执行这个存储过程,而且这时可以执行很多操作,如用ipconfig来看ip设置,用net user来看系统用户。不过用net user /add 用户名 密码并不一定成功,有时会返回一个“指定的登录会话不存在”而不能执行,原因我还不清楚。

如果没有权限也不要紧,MS SQL Server有个漏洞,你可以创建一个临时存储过程来执行,就可以绕过去,如:

CREATE PROC #cmdshell(@cmdstr varchar(200))

AS

EXEC master.dbo.xp_cmdshell @cmdshell

当然这时是没有权限执行net user /add等的,不过可以查看,可以创建文件。

反复用echo创建一个FTP脚本,把木马传到一个FTP站点上,然后用存储过程调用ftp来利用脚本来下载并安装,然后......呵呵:)

如果数据库没有装在Web服务器上所以没有找到或改了端口号而一时找不到还是有办法的。

如果数据库服务器直接从Internet上无法访问,你可以利用程序里的漏洞来删除、修改数据或加入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:了。


其它培训参考信息:
浅谈数据库的攻击(4)
浅谈数据库的攻击(利用多语句执行漏洞)
浅谈数据库的攻击(对SQL的突破)
浅谈数据库的攻击(突破script的限制)
让程序ASP程序界面模板化3
让程序ASP程序界面模板化2
让程序ASP程序界面模板化1
五种DSN的使用方法



信息来自互联网,敬请核实,谨慎使用



 




  中国 | Worldwide: United States United Kingdom Australia Canada India | Travel AgencyASKEDU.com