论文部分内容阅读
随着WEB2.0新技术的出现,WEB应用在互联网各行各业中快速发展,应用范围十分广泛。与此同时WEB应用也面临着日趋复杂的安全威胁,其中注入漏洞是影响WEB应用安全最重要的漏洞之一,而SQL注入漏洞又是注入漏洞中影响最广泛、最严重的漏洞。SQL注入攻击通常是攻击者将构造的恶意语句依附在正常的HTTP请求中,通过验证并被解析执行,从而发生注入攻击。SQL注入攻击会造成敏感信息泄漏、WEB应用非法访问等严重后果。根据SQL注入的产生过程,本文将SQL注入划分为一阶SQL注入漏洞和二阶SQL注入漏洞。当前对于一阶SQL注入漏洞的预防和检测方法比较成熟,但对于二阶SQL注入漏洞缺少准确有效的检测方法。本文通过深入研究SQL注入技术和原理,总结了 SQL注入漏洞存在的规律和特征,将一阶SQL注入攻击和二阶SQL注入攻击过程进行细分,二阶SQL注入过程可以抽象为存储和检索2个步骤。在深入理解二阶SQL注入攻击原理的基础上,HTML5客户端数据库本地存取数据的新技术出现,并根据其离线更新的机制,发现一种新类型二阶SQL注入漏洞,将其称为二阶异步SQL注入漏洞。通过数据项将二阶SQL注入漏洞2个步骤关联起来,提出一种结合静态分析和渗透测试的方法检测二阶SQL注入漏洞。静态分析部分,程序源码进入静态分析模块,经过预处理、程序切片及敏感函数匹配等手段,创建数据项,再经过数据项对子模块处理,最终得到可疑数据项对集合和可疑路径集合;渗透测试部分,根据恶意输入规则库,生成畸形测试语句对可疑路径及可疑数据项对进行测试,并依据WEB响应确认是否存在二阶SQL注入漏洞。选取6个有代表性的WEB应用作为实验对象,对本文提出的二阶SQL注入漏洞的检测方法进行实验验证,根据得到的实验结果进行分析,得出本文提出的检测方法有效可行。