论文部分内容阅读
伴随互联网技术的日新月异和高速发展,网络已逐渐成为了人们日常生活所不可或缺的“必需品”。然而,凡事都有两面性。网络在带给人们便利生活的同时,也给恶意攻击者提供了一个绝好的犯罪舞台。“网络犯罪”对大家来说,已不再陌生和遥远。网络安全已成为了一个不可忽视的重大问题,其中,尤以SQL注入漏洞较为严重。本文在深入研究SQL注入产生的原理、利用方式、防御措施的前提下,研究和设计出了一款专门用于SQL注入深度扫描的扫描器,其主要阶段的处理工作包括:对待测站点的爬虫扫描。本文采用了基于多线程的爬虫,可以很好地提升扫描速度,提高抓取效率。本文所设计的爬虫,用java语言编程,从用户指定的主页开始,按照指定的深度抓取该站点域名下的网页。为实现线程同步,调用synchronized关键字避免线程冲突。当扫描结束时,爬虫模块会在指定文件夹下自动生成result.txt文件,记录扫描结果。同时,本文还用到了Hashtable类关联数组,以防止重复抓取网页。在深度探测模块中,本文通过sleep()和BENCHMARK()函数,对不确定是否存在SQL注入的页面进行延时注入检测。如果存在SQL注入,则用户输入会被Web应用程序执行。具体到该模块,则是sleep()和BENCHMARK()函数会被应用程序执行,执行的结果将是页面返回时间存在延迟,即可证明该页面确实可以进行注入。本文即是采用延时注入的方法,将经过普通SQL注入检测模块未检测出存在注入的页面再检测一遍,以达到降低漏报率的目的。在模拟攻击模块,本文通过字典暴破、查看和分析页面返回的错误信息、逐位猜解的方式对已检测出存在注入漏洞的站点进行模拟攻击。通过模拟黑客攻击,对SQL注入漏洞做一个漏洞高危级别判定。经实验证明,本文设计实现的这款SQL注入深度检测扫描器不仅扫描速度快,而且通过增加深度扫描模块,降低了漏报率;并在此基础上,帮助渗透测试员理解SQL注入漏洞可能造成的危害,加强程序员的安全防护意识。