无论是使用手工试探还是使用安全测试工具,恶意攻击者总是使用各种诡计从你的防火墙内部和外部攻破你的SQL服务器系统。既然黑客在做这样的事情。你也需要实施同样的攻击来检验你的系统的安全实力。这是理所当然的。下面是黑客访问和攻破运行SQL服务器的系统的十种诡计。
1.通过互联网直接连接
这些连接可以用来攻击没有防火墙保护、全世界都可以看到和访问的SQL服务器。DShield公司的端口报告显示了有多少系统在那里等待遭受攻击。我不理解允许从互联网直接访问这种重要的服务器的理由是什么。但是,我在我的评估中仍发现了这种安全漏洞。我们都记得SQL Slammer蠕虫对那样多的有漏洞的SQL服务器系统造成的影响。而且,这些直接的攻击能够导致拒绝服务攻击、缓存溢出和其它攻击。
2.安全漏洞扫描
安全漏洞扫描通常可以基本的操作系统、网络应用程序或者数据库系统本身的弱点。从没有使用SQL安全补丁、互联网信息服务(IIS)设置弱点到SNMP(简单网络管理协议)漏洞等任何事情都能够被攻击者发现,并且导致数据库被攻破。这些坏蛋也需使用开源软件、自己制作的工具软件或者商业性工具软件。有些技术高手甚至能够在命令提示符下实施手工黑客攻击。为了节省时间,我建议使用商业性的安全漏洞评估工具,如Qualys公司的QualysGuard(用于普通扫描)、SPI Dynamics公司的WebInspect(用于网络应用程序扫描)和下一代安全软件公司的“NGSSquirrel for SQL Server”(用于数据库扫描)。这些工具软件很容易使用,提供了最广泛的评估,并且可以提供最佳的结果。图1显示了你可能发现的一些SQL注入安全漏洞。
图1:使用WebInspect发现的普通SQL注入安全漏洞。
3.列举SQL服务器解析服务
在UDP端口1434上运行,这能让你发现隐蔽的数据库实例和更深入地探查这个系统。Chip Andrews的“SQLPing v 2.5”是一个极好的工具,可用来查看SQL服务器系统并且确定版本编号。你的数据库实例即使不监听这个默认的端口,这个工具软件也能发挥作用。此外,当过分长的SQL服务器请求发送到UDP端口1434的广播地址的时候,会出现缓存溢出问题。
4.破解SA口令
攻击者还可以通过破解SA口令的方法进入SQL服务器数据库。遗憾的是,在许多情况下不需要破解口令,因为没有分配口令。因此,可以使用上面提到的一种小工具SQLPing。Application安全公司的AppDetective和NGS软件公司的NGSSQLCrack等商业性工具软件也有这种功能。
5.直接利用安全漏洞攻击
使用图1显示的Metasploit等工具软件可以直接实施攻击。这种软件的商业性软件“CANVAS”和“CORE IMPACT”等能够利用在正常的安全漏洞扫描过程中发现的安全漏洞实施攻击。这是非常有效的攻击手段,攻击者可利用这种手段突破系统、从事代码注入或者取得非经授权的命令行访问权限。
6.SQL注入
SQL注入攻击可以通过没有正确验证用户输入的前端网络应用程序实施。包括SQL指令在内的异常的SQL查询可以直接注入到网络URL(统一资源定位符)中,并且返回一些错误通知,执行一些指令等等。如果你有时间的话,这些攻击可以手工实施。我一旦发现一个服务器有一个潜在的SQL注入安全漏洞,我喜欢使用一种自动的工具深入研究这个漏洞。这些工具包括图3显示的SPI Dynamics公司的SQL注入器等。
图3:SPI Dynamics公司的SQL注入器自动实施SQL注入过程。
7.SQL盲注攻击
这些攻击以标准的SQL注入攻击相同的基本方式利用网络应用程序和后端SQL服务器的安全漏洞。最大的区别是攻击者收不到以错误通知形式从网络服务器发回的信息。这种攻击由于涉及到猜口令,速度要比标准的SQL注入攻击慢一些。在这种情况下,你需要一种比较好的工具。那就是图4显示的Absinthe工具。
图4:Absinthe工具在实施SQL盲注攻击测试。
8.对系统实施逆向工程
逆向工程的方法可以查找软件的安全漏洞和内存损坏弱点等漏洞。在利用软件安全漏洞方面,可以参考Greg Hoglund和Gary McGraw合著的“如何破解代码”一书,你可以发现有关逆向工程方法的一些讨论。
9.Google hacks
Google hacks利用Google搜索引擎不同寻常的力量搜出可公开访问的系统泄漏出来的SQL服务器的错误,如“Incorrect syntax near”(附近语法错误)。Johnny Long编写的“Google Hacking Database”数据库中一些Google的查询项目。(查看错误信息和包含口令的文件部分)。黑客能够使用Google找到口令、网络服务器中的安全漏洞、基本的操作系统、公开提供的程序以及其它能够用来攻破SQL服务器系统的东西。通过Google网站的“site:”操作符把这些查询结合在一起同场可以发现你想不到能够找到的东西。
10.熟读网站源代码
源代码还能够暴露可能导致SQL服务器被攻破的信息。特别是开发人员为了简化身份识别过程把SQL服务器身份识别信息存储在ASP脚本中的情况下更是如此。手工评估或者Google能够在一瞬间就发现这个信息。 |