"这篇文档深入探讨了SQL注入技术在流行微软的Internet Information Server/Active Server Pages/SQL Server平台上的应用。作者Chris Anley详细介绍了利用错误消息获取信息、利用扩展存储过程(如xp_cmdshell和xp_regread)进一步访问、链接服务器、自定义扩展存储过程、导入文本文件到表格、使用BCP创建文本文件、SQL Server中的ActiveX自动化脚本以及存储过程等方法。同时,还涵盖了高级SQL注入技巧,如无引号字符串和二次SQL注入,以及如何规避长度限制和审计。文档还讨论了防御策略,包括输入验证和SQL Server锁定模式,并提供了参考文献和一个名为'SQLCrack'的附件。"
这篇白皮书“Advanced SQL Injection in SQL Server”由Chris Anley撰写,旨在深入解析SQL注入攻击在SQL Server环境中的实施手段。SQL注入是一种常见的安全漏洞,攻击者可以通过在应用程序的SQL查询中插入恶意代码,以获取敏感信息、操纵数据库或执行非授权操作。
文档首先介绍了通过错误消息来获取系统信息的策略,这是许多攻击的起点。接着,Anley讲解了如何利用SQL Server的特定功能,如`xp_cmdshell`,它允许执行操作系统命令,从而可能使攻击者获得对服务器的控制;`xp_regread`则能用于读取注册表信息。他还提到了其他扩展存储过程、链接服务器以及自定义扩展存储过程的潜在风险。
文档还讨论了如何利用文本文件导入表格,以及使用BCP(Bulk Copy Program)工具创建文本文件,这些通常用于批量数据传输,但也可以被滥用。此外,Anley指出,SQL Server中的ActiveX自动化脚本也可以成为攻击途径,因为它们允许在服务器上执行脚本。
在高级SQL注入部分,Anley提到了两种特殊类型:无引号字符串注入,攻击者可以构造不带引号的SQL语句片段;以及二次SQL注入,这种攻击发生在输入数据在延迟或异步处理时,使得攻击者有机会在不同的上下文中执行恶意SQL。
为了防止SQL注入,文档建议了输入验证作为基本防御手段,强调确保所有用户输入都被正确处理和过滤。此外,他还提到了SQL Server Lockdown模式,这是一种强化服务器安全性的配置,限制了不必要的服务和功能,从而减少攻击面。
附录A提供了一个名为'SQLCrack'的工具的示例脚本,这可能是用于测试SQL Server安全性的工具,帮助管理员识别潜在的SQL注入漏洞。
这篇白皮书全面地分析了SQL Server环境中SQL注入的各种技术,并给出了相应的防御措施,对于理解并防范此类攻击具有很高的价值。