针对门户网站SQL注入漏洞软件的设计与实现
作者:张珊珊等
来源:《数字技术与应用》2014年第11
        摘要:现在SQL注入攻击是Web应用系统的严重安全隐患,通过该类型攻击,攻击者可以非法获得Web后台数据库中企业和用户的隐私信息。本文研究了网站爬取页面技术与SQL注入原理,设计实现了对门户网站SQL注入探测系统并对该系统进行了测试,测试结果表明能够快速的对网站页面进行扫描并到存在SQL注入漏洞的页面。
        关键词:SQL注入 网络爬虫、网站数据库
        中图分类号:TP393.08 文献标识码:A 文章编号:1007-9416201411-0189-01
        如果门户网站的代码没有对用户输入数据的合法性进行判断和过滤,攻击者可以通过提交针对性的数据库指令来获取超出其权限的门户网站后台数据库的数据,甚至得到管理员账号信息,这就是SQL注入[1]SQL注入攻击是门户网站中越发引起关注的安全隐患之一。我们设计实现了一个SQL注入探测软件,以用于检测门户网站是否存在SQLspring framework高危漏洞注入攻击隐患。
        1 SQL注入原理
        SQl注入是将SQL查询代码插入到用户的输入参数中,将此参数传递给门户网站的后台数据库解析执行。进一步说,针对交互型动态网页,用户在提交的请求后面附加SQL指令,如果服务端提取用户输入参数的代码没有对输入进行过滤 ,一旦动态网页访问了后台数据库,则可能存在SQL注入漏洞[2]
        输入参数分成数字型或字符型两类,因此判断门户网站代码是否具有过滤用户输入功能也相应分成2种识别技术。下面以动态网址形如:http///test.php id=y为例进行阐述。
        1.1 数字型SQL注入漏洞检测技术
        首先,在网址后附加 and 1=1,即:http///test.phpid=y and 1=1,看动态网页test.php在用户端是否显示正常,且与不附加逻辑等式 and 1=1的页面显示一样;然后,在网址后附加 and 1=2,即:即:http///test.phpid=y and 1=2,看动态网页test.php在用户端是否显示正常,如果含有过滤代码,则显示正常页面,反之,如果显示错误,则表明附加的逻辑等式被执行,服务端不含过滤代码,即含有潜在SQL注入漏洞。
        1.2 字符型SQL注入漏洞检测技术
        首先,在网址后附加单引号,再添加and ‘A’=’A,即:http///test.phpid=y‘ and ‘A’=’A,看动态网页test.php在用户端是否显示正常, 且与不附加逻辑等式的页面显示一样;然后,在网址后附加单引号,再添加and ‘A’=’B,即:即:http///test.phpid=y’ and ‘A’=’B,看动态网页test.php在用户端是否显示正常,如果含有过滤代码,则显示正常页面,反之,如果显示错误,则表明附加的逻辑等式被执行,服务端不含过滤代码,即含有潜在SQL注入漏洞。
        需要特别指出:在字符型检测技术中,在附加的逻辑等式后没有单引号’”,这是因为服务端读取输入参数后会自动补全一个单引号。基于以上两种探测技术,模拟构造受测试网站的非法型输入数据,并向该网站进行提出申请,通过探测返回的信息,判断该网站是否存在SQL注入的漏洞。
        通过取消“Internet 选项”->“高级”->”显示友好HTTP错误信息前面的对勾,当发出非法的数据后并错误执行后,该网站的返回页面就会暴露后台数据库的类型或者数据库所存储表的某些记录信息,比如:id=102正确返回,id=103错误返回,表明该表大小不超过102
        2 门户网站的网页爬取技术
        网络爬虫(Web crawler)是一个网页自动抓取程序[3]。主要任务是从访问网站的主页开始,下载主页的Html源码,并提取其中的链接,再打开新的链接,下载子网页的Html源码,继续提取其中的链接,不断重复上述过程,直到满足系统的某种标准为止。网页抓取策略,可以分为深度优先遍历、广度优先遍历以及最佳优先遍历三种方式。本文匹配采用正则表达式技术[4],网络爬虫模块选择广度优先策略,在模块的实现中采用多线程并发爬行策略,借助并行性,提高了搜索的效率。
        3 门户网站SQL漏洞注入软件的设计实现
        系统包含主控模块、网络爬虫模块和SQL注入探测模块。主控模块对网络爬虫模块和注入探测模块进行调度,利用爬虫模块得到的URL列表,对其中的每一个URL,添加SQL注入语句测试库中的攻击测试参数,然后提交POSTGET请求,根据服务器的响应结果,判断其是存在SQL漏洞。系统总体设计如图1所示。
        4 系统测试
        使用本软件对目标网站进行注入漏洞的探测,检验能否发现存在漏洞的页面或泄露敏感信息的页面。待测网址是北京****学院的网站,发现其网站部分网页存在SQL注入隐患,隐患网页地址为:www.****.edu/page.phpsid=2&ssid=254(此处隐去学校名词)。
        5 结语
        本文设计并实现了一个针对门户网站的SQL注入漏洞探测软件,并实验证明了其有效性。SQL注入攻击是一种比较古老的脚本攻击漏洞,但是却一直保持着常青,伴着现在门户网站的飞速发展,SQL注入攻击大有越演越烈之势。SQL注入攻击因其自身具有隐蔽性、容易攻击及危害比较大等特性,应该引起人们的广泛注意。
        参考文献
        [1]王伟平,李昌,段桂华.基于正则表示的SQL注入过滤模块设计[J].计算机工程,2011375):158-160.
        [2]陈小兵,罗晖.Access数据库SQL注入攻防技术研究[J].信息网络安全,2012,(3):78-80.
        [3]杜雷,辛阳.基于规则库和网络爬虫的漏洞检测技术研究与实现[J].信息网络安全.2014,(10):38-43.
        [4]吴贵山.SQL注入攻击防御策略的研究.计算机与网络[J].2012,(9):70-73.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。