CN104657659B - 一种存储跨站攻击脚本漏洞检测方法、装置及系统 - Google Patents
一种存储跨站攻击脚本漏洞检测方法、装置及系统 Download PDFInfo
- Publication number
- CN104657659B CN104657659B CN201310589239.2A CN201310589239A CN104657659B CN 104657659 B CN104657659 B CN 104657659B CN 201310589239 A CN201310589239 A CN 201310589239A CN 104657659 B CN104657659 B CN 104657659B
- Authority
- CN
- China
- Prior art keywords
- parameter
- webpage
- detected
- unique identifier
- site
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/561—Virus type analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种存储跨站攻击脚本漏洞检测方法、装置及系统。一个实施例中,上述的方法包括:获取目标网页的待检测参数;构造一个特征字符串,该特征字符串内包含可触发存储跨站脚本攻击的字符以及唯一标识符;将所述特征字符串作为所述待检测参数的值提交至所述目标网页;遍历所有可能输出所述提参数值的网页,并判断是否有网页中是否包含所述的唯一标识符;以及若有网页中包含所述的唯一标识符则记录所述待检测参数存在存储跨站攻击脚本漏洞。上述的方法、装置及系统可提升XSS漏洞检测的效率及准确性。
Description
技术领域
本发明涉及计算机安全技术,尤其涉及一种存储跨站攻击脚本漏洞检测方法、装置及系统。
背景技术
跨站脚本攻击(Cross Site Script,XSS)是恶意攻击者通过在网页中加入恶意代码并诱使用户访问,当访问者浏览网页时恶意代码会在用户机器上执行,从而导致恶意攻击者盗取用户信息,或者在用户机器上挂载木马攻击并远程获得用户机器的控制权。XSS分为普通反射型XSS和存储XSS,存储XSS的恶意代码直接存储在目标网站的服务器上,因而比普通反射型XSS危害更大,影响面更广。
由于存储XSS漏洞的攻击方式十分隐蔽且在攻击网页无直接回显特征,目前业界还没有有效的自动化检测工具。
发明内容
有鉴于此,有必要提供一种存储跨站攻击脚本漏洞检测方法、装置及系统,其能够高效的检测网站中的存储跨站攻击脚本漏洞。
一种存储跨站攻击脚本漏洞检测方法,包括:获取目标网页的待检测参数;构造一个特征字符串,该特征字符串内包含可触发存储跨站脚本攻击的字符以及唯一标识符;将所述特征字符串作为所述待检测参数的值提交至所述目标网页;遍历所有可能输出所述提参数值的网页,并判断是否有网页中是否包含所述的唯一标识符;以及若有网页中包含所述的唯一标识符则记录所述待检测参数存在存储跨站攻击脚本漏洞。
一种存储跨站攻击脚本漏洞检测装置,包括:参数获取模块,用于获取目标网页的待检测参数;字符串构造模块,用于构造一个特征字符串,该特征字符串内包含可触发存储跨站脚本攻击的字符以及唯一标识符;参数提交模块,用于将所述特征字符串作为所述待检测参数的值提交至所述目标网页;检测模块,用于遍历所有可能输出所述提参数值的网页,并判断是否有网页中是否包含所述的唯一标识符;以及漏洞记录模块,用于若有网页中包含所述的唯一标识符则记录所述待检测参数存在存储跨站攻击脚本漏洞。
一种存储跨站攻击脚本漏洞检测系统,包括:漏洞检测服务器以及搜索引擎;所述漏洞检测服务器用于:获取目标网页的待检测参数;构造一个特征字符串,该特征字符串内包含可触发存储跨站脚本攻击的字符以及唯一标识符;将所述特征字符串作为所述待检测参数的值提交至所述目标网页;所述搜索引擎用于:遍历所有可能输出所述提参数值的网页;所述漏洞检测服务器还用于:将所述唯一标识符提交至所述搜索引擎进行检索,若所述搜索引擎返回的检索结果中包含至少一个匹配的网页则记录所述待检测参数存在存储跨站攻击脚本漏洞。
根据上述的存储跨站攻击脚本漏洞检测方法、装置及系统,通过模拟存储XSS的攻击方式向被检测的网站提交参数值,而参数的值内包含唯一标识符,在后续的网页遍历过程中若检测到此唯一标识符,则可判定对应的URL以及参数存在XSS漏洞。此种检测方式可全自动的进行,具有很高的检测效率以及准确性。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1为本发明实施例提供的方法及装置的运行环境示意图。
图2为图1中的漏洞检测服务器的结构框图。
图3为图1中的网站服务器的结构框图。
图4为第一实施例提供的存储跨站攻击脚本漏洞检测方法流程图。
图5为第二实施例提供的存储跨站攻击脚本漏洞检测方法流程图。
图6及图7为第三实施例提供的存储跨站攻击脚本漏洞检测方法流程图。
图8为第四实施例提供的存储跨站攻击脚本漏洞检测装置的结构框图。
图9为第五实施例提供的存储跨站攻击脚本漏洞检测系统的示意图。
具体实施方式
为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。
本发明实施例涉及一种存储跨站攻击脚本漏洞检测方法及装置。其用于在检测网站内存储的跨站攻击脚本漏洞。参阅图1,其为上述的方法及装置的运行环境示意图。一个或多个漏洞检测服务器100(图1中仅示出一个)可通过网络与一个或多个网站服务器200(图1中仅示出一个)相连。上述的网络例如可为互联网、局域网、企业内部网等。
进一步参阅图2,其为上述的漏洞检测服务器100的一个实施例的结构框图。如图2所示,漏洞检测服务器100包括:存储器102、处理器104以及网络模块106。可以理解,图2所示的结构仅为示意,其并不对漏洞检测服务器100的结构造成限定。例如,漏洞检测服务器100还可包括比图2中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器102可用于存储软件程序以及模块,如本发明实施例中的跨站攻击脚本漏洞检测方法及装置对应的程序指令/模块,处理器104通过运行存储在存储器102内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的跨站攻击脚本漏洞检测方法。存储器102可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器102可进一步包括相对于处理器104远程设置的存储器,这些远程存储器可以通过网络连接至漏洞检测服务器100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。在一个实例中,上述网络信号为有线网络信号。此时,传输模块106可包括处理器、随机存储器、转换器、晶体振荡器等元件。
上述的软件程序以及模块包括:操作系统122以及漏洞检测模块124。其中操作系统122例如可为LINUX,UNIX,WINDOWS,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。漏洞检测模块124运行在操作系统122的基础上,执行本发明实施例提供的存储跨站攻击脚本漏洞检测方法。
进一步参阅图3,其为图1中的网站服务器200的一个实施例的结构框图。如图3所示,其与漏洞检测服务器100的结构相似,其不同之处在于,并不包括漏洞检测模块124,而包括网站服务器模块126。网站服务器模块126运行在操作系统122的基础上,并通过操作系统122的网络服务监听来自网络的网页访问请求,根据网页访问请求完成相应的数据处理,并返回结果网页或者其他格式的数据给客户端。上述的网站服务器模块126例如可包括动态网页脚本以及脚本解释器等。上述的脚本解释器例如可为Apache网站服务器程序,其用于将动态网页脚本处理成客户端可以接受的格式,例如超文本标记(HTML)语言格式或者可扩展标记语言(XML)格式等。在处理动态网页脚本的过程中,可能需要存取存储在数据库300中的数据。可以理解,在图1所示的实例中,数据库300独立于网站服务器200之外,然而,数据库300也可以运行于网站服务器200内。
第一实施例
本实施例的提供一种存储跨站攻击脚本漏洞检测方法,参阅图4,上述方法包括以下步骤:
步骤S110、获取目标网页的待检测参数。
目标网页是指对应于一个网址(Uniform Resource Locator,URL),例如“http://www.test.com/publish.php”的网页。可以理解,一个网页是由网站服务器(如网站服务器200)内的一个或多个脚本生成并返回至客户端(如漏洞检测服务器100)。为了与网站服务器进行交互,前端网页中会具有多个参数,其可通过POST方式GET方式提交至网站服务器。具体地,可以通过Javascript脚本或者表单(Form)向网站服务器提交参数及其值。网站服务器在接收到请求后,会处理这些参数,而一些参数的值可能会被存储至数据库内。在存储过程中,如果网站服务器内的脚本中存在XSS漏洞,则恶意代码就可能被存储在数据库中。因此,上述的待检测参数就是指前端网页中的能被网站服务器接收并处理的参数。具体实施时,可以获取所有的参数,或者仅获取用户可输入的参数,或者仅获取可能会被存储的参数。
以上述的网页“http://www.test.com/publish.php”为例,其可以具有两个参数:content以及user。这两个参数都可以进行检测,也可以是只检测部分参数,例如仅检测参数content。
步骤S120、构造一个特征字符串,该特征字符串内包含可触发存储跨站脚本攻击的字符以及唯一标识符。
上述的可触发存储跨站脚本攻击的字符例如可包括:”、’、<、>等,但并不以此为限,任何可触发XSS漏洞的字符均可。上述的唯一标识符用于作为上述的特征字符串的唯一标识。
以上述的参数content为例,生成的特征字符串例如可为“<www.test.com_publish.php_content>”。在此特征字符串中,可触发存储跨站脚本攻击的字符为“<>”,而唯一标识符为www.test.com_publish.php_content。
为了使特征字符串易于被识别,唯一标识符内还可包括目标网页的域名、网页名以及参数名。
步骤S130、将所述特征字符串作为所述待检测参数的值提交至对应的网站服务器。
例如,根据目标网页的URL、待检测参数、以及步骤S120中构造出的特征字符串生成一个网址。以上述的网页“http://www.test.com/publish.php”为例生成的网址例如可为:“http://www.test.com/publish.php?content=<www.test.com_publish.php_content>&user=aaa”。然后根据此网址发起HTTP请求,则参数即被提交至对应的网站服务器内。
以上是以GET的方式为例进行说明,然而本实施例的方法,并不限于采用GET方式提交待检测参数的值。例如,还可以采用POST方式提交待检测参数的值。
可以理解,由于提交的参数的值内包含可触发存储跨站脚本攻击的字符,若对应的网站内具有XSS漏洞,则上述的特征字符串的部分内容如唯一标识符会被存储至数据库中。
步骤S140、遍历所有可能输出所述提参数值的网页,并判断是否有网页中是否包含所述的唯一标识符。
在一个实例中,上述的所有可能输出所述提交的参数的值网页例如是指与目标网页在同一网域内的所有网页(可包括目标网页自身)。而同一网域是指具有相同的域名或者同一域名下相同的目录。
可以理解,URL的结构一般如下:域名(/路径(/文件名)),括号表示其内容可选。以上述的目标网页“http://www.test.com/publish.php”为例,其域名为www.test.com,文件名为publish.php。步骤S140中可遍历域名www.test.com下的所有网页。
在一个实例中,上述的所有可能输出所述提交的参数的值网页除了与目标网页在同一网域内的所有网页外,还包括关联网域内的所有网页。上述的关联网域是指与目标网页至少共用部分数据库的内容的网域,也就是说,在目标网页中提交的参数的值若被存储,则可能会在关联网域的网页中显示。此种情形一般发生在待检测的参数是用来实现基础的网络服务的情形,例如待检测参数为用户帐号,而同一用户帐号可能会被多个网站所共用。例如,对于二级域名下的网页中的参数,上述的所有可能输出所述提交的参数的值网页可包括所有具有相同顶级域名的网页。
可以理解,步骤S140,具体可以由一个网络爬虫系统实现。一般来说,要抓取一个网站内所有的网页的内容时,网络爬虫可以从该网站的入口页面开始,在获取入口页面的源代码后,分析其内包括的其他网页的链接,然后逐一抓取这些链接所指向的网页,对于每个被抓取的网页都再一次分析其内包含的链接,并抓取这些链接所指向的网页。重复抓取、分析、再抓取的过程直到该网站内所的链接都被抓取。从入口网页开始,实质上所有的子网页构成一个树形结构。因此,对于所有的网页进行检测实质上是对这个树形结构进行遍历的过程。而树形结构的遍历可以采用广度优先以及深度优先的方式,本实施例中并不限制具体的方案。
此外,一个网站内还可能包括其他网站的链接,对于这些外域(非当前要检测XSS漏洞的网域)的链接,步骤S140中,可以忽略掉。例如,在若检测test.com下的XSS漏洞,则仅抓取并分析域名内包括test.com的网页。
步骤S140内抓取网页的过程中,还可分析每个页面内包括的用户可输入的参数,这些获取的用户可输入的参数可以用来作为步骤S110中的待检测参数。
步骤S150、若有网页中包含所述的唯一标识符则记录所述待检测参数存在存储跨站攻击脚本漏洞。
若在其他网页中检测到步骤S130中提交的唯一标识符,则说明步骤S130中提交的特征字符串触发了XSS漏洞,唯一标识符被存储至数据库中,也就是说,被检测的网站内具有XSS漏洞。此时可以记录下漏洞对应的参数以及目标网页的URL,以供后续处理。
本实施例的存储跨站攻击脚本漏洞检测方法通过模拟存储XSS的攻击方式向被检测的网站提交参数值,而参数的值内包含唯一标识符,在后续的网页遍历过程中若检测到此唯一标识符,则可判定对应的URL以及参数存在XSS漏洞。此种检测方式可全自动的进行,具有很高的检测效率以及准确性,不会误报。
第二实施例
本实施例的提供一种存储跨站攻击脚本漏洞检测方法,其用于对一个待检测网站检测可能存在的XSS漏洞。参阅图5,上述方法包括以下步骤:
步骤S210、获取目标网页。
在初始时,目标网页例如可为待检测网站的入口网页。对于入口网页,其内应包含该网站内其他网页的链接。在入口网页检测完成后,可以再检测这些链接所指向的网页,这些链接所指向的网页可以称为当前网页的子网页。例如,网站www.test.com入口网页为www.test.com/index.php,入口网页中包含三个链接:www.test.com/channel1.php、www.test.com/channel2.php、以及www.test.com/channel3.php。可以理解,子网页中仍然包括子网页的链接。从入口网页开始,实质上所有的子网页构成一个树形结构。因此,对于所有的网网页进行检测实质上是对这个树形结构进行遍历的过程。而树形结构的遍历可以采用广度优先以及深度优先的方式,本实施例中并不限制具体的方案。采用深度优先的方式时,在完成www.test.com/channel1.php的子网页的检测后,再检测www.test.com/channel2.php;而采用广度优先的方式时,在完成www.test.com/channel1.php后,先检测www.test.com/channel2.php再检测www.test.com/channel1.php的子网页。
步骤S230、获取目标网页的所有参数。
此处的参数例如是指用户可输入的参数,或者说客户端可向网站服务器提交的参数,而网站到服务器应对这些提交的参数进行处理,而且可能会被存储在数据库中。步骤S230可以通过直接分析目标网页的源文件获取,或者采用文档对象模型(Document ObjectModel,DOM)获取。
步骤S240、获取待检测的参数。
具体地,是指从步骤S230中获取的所有参数中选取一个作为待检测的参数。
步骤S250、构造特征字符串。
特征字符串内包含可触发存储跨站脚本攻击的字符以及唯一标识符。上述的可触发存储跨站脚本攻击的字符例如可包括:”、’、<、>等,但并不以此为限,任何可触发XSS漏洞的字符均可。上述的唯一标识符用于作为上述的特征字符串的唯一标识。
步骤S260、将特征字符串作为待检测参数的值提交。
例如,根据目标网页的URL、待检测参数、以及步骤S250中构造出的特征字符串生成一个网址。以上述的网页“http://www.test.com/publish.php”为例生成的网址例如可为:“http://www.test.com/publish.php?content=<www.test.com_publish.php_content>&user=aaa”。然后根据此网址发起HTTP请求,则参数即被提交至对应的网站服务器内。
以上是以GET的方式为例进行说明,然而本实施例的方法,并不限于采用GET方式提交待检测参数的值。例如,还可以采用POST方式提交待检测参数的值。
可以理解,由于提交的参数的值内包含可触发存储跨站脚本攻击的字符,若对应的网站内具有XSS漏洞,则上述的特征字符串的部分内容如唯一标识符会被存储至数据库中。
此外,部分页面可能需要登陆才能够发送数据,对于需要登陆的网站,在S260中可以带着某个测试帐号的cookie提交请求。上述的测试帐号是待检测网站的用户登陆帐号。
步骤S270、判断是否继续检测下一个参数,若是,则流程重新回到步骤S240;否则,执行步骤S280。
由于步骤S230中获取的参数可能不止一个,因此,当完成一个参数值的提交后,需要先判断是否还有其他的参数没有完成检测,若是,则获取一个待检测的参数,重复执行该待检测参数的检测过程,即构造一个新的特征字符串,并将其作为待检测参数的值提交至网站服务器。
步骤S280、判断是否继续检测下一个网页,若是;则流程重新回到步骤S220;否则,流程结束。
由于待检测网站中的网页可能不止一个,因此,当完成一个网页的检测后,需要先判断是否还有其他的网页没有完成检测,若是,则重新获取一个目标网页,重复执行网页的检测过程。
以上所述为参数值的提交过程,而在提交参数值后,还需要对待检测网站进行遍历,并分析是否检测到步骤S260中提交的特征字符串。而具体的遍历过程可与第一实施例相似。
参阅图6,其为查找特征字符串的具体流程示意图,具体过程包括以下步骤:
步骤S201,获取待检测网站的网页内容。
在初始时,可从待检测网站的入口网页开始。向网站服务器发起HTTP请求,获取入口网页的内容,并完成后续的步骤S202到步骤S204。
可以理解,在步骤S260中如果带了某个测试帐号的cookie提交请求,那么在步骤S201(爬取网页时)中也应该带上相应的测试帐号的Cookie进行爬取。
步骤S202,判断网页中是否找到步骤S260中提交的唯一标识符;若是,则执行步骤S203;否则,执行步骤S204。
步骤S260中提交的唯一标识符可能具有多个,因此需要将网页的内容与每个唯一标识符逐一进行比对。每检测到一个唯一标识符,相应执行步骤S203,直到所有唯一标识符比对完毕。
步骤S203,记录XSS漏洞。
例如,可将XSS漏洞对应的域名、网页名以及参数名记录下来。
步骤S204,判断是否继续访问下一个网页。若是,则重新执行步骤S201;否则,流程结束。
对于入口网页,其内应包含该网站内其他网页的链接。在入口网页检测完成后,可以再检测这些链接所指向的网页,这些链接所指向的网页可以称为当前网页的子网页。可以理解,子网页中仍然包括子网页的链接。从入口网页开始,实质上所有的子网页构成一个树形结构。因此,对于所有的网网页进行检测实质上是对这个树形结构进行遍历的过程。
根据本实施例的存储跨站攻击脚本漏洞检测方法,可以高效的对某个目标网站中是否存在XSS漏洞做出检测。
第三实施例
本实施例的提供一种存储跨站攻击脚本漏洞检测方法,其用于对一个或多个待检测网站检测可能存在的XSS漏洞。参阅图7,上述的方法包括以下步骤:
步骤S310,提交特征字符串。
具体地,获取一个或多个网站到的待检测网页,针对每个网页,获取待检测的参数,并为每个待检测的参数生成特征字符串,并将生成的特征字符串提交至对应的网站服务器。其具体过程还可参考前述的各实施例。
提交的特征字符串内包含可触发存储跨站脚本攻击的字符,若对应的网站内具有XSS漏洞,则上述的特征字符串的部分内容如唯一标识符会被存储至数据库中。
步骤S320,等待预定时间后将唯一标识符作为关键字提交至搜索引擎进行查询。
一般来说,搜索引擎的爬虫系统会定期抓取网络中所有的网页内容并建立索引。上述的预定时间例如就是该搜索引擎的索引间隔。也就是说,一个网站的内容更新,在经过索引间隔后,应被搜索引擎所收录。此时,将唯一标识符提交至搜索引擎进行查询。如果与此唯一标识符对应的参数具有XSS漏洞,应可在搜索引擎中检索到至少一条记录。
步骤S330,判断是否检测到结果;若是,则执行步骤S340。
如上所述,如果在搜索引擎中检索到记录则说明对应的参数具有XSS漏洞,需要进行记录。
步骤S340,记录XSS漏洞。
例如,可将XSS漏洞对应的域名、网页名以及参数名记录下来。
此外,如果检测到唯一标识符的网页与提交唯一标识会的网页在域名上毫无关联,还可记录这两个网站之间的关联关系。此关联关系可用于第一实施例中遍历所有可能输出提交的参数的值的网页。
根据本实施例的存储跨站攻击脚本漏洞检测方法,可部分利用现有的搜索引擎系统实现XSS漏洞的检测,可减少网络资源的消耗,而且由于搜索引擎全网络抓取的特性,即使在A网站提交的内容实际上是在表面上看起来毫无关联的B网站中显示,也可以实现XSS漏洞的检测。
第四实施例
本实施例提供一种存储跨站攻击脚本漏洞检测装置,其可用于图1所示的漏洞检测服务器100中。也就是说,本实施例的漏洞检测装置即为图1中的漏洞检测模块124。参阅图8,上述的装置包括:参数获取模块41、字符串构造模块42、参数提交模块43、检测模块44、以及漏洞记录模块45。
参数获取模块41用于获取目标网页的待检测参数。
目标网页是指对应于一个网址(Uniform Resource Locator,URL),例如“http://www.test.com/publish.php”的网页。可以理解,一个网页是由网站服务器(如网站服务器200)内的一个或多个脚本生成并返回至客户端(如漏洞检测服务器100)。为了与网站服务器进行交互,前端网页中会具有多个参数,其可通过POST方式GET方式提交至网站服务器。具体地,可以通过Javascript脚本或者表单(Form)向网站服务器提交参数及其值。网站服务器在接收到请求后,会处理这些参数,而一些参数的值可能会被存储至数据库内。在存储过程中,如果网站服务器内的脚本中存在XSS漏洞,则恶意代码就可能被存储在数据库中。因此,上述的待检测参数就是指前端网页中的能被网站服务器接收并处理的参数。具体实施时,可以获取所有的参数,或者仅获取用户可输入的参数,或者仅获取可能会被存储的参数。
以上述的网页“http://www.test.com/publish.php”为例,其可以具有两个参数:content以及user。这两个参数都可以进行检测,也可以是只检测部分参数,例如仅检测参数content。
字符串构造模块42用于构造一个特征字符串,该特征字符串内包含可触发存储跨站脚本攻击的字符以及唯一标识符。
上述的可触发存储跨站脚本攻击的字符例如可包括:”、’、<、>等,但并不以此为限,任何可触发XSS漏洞的字符均可。上述的唯一标识符用于作为上述的特征字符串的唯一标识。
以上述的参数content为例,生成的特征字符串例如可为“<www.test.com_publish.php_content>”。在此特征字符串中,可触发存储跨站脚本攻击的字符为“<>”,而唯一标识符为www.test.com_publish.php_content。
为了使特征字符串易于被识别,唯一标识符内还可包括目标网页的域名、网页名以及参数名。
参数提交模块43用于将所述特征字符串作为所述待检测参数的值提交至所述目标网页。
例如,根据目标网页的URL、待检测参数、以及步骤S120中构造出的特征字符串生成一个网址。以上述的网页“http://www.test.com/publish.php”为例生成的网址例如可为:“http://www.test.com/publish.php?content=<www.test.com_publish.php_content>&user=aaa”。然后根据此网址发起HTTP请求,则参数即被提交至对应的网站服务器内。
以上是以GET的方式为例进行说明,然而本实施例的方法,并不限于采用GET方式提交待检测参数的值。例如,还可以采用POST方式提交待检测参数的值。
可以理解,由于提交的参数的值内包含可触发存储跨站脚本攻击的字符,若对应的网站内具有XSS漏洞,则上述的特征字符串的部分内容如唯一标识符会被存储至数据库中。
检测模块44用于遍历所有可能输出所述提参数值的网页,并判断是否有网页中是否包含所述的唯一标识符。
检测模块44可以包括一个网络爬虫模块,用于抓取所有可能输出所述提参数值的网页。网络爬虫可以从该网站的入口页面开始,在获取入口页面的源代码后,分析其内包括的其他网页的链接,然后逐一抓取这些链接所指向的网页,对于每个被抓取的网页都再一次分析其内包含的链接,并抓取这些链接所指向的网页。重复抓取、分析、再抓取的过程直到该网站内所的链接都被抓取。从入口网页开始,实质上所有的子网页构成一个树形结构。因此,网络爬虫模块抓取网页的过程实质上是对这个树形结构进行遍历的过程。而树形结构的遍历可以采用广度优先以及深度优先的方式,本实施例中并不限制具体的方案。
此外,一个网站内还可能包括其他网站的链接,对于这些外域(非当前要检测XSS漏洞的网域)的链接,网络爬虫模块可以忽略掉。例如,在若检测test.com下的XSS漏洞,则网络爬虫模块仅抓取并分析域名内包括test.com的网页。网络爬虫模块抓取的每个网页会被分析,判断是否包含所述的唯一标识符。
对于网络爬虫模块抓取的每个网页还可检测其包括的参数,这些参数可以用来提供给参数获取模块41,用于进行后续的XSS漏洞检测过程。
在一个实例中,上述的所有可能输出所述提交的参数的值网页例如是指与目标网页在同一网域内的所有网页(可包括目标网页自身)。而同一网域是指具有相同的域名或者同一域名下相同的目录。
可以理解,URL的结构一般如下:域名(/路径(/文件名)),括号表示其内容可选。以上述的目标网页“http://www.test.com/publish.php”为例,其域名为www.test.com,文件名为publish.php。步骤S140中可遍历域名www.test.com下的所有网页。
在一个实例中,上述的所有可能输出所述提交的参数的值网页除了与目标网页在同一网域内的所有网页外,还包括关联网域内的所有网页。上述的关联网域是指与目标网页至少共用部分数据库的内容的网域,也就是说,在目标网页中提交的参数的值若被存储,则可能会在关联网域的网页中显示。此种情形一般发生在待检测的参数是用来实现基础的网络服务的情形,例如待检测参数为用户帐号,而同一用户帐号可能会被多个网站所共用。例如,对于二级域名下的网页中的参数,上述的所有可能输出所述提交的参数的值网页可包括所有具有相同顶级域名的网页。
漏洞记录模块45用于若有网页中包含所述的唯一标识符则记录所述待检测参数存在存储跨站攻击脚本漏洞。
若在其他网页中检测到唯一标识符,则说明提交的特征字符串触发了XSS漏洞,唯一标识符被存储至数据库中,也就是说,被检测的网站内具有XSS漏洞。此时可以记录下漏洞对应的参数以及目标网页的URL,以供后续处理。
根据本实施例的存储跨站攻击脚本漏洞检测装置,通过模拟存储XSS的攻击方式向被检测的网站提交参数值,而参数的值内包含唯一标识符,在后续的网页遍历过程中若检测到此唯一标识符,则可判定对应的URL以及参数存在XSS漏洞。此种检测方式可全自动的进行,具有很高的检测效率以及准确性,不会误报。
第五实施例
本实施例提供一种储跨站攻击脚本漏洞检测系统,参阅图9,上述系统包括:漏洞检测服务器100以及搜索引擎400。
漏洞检测服务器100用于:获取目标网页的待检测参数;构造一个特征字符串,该特征字符串内包含可触发存储跨站脚本攻击的字符以及唯一标识符;将所述特征字符串作为所述待检测参数的值提交至所述目标网页;
搜索引擎400用于:遍历所有可能输出所述提参数值的网页,并建立网页的索引,根据客户端(如漏洞检测服务器100)提交的关键字进行检索,并返回检测结果。
漏洞检测服务器100还用于:将所述唯一标识符提交至所述搜索引擎进行检索,若所述搜索引擎返回的检索结果中包含至少一个匹配的网页则记录所述待检测参数存在存储跨站攻击脚本漏洞。
一般来说,搜索引擎的爬虫系统会定期抓取网络中所有的网页内容并建立索引。也就是说,一个网站的内容更新,在经过索引间隔后,应被搜索引擎所收录。因此,漏洞检测服务器100在提交特征字符串后,可经过搜索引擎400的索引时间间隔后再在搜索引擎中查询特征字符串内包含的唯一标识符。
根据本实施例的存储跨站攻击脚本漏洞检测系统,可部分利用现有的搜索引擎系统实现XSS漏洞的检测,可减少网络资源的消耗,而且由于搜索引擎全网络抓取的特性,即使在A网站提交的内容实际上是在表面上看起来毫无关联的B网站中显示,也可以实现XSS漏洞的检测。
此外,本发明实施例还提供一种计算机可读存储介质,其内存储有计算机可执行指令,上述的计算机可读存储介质例如为非易失性存储器例如光盘、硬盘、或者闪存。上述的计算机可执行指令用于让计算机或者类似的运算装置完成上述的分布式文档形数据存取方法及装置。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭示如上,然而并非用以限定本发明,任何本领域技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简介修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (10)
1.一种存储跨站攻击脚本漏洞检测方法,其特征在于,包括:
获取目标网页的待检测参数,所述待检测参数是指所述目标网页中能被网站服务器接收并处理的参数;
构造一个特征字符串,该特征字符串内包含可触发存储跨站脚本攻击的字符以及唯一标识符;
将所述特征字符串作为所述待检测参数的值提交至对应的网站服务器;
等待预定时间后将唯一标识符作为关键字提交至搜索引擎,利用所述搜索引擎的网络爬虫系统,遍历所有可能输出所述提交的参数的值的网页,并判断是否有网页中是否包含所述的唯一标识符;其中,所述所有可能输出所述提交的参数的值的网页包括关联网域内的所有网页,所述关联网域为与所述目标网页至少共用部分数据库的内容的网域;
以及,
若有网页中包含所述的唯一标识符则记录所述待检测参数存在存储跨站攻击脚本漏洞。
2.如权利要求1所述的存储跨站攻击脚本漏洞检测方法,其特征在于,获取目标网页的待检测参数包括:获取所述目标网页中用户可输入的参数作为所述待检测参数。
3.如权利要求1所述的存储跨站攻击脚本漏洞检测方法,其特征在于,遍历所有可能输出所述提交的参数的值的网页包括:遍历与所述目标网页在同一网域内的所有网页。
4.如权利要求1所述的存储跨站攻击脚本漏洞检测方法,其特征在于,遍历所有可能输出所述提交的参数的值的网页包括:遍历与所述目标网页具有相同的顶级域名的所有网页。
5.如权利要求1所述的存储跨站攻击脚本漏洞检测方法,其特征在于,遍历所有可能输出所述提交的参数的值的网页是由搜索引擎进行的;判断是否有网页中是否包含所述的唯一标识符包括:将所述的唯一标识符提交到所述搜索引擎进行检索,若检测到结果则有网页中包含所述唯一标识符。
6.一种存储跨站攻击脚本漏洞检测装置,其特征在于,包括:
参数获取模块,用于获取目标网页的待检测参数,所述待检测参数是指所述目标网页中能被网站服务器接收并处理的参数;
字符串构造模块,用于构造一个特征字符串,该特征字符串内包含可触发存储跨站脚本攻击的字符以及唯一标识符;
参数提交模块,用于将所述特征字符串作为所述待检测参数的值提交至对应的网站服务器;
检测模块,用于等待预定时间后将唯一标识符作为关键字提交至搜索引擎,利用所述搜索引擎的网络爬虫系统,遍历所有可能输出所述提交的参数的值的网页,并判断是否有网页中是否包含所述的唯一标识符;其中,所述所有可能输出所述提交的参数的值的网页包括关联网域内的所有网页,所述关联网域为与所述目标网页至少共用部分数据库的内容的网域;
以及,
漏洞记录模块,用于若有网页中包含所述的唯一标识符则记录所述待检测参数存在存储跨站攻击脚本漏洞。
7.如权利要求6所述的存储跨站攻击脚本漏洞检测装置,其特征在于,所述参数获取模块用于:获取所述目标网页中用户可输入的参数作为所述待检测参数。
8.如权利要求6所述的存储跨站攻击脚本漏洞检测装置,其特征在于,所述检测模块用于:遍历与所述目标网页在同一网域内的所有网页。
9.如权利要求6所述的存储跨站攻击脚本漏洞检测装置,其特征在于,所述检测模块用于:遍历与所述目标网页具有相同的顶级域名的所有网页。
10.一种存储跨站攻击脚本漏洞检测系统,其特征在于,包括:漏洞检测服务器以及搜索引擎;
所述漏洞检测服务器用于:获取目标网页的待检测参数;构造一个特征字符串,该特征字符串内包含可触发存储跨站脚本攻击的字符以及唯一标识符;将所述特征字符串作为所述待检测参数的值提交至所述目标网页;
所述搜索引擎用于:等待预定时间后将唯一标识符作为关键字提交至搜索引擎,利用所述搜索引擎的网络爬虫系统,遍历所有可能输出所述提交的参数的值的网页;其中,所述所有可能输出所述提交的参数的值的网页包括关联网域内的所有网页,所述关联网域为与所述目标网页至少共用部分数据库的内容的网域;
所述漏洞检测服务器还用于:将所述唯一标识符提交至所述搜索引擎进行检索,若所述搜索引擎返回的检索结果中包含至少一个匹配的网页则记录所述待检测参数存在存储跨站攻击脚本漏洞。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310589239.2A CN104657659B (zh) | 2013-11-20 | 2013-11-20 | 一种存储跨站攻击脚本漏洞检测方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310589239.2A CN104657659B (zh) | 2013-11-20 | 2013-11-20 | 一种存储跨站攻击脚本漏洞检测方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657659A CN104657659A (zh) | 2015-05-27 |
CN104657659B true CN104657659B (zh) | 2019-02-05 |
Family
ID=53248770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310589239.2A Active CN104657659B (zh) | 2013-11-20 | 2013-11-20 | 一种存储跨站攻击脚本漏洞检测方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657659B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107332805B (zh) * | 2016-04-29 | 2021-02-26 | 阿里巴巴集团控股有限公司 | 检测漏洞的方法、装置和系统 |
CN106547824B (zh) * | 2016-09-29 | 2019-11-15 | 北京奇艺世纪科技有限公司 | 一种爬取路径规划方法及装置 |
CN106897624A (zh) * | 2017-01-16 | 2017-06-27 | 深圳开源互联网安全技术有限公司 | 一种漏洞检测方法及其装置 |
CN108696481A (zh) * | 2017-04-07 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 漏洞检测方法和装置 |
CN109508548B (zh) * | 2018-11-19 | 2022-06-03 | 四川长虹电器股份有限公司 | 一种基于仿真器技术的威胁行为搜集系统及方法 |
CN109995771A (zh) * | 2019-03-19 | 2019-07-09 | 北京工业大学 | 一种基于遗传算法的存储型xss漏洞检测系统 |
CN110532779B (zh) * | 2019-07-19 | 2021-07-16 | 中移(杭州)信息技术有限公司 | 一种漏洞检测的方法、装置、终端及存储介质 |
CN111949990B (zh) * | 2020-08-10 | 2023-01-20 | 曙光信息产业(北京)有限公司 | 跨站脚本风险检测方法、装置、计算机设备和存储介质 |
CN112738127B (zh) * | 2021-01-08 | 2023-04-07 | 西安邮电大学 | 基于Web的网站与主机漏洞检测系统及其方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7343626B1 (en) * | 2002-11-12 | 2008-03-11 | Microsoft Corporation | Automated detection of cross site scripting vulnerabilities |
CN101964025A (zh) * | 2009-07-23 | 2011-02-02 | 中联绿盟信息技术(北京)有限公司 | Xss检测方法和设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090119769A1 (en) * | 2007-11-05 | 2009-05-07 | Microsoft Corporation | Cross-site scripting filter |
CN101894237B (zh) * | 2010-08-03 | 2012-05-30 | 南开大学 | 应用遗传算法自动生成xss跨站点脚本漏洞检测参数的方法 |
CN102831345B (zh) * | 2012-07-30 | 2015-01-28 | 西北工业大学 | Sql注入漏洞检测中的注入点提取方法 |
CN102819710B (zh) * | 2012-08-22 | 2014-11-12 | 西北工业大学 | 基于渗透测试的跨站点脚本漏洞检测方法 |
CN103095681B (zh) * | 2012-12-03 | 2016-08-03 | 微梦创科网络科技(中国)有限公司 | 一种检测漏洞的方法及装置 |
-
2013
- 2013-11-20 CN CN201310589239.2A patent/CN104657659B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7343626B1 (en) * | 2002-11-12 | 2008-03-11 | Microsoft Corporation | Automated detection of cross site scripting vulnerabilities |
CN101964025A (zh) * | 2009-07-23 | 2011-02-02 | 中联绿盟信息技术(北京)有限公司 | Xss检测方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104657659A (zh) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104657659B (zh) | 一种存储跨站攻击脚本漏洞检测方法、装置及系统 | |
CN105184159B (zh) | 网页篡改的识别方法和装置 | |
CN104881603B (zh) | 网页重定向漏洞检测方法及装置 | |
US9462009B1 (en) | Detecting risky domains | |
CN105512559B (zh) | 一种用于提供访问页面的方法与设备 | |
JP5497173B2 (ja) | Xss検出方法および装置 | |
CN103297394B (zh) | 网站安全检测方法和装置 | |
CN109033838A (zh) | 网站安全检测方法和装置 | |
US20220198025A1 (en) | Web Attack Simulator | |
CN103595732B (zh) | 一种网络攻击取证的方法及装置 | |
CN103384888A (zh) | 用于恶意软件的检测和扫描的系统和方法 | |
CN105791261B (zh) | 一种跨站脚本攻击的检测方法和检测设备 | |
CN104683328A (zh) | 一种跨站漏洞扫描方法及系统 | |
CN102870118B (zh) | 用户行为的获取方法、设备及系统 | |
Rizzo et al. | Unveiling web fingerprinting in the wild via code mining and machine learning | |
Singh et al. | A network based vulnerability scanner for detecting SQLI attacks in web applications | |
Bo et al. | A hybrid system to find & fight phishing attacks actively | |
CN104615695B (zh) | 一种恶意网址的检测方法及系统 | |
Wang et al. | Research on web application security vulnerability scanning technology | |
Liang et al. | Malicious web pages detection based on abnormal visibility recognition | |
CN114491560A (zh) | 一种漏洞检测方法、装置、存储介质及电子设备 | |
CN103440454A (zh) | 一种基于搜索引擎关键词的主动式蜜罐检测方法 | |
Liu et al. | A XSS vulnerability detection approach based on simulating browser behavior | |
CN104881605B (zh) | 一种网页重定向漏洞检测方法及装置 | |
CN107026854A (zh) | 漏洞验证方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190730 Address after: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403 Co-patentee after: Tencent cloud computing (Beijing) limited liability company Patentee after: Tencent Technology (Shenzhen) Co., Ltd. Address before: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403 Patentee before: Tencent Technology (Shenzhen) Co., Ltd. |