● 摘要
随着Internet的快速发展,基于Internet的动态Web应用服务变得越来越重要,由此引发的Web服务的安全性也越来越受到大家的重视。根据OWASP(Open Web Application Security Project,开放式Web应用程序安全项目)2010年统计数据显示,注入漏洞已经上升为Top 1 的Web应用程序漏洞威胁。因此,对SQL注入漏洞检测技术进行系统深入的研究,对于提高Web应用系统的安全性具有十分重要的意义。本文首先阐述了SQL注入漏洞的原理,介绍了SQL注入漏洞的分类,总结了SQL注入漏洞的注入方式,并指出了SQL注入漏洞的危害;接着对SQL注入漏洞检测的研究现状进行了详细介绍,并阐明了现有技术存在的不足之处。本文重点研究和分析了SQL注入漏洞检测中涉及的关键技术,主要包括:网络爬虫与Web应用程序的动态交互、数据入口的确定和模拟攻击、注入代码的构造以及注入结果的分析,并提出了切实可行的解决方案。本文对渗透测试技术进行了优化,增强了网络爬虫与Web应用程序的交互能力;并利用Fuzzing技术构造针对不同数据入口的多种注入代码及其变体,通过强制注入代码的执行,对Web应用程序中存在的SQL注入漏洞进行全面和深入地检测。本文设计并实现了一个在客户端进行SQL注入漏洞检测的工具SQLIExposer,它能自动检测Web应用程序中存在的SQL注入漏洞。对SQLIExposer进行测试的结果表明,SQLIExposer能检测大多数类型的SQL注入漏洞;而与当前主流的SQL漏洞检测工具相比,SQLIExposer在通用性和性能上具有一定的优越性。