CN102799830B - 一种改进的sql注入漏洞检测方法 - Google Patents

一种改进的sql注入漏洞检测方法 Download PDF

Info

Publication number
CN102799830B
CN102799830B CN201210277272.7A CN201210277272A CN102799830B CN 102799830 B CN102799830 B CN 102799830B CN 201210277272 A CN201210277272 A CN 201210277272A CN 102799830 B CN102799830 B CN 102799830B
Authority
CN
China
Prior art keywords
sql
injection
module
judged
injecting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210277272.7A
Other languages
English (en)
Other versions
CN102799830A (zh
Inventor
张婷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Meiya Pico Information Co Ltd
Original Assignee
Xiamen Meiya Pico Information Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiamen Meiya Pico Information Co Ltd filed Critical Xiamen Meiya Pico Information Co Ltd
Priority to CN201210277272.7A priority Critical patent/CN102799830B/zh
Publication of CN102799830A publication Critical patent/CN102799830A/zh
Application granted granted Critical
Publication of CN102799830B publication Critical patent/CN102799830B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种改进的SQL注入漏洞检测方法,包括数据包构造模块、服务器交换模块、SQL注入验证模块,通过数据包构造模块实现将原始数据包进行解析,自动解析出注入点可能存在的位置,构造不同的数据包,通过服务器交互模块负责把构造的数据包发送出去并接收服务器返回数据包,SQL注入验证模块通过若干规则设定将普通报错法和盲注入方法相结合,并通过对不同请求的返回页面的智能分析判断是否存在关键词,从而判断是否存在SQL注入漏洞,并给出结果。本发明采用普通SQL注入检测和盲注入检测相结合的思想,对不同请求的返回页面进行智能分析,从而更有效的发现网站SQL注入点,并列出可能存在的漏洞,为网站的安全评估提供一个较为可靠的参考依据。

Description

一种改进的SQL注入漏洞检测方法
技术领域
本发明涉及一种改进的SQL注入漏洞检测方法。
背景技术
近年来数据库安全,网站用户隐私保护成为网络安全关注的焦点,一些黑客通过web站点上存在的SQL注入漏洞对网站数据库进行破坏或窃取网站数据,对网站安全和用户个人隐私造成严重危害,虽然随着大家安全意识的提高,很多中小网站也采取了简单的防注入措施,例如屏蔽错误信息,对用户提交的数据进行过滤等,但是依然有可能存在SQL注入点,因而采取一种有效的方法来检测可能存在的SQL注入点,对于网站安全的提升有很重要的意义。
发明内容
本发明所要解决的技术问题是提供一种采用普通SQL注入检测和盲注入检测相结合的改进的SQL注入漏洞检测方法。
本发明是通过以下技术方案来实现的:一种改进的SQL注入漏洞检测方法,包括数据包构造模块、服务器交换模块、SQL注入验证模块,通过数据包构造模块实现将原始数据包进行解析,自动解析出注入点可能存在的位置,构造不同的数据包,通过服务器交互模块负责把构造的数据包发送出去并接收服务器返回数据包,通过SQL注入验证模块通过若干规则的设定,并通过比较返回页面的异同智能解析网页,判断是否存在关键词,从而判断是否能注入,并给出结果,其特征在于,所述的步骤:
(1)开始网页检测;
(2)分析待检测网页对应的数据包或者URL;
(3)进行普通SQL注入尝试报错法;
(4)返回报错信息,如果存在报错信息,判断为可注入,如果无报错信息,则使用盲注入方法尝试;
(5)进行盲注入方法尝试;
(6)对三个不同请求(正常请求、恒为真、恒为假表达式请求)的返回页面结果进行智能分析,若存在满足特定条件的关键词,则判断为可注入,若不存在满足特定条件的关键词,则判断为不可注入。
作为优选,所述的盲注入方法步骤如下:
(1)计算正常页面和真页面相似度S1;
(2)如果S1小于M,则判断为不可注入,若S1大于M,则计算真页面和假页面相似度比较S2,,若S2大于或等于S1,则判断为不可注入,若小于S1,则进行下一步骤;
(3)提取三个页面中感兴趣的字符串并保存到链表L1,L2,L3;
(4)比较L1,L2,L3,查找L1,L2中存在,L3中不存在字符串K(关键词);
(5)判断关键词-字符串K是否存在,若不存在,则判断为不可注入,如存在,则判断为可注入。
本发明的有益效果是:本方案通过分析web页面提交的参数,采用普通SQL注入检测和盲注入检测相结合的思想,从而更有效的发现网站SQL注入点,并列出可能存在的漏洞,为网站的安全评估提供一个较为可靠的参考依据。
附图说明
为了易于说明,本发明由下述的具体实施例及附图作以详细描述。
图1为本发明改进的SQL注入漏洞检测方法的程序流程图;
图2为本发明改进的SQL注入漏洞检测方法的盲注入方法检测SQL注入漏洞的具体算法流程图。
具体实施方式
如图1和2所示,本发明的一种改进的SQL注入漏洞检测方法,包括数据包构造模块、服务器交换模块、SQL注入验证模块,通过数据包构造模块实现将原始数据包进行解析,自动解析出注入点可能存在的位置,构造不同的数据包,通过服务器交互模块负责把构造的数据包发送出去并接收服务器返回数据包,通过SQL注入验证模块通过若干规则的设定,并通过比较返回页面的异同智能解析网页,判断是否存在关键词,从而判断是否能注入,并给出结果,其特征在于,所述的步骤:
(1)开始网页检测;
(2)分析待检测网页对应的数据包或者URL;
(3)进行普通SQL注入尝试报错法;
(4)返回报错信息,如果存在报错信息,判断为可注入,如果无报错信息,则使用盲注入方法尝试;
(5)进行盲注入方法尝试;
(6)对三个不同请求(正常请求、恒为真、恒为假表达式请求)的返回页面结果进行智能分析,若存在满足特定条件的关键词,则判断为可注入,若不存在满足特定条件的关键词,则判断为不可注入。
普通SQL注入检测的思路是通过构造请求数据包,web应用程序在进行SQL操作时运行出错,SQL数据库会报错,利用web页面返回的SQL数据库报错信息可以得知web应用程序存在SQL注入漏洞,通过匹配各种类型数据库的报错信息模板,即可得知web应用采用的是哪种数据库。例如:某网页url为http://www.abc.com/news.aspx?id=1,通过构造使web端查询语句出错的请求http://www.abc.com/news.aspx?id=1’使得服务器返回报错信息,如“Microsoft JET Database Engine错误”,通过匹配报错信息即可得知该网页可注入,并且数据库类型为access。
盲注入技术是指对于屏蔽了错误信息或者注入结果并不直接显示出来的web应用程序进行注入尝试,此类web应用程序如果存在注入点,会随着注入到合法SQL表达式中的逻辑表达式的不同而呈现出不同的返回页面,黑客凭肉眼通过比较几个不同请求的返回页面的异同点,就可以判断出该页面是否可以注入,例如某个网页的url为http://xxxx.com/news.aspx?id=2(正常请求)通过构造不同逻辑的请求,如一个真表达式和一个假表达式:
http://xxxx.com/news.aspx?id=2and 1=1(恒为真表达式请求)和http://xxxx.com/news.aspx?id=2 an d1=2(恒为假表达式请求)分别可以得到正常返回页面,真表达式返回页面,假表达式返回页面,(后面统称为正常页面,真页面,假页面)通过对这三个页面进行智能分析,如果存在某个字符串----关键词在正常返回页面和真页面中存在,在假页面中不存在则判断为该页面可注入。
其中,所述的盲注入方法步骤如下:
(1)计算正常页面和真页面相似度S1;
(2)如果S1小于M,则判断为不可注入,若S1大于M,则计算真页面和假页面相似度比较S2,,若S2大于或等于S1,则判断为不可注入,若小于S1,则进行下一步骤;
(3)提取三个页面中敢兴趣的字符串并保存到链表L1,L2,L3;
(4)比较L1,L2,L3,查找L1,L2中存在,L3中不存在字符串K(关键词);
(5)判断关键词-字符串K是否存在,若不存在,则判断为不可注入,如存在,则判断为可注入
本方案通过分析web页面提交的参数,采用普通SQL注入检测和盲注入检测相结合的思想,从而更有效的发现网站SQL注入点,并列出可能存在的漏洞,为网站的安全评估提供一个较为可靠的参考依据。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书所限定的保护范围为准。

Claims (1)

1.一种改进的SQL注入漏洞检测方法,其特在在于:包括数据包构造模块、服务器交换模块、SQL注入验证模块,通过数据包构造模块实现将原始数据包进行解析,自动解析出注入点可能存在的位置,构造不同的数据包,通过服务器交互模块负责把构造的数据包发送出去并接收服务器返回数据包,通过SQL注入验证模块通过若干规则的设定,并通过比较返回页面的异同智能解析网页,判断是否存在关键词,从而判断是否能注入,并给出结果,所述改进的SQL注入漏洞检测方法包括以下步骤:
(1)开始网页检测;
(2)分析待检测网页对应的数据包或者URL;
(3)进行普通SQL注入尝试报错法;
(4)返回报错信息,如果存在报错信息,判断为可注入,如果无报错信息,则使用盲注入方法尝试;
其中,所述盲注入方法步骤如下:
(1)计算正常页面和真页面相似度S1;
(2)如果S1小于M,则判断为不可注入,若S1大于M,则计算真页面和假页面相似度比较S2,若S2大于或等于S1,则判断为不可注入,若小于S1,则进行下一步骤;
(3)提取三个页面中感兴趣的字符串并保存到链表L1,L2,L3;
(4)比较L1,L2,L3,查找L1,L2中存在,L3中不存在字符串K;
(5)判断字符串K是否存在,若不存在,则判断为不可注入,如存在,则判断为可注入。
CN201210277272.7A 2012-08-06 2012-08-06 一种改进的sql注入漏洞检测方法 Active CN102799830B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210277272.7A CN102799830B (zh) 2012-08-06 2012-08-06 一种改进的sql注入漏洞检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210277272.7A CN102799830B (zh) 2012-08-06 2012-08-06 一种改进的sql注入漏洞检测方法

Publications (2)

Publication Number Publication Date
CN102799830A CN102799830A (zh) 2012-11-28
CN102799830B true CN102799830B (zh) 2015-06-17

Family

ID=47198934

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210277272.7A Active CN102799830B (zh) 2012-08-06 2012-08-06 一种改进的sql注入漏洞检测方法

Country Status (1)

Country Link
CN (1) CN102799830B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530564B (zh) * 2013-09-24 2016-04-13 国家电网公司 一种sql注入漏洞测试与验证方法及系统
CN104636667A (zh) * 2013-11-12 2015-05-20 梁佐云 基于云计算的注入漏洞检测系统及其注入方法
CN105404816B (zh) * 2015-12-24 2018-11-06 北京奇虎科技有限公司 基于内容的漏洞检测方法及装置
CN107145786A (zh) * 2017-05-08 2017-09-08 四川长虹电器股份有限公司 基于数据库注入测试的安全测试系统及方法
CN107392027A (zh) * 2017-07-13 2017-11-24 福建中金在线信息科技有限公司 一种网站漏洞测试方法、测试系统、电子设备及存储介质
CN107704758A (zh) * 2017-08-25 2018-02-16 郑州云海信息技术有限公司 一种sql注入漏洞检测方法和检测装置
CN109150842B (zh) * 2018-07-25 2021-07-09 平安科技(深圳)有限公司 一种注入漏洞检测方法及装置
WO2020034212A1 (zh) * 2018-08-17 2020-02-20 华为技术有限公司 检测web网页安全性的方法和装置
CN109657472B (zh) * 2018-10-11 2023-09-22 平安科技(深圳)有限公司 Sql注入漏洞检测方法、装置、设备及可读存储介质
CN110460606B (zh) * 2019-08-16 2021-10-12 中国银行股份有限公司 一种二阶sql注入漏洞检测方法、装置及设备
CN114884690B (zh) * 2022-03-29 2024-01-02 江苏安超云软件有限公司 检测sql注入点的方法、装置,电子设备,存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101312393A (zh) * 2007-05-24 2008-11-26 北京启明星辰信息技术有限公司 一种sql注入漏洞检测方法及系统
CN102185930A (zh) * 2011-06-09 2011-09-14 北京理工大学 一种sql注入漏洞检测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101312393A (zh) * 2007-05-24 2008-11-26 北京启明星辰信息技术有限公司 一种sql注入漏洞检测方法及系统
CN102185930A (zh) * 2011-06-09 2011-09-14 北京理工大学 一种sql注入漏洞检测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
web应用中SQL注入攻击研究;余志高等;《信息安全与通信保密》;20101231(第4期);第81-83页 *
浅析SQL盲注攻击的实现;王丽丽等;《信息安全与通信保密》;20081231(第5期);第71-76页 *
符宇波.一种自动SQL注入攻击检测与利用系统的研究实现.《万方数据库》.2011,第28-29页3.5小节,图3-4. *

Also Published As

Publication number Publication date
CN102799830A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
CN102799830B (zh) 一种改进的sql注入漏洞检测方法
US10880330B2 (en) Systems and methods for detection of infected websites
CN102622435B (zh) 一种检测黑链的方法和装置
CN103428196B (zh) 一种基于url白名单的web应用入侵检测方法
CN102831345B (zh) Sql注入漏洞检测中的注入点提取方法
CN103559235B (zh) 一种在线社交网络恶意网页检测识别方法
CN103929440B (zh) 基于web服务器缓存匹配的网页防篡改装置及其方法
Djuric A black-box testing tool for detecting SQL injection vulnerabilities
CN101895516B (zh) 一种跨站脚本攻击源的定位方法及装置
CN105930727A (zh) 基于Web的爬虫识别算法
CN104767757A (zh) 基于web业务的多维度安全监测方法和系统
CN103065095A (zh) 一种基于指纹识别技术的web漏洞扫描方法和漏洞扫描器
CN102045319B (zh) Sql注入攻击检测方法及其装置
CN102156832B (zh) 一种Firefox扩展的安全缺陷检测方法
CN104994091B (zh) 异常流量的检测方法及装置、防御Web攻击的方法和装置
CN109768992A (zh) 网页恶意扫描处理方法及装置、终端设备、可读存储介质
CN102833270A (zh) Sql注入攻击的检测方法、装置和具有该装置的防火墙
Yeole et al. Analysis of different technique for detection of SQL injection
CN105046150A (zh) 防止sql注入的方法及系统
CN103118035A (zh) 分析网站访问请求参数合法范围的方法及装置
CN114244564B (zh) 攻击防御方法、装置、设备及可读存储介质
CN102833269A (zh) 跨站攻击的检测方法、装置和具有该装置的防火墙
CN109104421A (zh) 一种网站内容篡改检测方法、装置、设备及可读存储介质
CN103220277B (zh) 监控跨站脚本攻击的方法、装置及系统
CN106650454A (zh) 一种sql注入攻击检测方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant