CN106411906A - 一种sql注入漏洞定位检测方法 - Google Patents

一种sql注入漏洞定位检测方法 Download PDF

Info

Publication number
CN106411906A
CN106411906A CN201610885679.6A CN201610885679A CN106411906A CN 106411906 A CN106411906 A CN 106411906A CN 201610885679 A CN201610885679 A CN 201610885679A CN 106411906 A CN106411906 A CN 106411906A
Authority
CN
China
Prior art keywords
program
sql
variable
sql injection
module
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.)
Pending
Application number
CN201610885679.6A
Other languages
English (en)
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.)
Hefei Red Coral Software Service Co Ltd
Original Assignee
Hefei Red Coral Software Service 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 Hefei Red Coral Software Service Co Ltd filed Critical Hefei Red Coral Software Service Co Ltd
Priority to CN201610885679.6A priority Critical patent/CN106411906A/zh
Publication of CN106411906A publication Critical patent/CN106411906A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种SQL注入漏洞定位检测方法,先通过渗透测试运用模拟攻击的方式来检测WEB程序中是否有SQL注入漏洞,再运用程序分析技术对源代码进行分析,运用数据流跟踪技术、插桩技术对污染变量的传播进行跟踪,最终给出污染变量在程序中的传播路径,便于开发维护人员进行漏洞的修补。本发明提出了渗透测试与程序分析技术相结合的方法,解决了渗透测试无法分析源程序及纯粹程序分析浪费时间的缺点,为SQL注入漏洞的定位检测提供了一种新的思路。

Description

一种SQL注入漏洞定位检测方法
技术领域
本发明属于计算机技术领域,特别涉及信息安全领域,特别是涉及一种SQL注入漏洞定位检测方法。
背景技术
随着互联网迅猛发展,越来越多的WEB应用都采取了三级架构:数据库服务器、应用服务器和客户端。用户在客户端输入数据,应用服务器根据其输入构建SQL语句,并将SQL语句送至数据库中执行操作,最终将结果返回给用户。由于数据库中存储着大量敏感信息,导致其频繁遭到攻击,其中最严重的就是SQL注入攻击。SQL注入攻击是指攻击者在合法SQL语句中插入SQL关键字或操作符从而改变SQL语句的语义、语法结构,将这些恶意的SQL语句提交给数据库,获取用户名密码等敏感信息,进而获取主机控制权限等。OWASP于2013年发布的十大WEB应用安全漏洞中,SQL注入攻击排名第一。
本发明提出一种利用渗透测试与程序分析技术相结合的方法来实现对SQL注入漏洞的定位。渗透测试阶段输入网站地址,通过模拟攻击确定引起SQL注入的用户输入点,程序分析阶段根据渗透测试阶段的结果,在WEB应用系统源代码中通过数据流跟踪技术对漏洞产生过程进行分析。
发明内容
本发明的目的是提供一种SQL注入漏洞定位检测方法,实现SQL注入漏洞的定位检测。
本发明的目的可以通过以下技术方案实现:
一种SQL注入漏洞定位检测方法,包括以下步骤:
步骤S1,信息获取模块检测网站地址的可访性并获取网页源代码并传给模拟攻击模块;
步骤S2,模拟攻击模块在网页中寻找如用户登陆等方面的可能注入点,依次从攻击字符串库调用攻击字符串对网站实施模拟攻击,根据服务器端返回页面检测结果判断是否攻击成功,若成功则表示存在SQL注入漏洞,将网站位置及可能注入点保存,以便程序分析阶段时使用;
步骤S3,源代码载入器根据模拟攻击模块渗透测试的结果载入存在SQL注入漏洞的页面源代码,为后来的漏洞定位做准备;
步骤S4,标识模块污染变量,为跟踪数据流做准备;
步骤S5,数据流跟踪模块运用数据流跟踪技术跟踪污染变量在程序中的传播,若最终组成SQL查询语句的变量中有来自用户输入的数据,则断定该变量为SQL注入点,给出该变量输入点的位置及其传播路径;
步骤S6,代码插桩器在程序中插入信息以监测程序的动态运行,是为了收集程序的运行时特征数据,在被测程序的特定部位插入一段检测程序,但不破坏被测程序的原有逻辑完整性,生成含探针的程序;其中,插入的探针是为了记录变量传播的路径,在检测到变量为引发SQL注入漏洞的注入点时,抛出其最先接受输入的位置以及其在程序中的传播路径,方便日后对漏洞的修复;
步骤S7,动态测试模块通过输入测试数据,最终给出污染变量在程序中的传播路径,生成SQL注入点报告。
本发明的有益效果:本发明所提出一种SQL注入漏洞定位检测方法,先通过渗透测试运用模拟攻击的方式来检测WEB程序中是否有SQL注入漏洞,再运用程序分析技术对源代码进行分析,运用数据流跟踪技术、插桩技术对污染变量的传播进行跟踪,最终给出污染变量在程序中的传播路径,便于开发维护人员进行漏洞的修补,本发明提出了渗透测试与程序分析技术相结合的方法,解决了渗透测试无法分析源程序及纯粹程序分析浪费时间的缺点,为SQL注入漏洞的定位检测提供了一种新的思路。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明的系统示意图。
图2是本发明的方法流程图。
具体实施方式
本发明的目的是提供一种SQL注入漏洞定位检测方法,实现SQL注入漏洞的定位检测。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明提供了一种SQL注入漏洞定位检测系统,包括渗透测试单元D110和程序分析单元D120。
所述的渗透测试单元D110包括信息获取模块M211、攻击字符串库DB1和模拟攻击模块M212;信息获取模块M211检测URL可访性并获取网页源代码,在网页中寻找如用户登陆等方面的可能注入点,依次从攻击字符串库DB1调用攻击字符串对网站实施模拟攻击,根据服务器端返回页面检测结果判断是否攻击成功,若成功则表示存在SQL注入漏洞,将网站位置及可能注入点保存,以便程序分析阶段时使用。
所述的程序分析单元D120包括源代码载入器P1、标识模块M213、数据流跟踪模块M214、代码插桩器P2和动态测试模块M215;源代码载入器P1根据渗透测试的结果载入存在SQL注入漏洞的页面源代码,为后来的漏洞定位做准备;标识模块M213标识污染变量,运用数据流跟踪技术跟踪污染变量在程序中的传播,若最终组成SQL查询语句的变量中有来自用户输入的数据,则断定该变量为SQL注入点,给出该变量输入点的位置及其传播路径;代码插桩器P2在程序中插入信息以监测程序的动态运行,本发明中的插桩用于得到污染变量的传播路径。
如图2所示,一种SQL注入漏洞定位检测方法,包括以下步骤:
步骤S1,信息获取模块M211检测网站地址U1的可访性并获取网页源代码,并传给模拟攻击模块M212;
步骤S2,模拟攻击模块M212在网页中寻找如用户登陆等方面的可能注入点,依次从攻击字符串库DB1调用攻击字符串对网站实施模拟攻击,根据服务器端返回页面检测结果判断是否攻击成功,若成功则表示存在SQL注入漏洞,将网站位置及可能注入点保存,以便程序分析阶段时使用;
步骤S3,源代码载入器P1根据模拟攻击模块M212渗透测试的结果载入存在SQL注入漏洞的页面源代码,为后来的漏洞定位做准备;
步骤S4,标识模块M213污染变量,为跟踪数据流做准备;
步骤S5,数据流跟踪模块M214运用数据流跟踪技术跟踪污染变量在程序中的传播,若最终组成SQL查询语句的变量中有来自用户输入的数据,则断定该变量为SQL注入点,给出该变量输入点的位置及其传播路径;
步骤S6,代码插桩器P2在程序中插入信息以监测程序的动态运行,是为了收集程序的运行时特征数据,在被测程序的特定部位插入一段检测程序(探针),但不破坏被测程序的原有逻辑完整性,生成含探针的程序P3;本发明中插入的探针是为了记录变量传播的路径,在检测到变量为引发SQL注入漏洞的注入点时,抛出其最先接受输入的位置以及其在程序中的传播路径,方便日后对漏洞的修复;
步骤S7,动态测试模块M215通过输入测试数据,最终给出污染变量在程序中的传播路径,生成SQL注入点报告。
本发明所提出一种SQL注入漏洞定位检测方法,先通过渗透测试运用模拟攻击的方式来检测WEB程序中是否有SQL注入漏洞,再运用程序分析技术对源代码进行分析,运用数据流跟踪技术、插桩技术对污染变量的传播进行跟踪,最终给出污染变量在程序中的传播路径,便于开发维护人员进行漏洞的修补,本发明提出了渗透测试与程序分析技术相结合的方法,解决了渗透测试无法分析源程序及纯粹程序分析浪费时间的缺点,为SQL注入漏洞的定位检测提供了一种新的思路。
为了描述的方便,描述以上装置时以功能分为各种单元、模块分别描述。当然,在实施本申请时可以把各单元、模块的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。
以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上内容仅仅是对本发明结构所作的举例和说明,所属本技术领域的技术人员对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

Claims (1)

1.一种SQL注入漏洞定位检测方法,其特征在于,包括以下步骤:
步骤S1,信息获取模块检测网站地址的可访性并获取网页源代码并传给模拟攻击模块;
步骤S2,模拟攻击模块在网页中寻找如用户登陆等方面的可能注入点,依次从攻击字符串库调用攻击字符串对网站实施模拟攻击,根据服务器端返回页面检测结果判断是否攻击成功,若成功则表示存在SQL注入漏洞,将网站位置及可能注入点保存,以便程序分析阶段时使用;
步骤S3,源代码载入器根据模拟攻击模块渗透测试的结果载入存在SQL注入漏洞的页面源代码,为后来的漏洞定位做准备;
步骤S4,标识模块污染变量,为跟踪数据流做准备;
步骤S5,数据流跟踪模块运用数据流跟踪技术跟踪污染变量在程序中的传播,若最终组成SQL查询语句的变量中有来自用户输入的数据,则断定该变量为SQL注入点,给出该变量输入点的位置及其传播路径;
步骤S6,代码插桩器在程序中插入信息以监测程序的动态运行,是为了收集程序的运行时特征数据,在被测程序的特定部位插入一段检测程序,但不破坏被测程序的原有逻辑完整性,生成含探针的程序;其中,插入的探针是为了记录变量传播的路径,在检测到变量为引发SQL注入漏洞的注入点时,抛出其最先接受输入的位置以及其在程序中的传播路径,方便日后对漏洞的修复;
步骤S7,动态测试模块通过输入测试数据,最终给出污染变量在程序中的传播路径,生成SQL注入点报告。
CN201610885679.6A 2016-10-10 2016-10-10 一种sql注入漏洞定位检测方法 Pending CN106411906A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610885679.6A CN106411906A (zh) 2016-10-10 2016-10-10 一种sql注入漏洞定位检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610885679.6A CN106411906A (zh) 2016-10-10 2016-10-10 一种sql注入漏洞定位检测方法

Publications (1)

Publication Number Publication Date
CN106411906A true CN106411906A (zh) 2017-02-15

Family

ID=59229641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610885679.6A Pending CN106411906A (zh) 2016-10-10 2016-10-10 一种sql注入漏洞定位检测方法

Country Status (1)

Country Link
CN (1) CN106411906A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019144548A1 (zh) * 2018-01-26 2019-08-01 平安科技(深圳)有限公司 安全测试方法、装置、计算机设备和存储介质
CN110225029A (zh) * 2019-06-10 2019-09-10 北京达佳互联信息技术有限公司 注入攻击检测方法、装置、服务器及存储介质
CN110929264A (zh) * 2019-11-21 2020-03-27 中国工商银行股份有限公司 漏洞检测方法、装置、电子设备及可读存储介质
CN113158197A (zh) * 2021-05-26 2021-07-23 北京安普诺信息技术有限公司 一种基于主动iast的sql注入漏洞检测方法、系统
CN114297662A (zh) * 2021-12-24 2022-04-08 深圳开源互联网安全技术有限公司 一种sql注入漏洞检测方法、装置及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102104601A (zh) * 2011-01-14 2011-06-22 无锡市同威科技有限公司 一种基于渗透技术的web漏洞扫描方法和漏洞扫描器
CN102136051A (zh) * 2011-05-06 2011-07-27 南开大学 一种应用SGM-SQL注入模型驱动web应用渗透测试的方法
CN103780614A (zh) * 2014-01-21 2014-05-07 金华比奇网络技术有限公司 一种基于模拟攻击扩展的sql注入漏洞挖掘方法
CN104200167A (zh) * 2014-08-05 2014-12-10 杭州安恒信息技术有限公司 自动化渗透测试方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102104601A (zh) * 2011-01-14 2011-06-22 无锡市同威科技有限公司 一种基于渗透技术的web漏洞扫描方法和漏洞扫描器
CN102136051A (zh) * 2011-05-06 2011-07-27 南开大学 一种应用SGM-SQL注入模型驱动web应用渗透测试的方法
CN103780614A (zh) * 2014-01-21 2014-05-07 金华比奇网络技术有限公司 一种基于模拟攻击扩展的sql注入漏洞挖掘方法
CN104200167A (zh) * 2014-08-05 2014-12-10 杭州安恒信息技术有限公司 自动化渗透测试方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张莹莹等: "一种SQL注入漏洞定位检测方法", 《计算机应用与软件》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019144548A1 (zh) * 2018-01-26 2019-08-01 平安科技(深圳)有限公司 安全测试方法、装置、计算机设备和存储介质
CN110225029A (zh) * 2019-06-10 2019-09-10 北京达佳互联信息技术有限公司 注入攻击检测方法、装置、服务器及存储介质
CN110225029B (zh) * 2019-06-10 2021-08-17 北京达佳互联信息技术有限公司 注入攻击检测方法、装置、服务器及存储介质
CN110929264A (zh) * 2019-11-21 2020-03-27 中国工商银行股份有限公司 漏洞检测方法、装置、电子设备及可读存储介质
CN113158197A (zh) * 2021-05-26 2021-07-23 北京安普诺信息技术有限公司 一种基于主动iast的sql注入漏洞检测方法、系统
CN114297662A (zh) * 2021-12-24 2022-04-08 深圳开源互联网安全技术有限公司 一种sql注入漏洞检测方法、装置及可读存储介质
CN114297662B (zh) * 2021-12-24 2023-02-03 深圳开源互联网安全技术有限公司 一种sql注入漏洞检测方法、装置及可读存储介质

Similar Documents

Publication Publication Date Title
Fonseca et al. Evaluation of web security mechanisms using vulnerability & attack injection
CN106411906A (zh) 一种sql注入漏洞定位检测方法
Fonseca et al. Testing and comparing web vulnerability scanning tools for SQL injection and XSS attacks
Fonseca et al. Vulnerability & attack injection for web applications
CN103297394B (zh) 网站安全检测方法和装置
CN103077348B (zh) 一种Web站点漏洞扫描方法和装置
Shar et al. Auditing the XSS defence features implemented in web application programs
CN111104579A (zh) 一种公网资产的识别方法、装置及存储介质
CN102541729A (zh) 软件安全漏洞检测装置和方法
CN110765459A (zh) 一种恶意脚本检测方法、装置和存储介质
CN106407811A (zh) 一种sql注入漏洞定位检测系统
CN109104421B (zh) 一种网站内容篡改检测方法、装置、设备及可读存储介质
CN106874768A (zh) 渗透测试的方法及装置
KR101796369B1 (ko) 소프트웨어 분석을 위한 리버스 엔지니어링 협업 장치, 방법 및 시스템
CN103647678A (zh) 一种网站漏洞在线验证方法及装置
CN111611590B (zh) 涉及应用程序的数据安全的方法及装置
Ali et al. Protection web applications using real-time technique to detect structured query language injection attacks
Pérez et al. Lapse+ static analysis security software: Vulnerabilities detection in java ee applications
CN115827610A (zh) 一种有效负荷的检测方法及装置
Dorofeev et al. Ethical hacking training
Yan et al. Detection method of the second-order SQL injection in Web applications
CN111309589A (zh) 一种基于代码动态分析的代码安全扫描系统及方法
CN114491560A (zh) 一种漏洞检测方法、装置、存储介质及电子设备
Vimala et al. VAPE-BRIDGE: Bridging OpenVAS results for automating metasploit framework
Ibrahim et al. Beware of the Vulnerability! How Vulnerable are GitHub's Most Popular PHP Applications?

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170215