CN104657659A - 一种存储跨站攻击脚本漏洞检测方法、装置及系统 - Google Patents

一种存储跨站攻击脚本漏洞检测方法、装置及系统 Download PDF

Info

Publication number
CN104657659A
CN104657659A CN201310589239.2A CN201310589239A CN104657659A CN 104657659 A CN104657659 A CN 104657659A CN 201310589239 A CN201310589239 A CN 201310589239A CN 104657659 A CN104657659 A CN 104657659A
Authority
CN
China
Prior art keywords
parameter
webpage
detected
site
cross
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.)
Granted
Application number
CN201310589239.2A
Other languages
English (en)
Other versions
CN104657659B (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201310589239.2A priority Critical patent/CN104657659B/zh
Publication of CN104657659A publication Critical patent/CN104657659A/zh
Application granted granted Critical
Publication of CN104657659B publication Critical patent/CN104657659B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/561Virus type analysis
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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
    • 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

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)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (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 Object Model,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.一种存储跨站攻击脚本漏洞检测系统,其特征在于,包括:漏洞检测服务器以及搜索引擎;
所述漏洞检测服务器用于:获取目标网页的待检测参数;构造一个特征字符串,该特征字符串内包含可触发存储跨站脚本攻击的字符以及唯一标识符;将所述特征字符串作为所述待检测参数的值提交至所述目标网页;
所述搜索引擎用于:遍历所有可能输出所述提参数值的网页;
所述漏洞检测服务器还用于:将所述唯一标识符提交至所述搜索引擎进行检索,若所述搜索引擎返回的检索结果中包含至少一个匹配的网页则记录所述待检测参数存在存储跨站攻击脚本漏洞。
CN201310589239.2A 2013-11-20 2013-11-20 一种存储跨站攻击脚本漏洞检测方法、装置及系统 Active CN104657659B (zh)

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 true CN104657659A (zh) 2015-05-27
CN104657659B 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)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547824A (zh) * 2016-09-29 2017-03-29 北京奇艺世纪科技有限公司 一种爬取路径规划方法及装置
CN106897624A (zh) * 2017-01-16 2017-06-27 深圳开源互联网安全技术有限公司 一种漏洞检测方法及其装置
CN107332805A (zh) * 2016-04-29 2017-11-07 阿里巴巴集团控股有限公司 检测漏洞的方法、装置和系统
CN108696481A (zh) * 2017-04-07 2018-10-23 北京京东尚科信息技术有限公司 漏洞检测方法和装置
CN109508548A (zh) * 2018-11-19 2019-03-22 四川长虹电器股份有限公司 一种基于仿真器技术的威胁行为搜集系统及方法
CN109995771A (zh) * 2019-03-19 2019-07-09 北京工业大学 一种基于遗传算法的存储型xss漏洞检测系统
CN110532779A (zh) * 2019-07-19 2019-12-03 中移(杭州)信息技术有限公司 一种漏洞检测的方法、装置、终端及存储介质
CN111949990A (zh) * 2020-08-10 2020-11-17 曙光信息产业(北京)有限公司 跨站脚本风险检测方法、装置、计算机设备和存储介质
CN112738127A (zh) * 2021-01-08 2021-04-30 西安邮电大学 基于Web的网站与主机漏洞检测系统及其方法

Citations (7)

* Cited by examiner, † Cited by third party
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
US20090119769A1 (en) * 2007-11-05 2009-05-07 Microsoft Corporation Cross-site scripting filter
CN101894237A (zh) * 2010-08-03 2010-11-24 南开大学 应用遗传算法自动生成xss跨站点脚本漏洞检测参数的方法
CN101964025A (zh) * 2009-07-23 2011-02-02 中联绿盟信息技术(北京)有限公司 Xss检测方法和设备
CN102819710A (zh) * 2012-08-22 2012-12-12 西北工业大学 基于渗透测试的跨站点脚本漏洞检测方法
CN102831345A (zh) * 2012-07-30 2012-12-19 西北工业大学 Sql注入漏洞检测中的注入点提取方法
CN103095681A (zh) * 2012-12-03 2013-05-08 微梦创科网络科技(中国)有限公司 一种检测漏洞的方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
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
US20090119769A1 (en) * 2007-11-05 2009-05-07 Microsoft Corporation Cross-site scripting filter
CN101964025A (zh) * 2009-07-23 2011-02-02 中联绿盟信息技术(北京)有限公司 Xss检测方法和设备
CN101894237A (zh) * 2010-08-03 2010-11-24 南开大学 应用遗传算法自动生成xss跨站点脚本漏洞检测参数的方法
CN102831345A (zh) * 2012-07-30 2012-12-19 西北工业大学 Sql注入漏洞检测中的注入点提取方法
CN102819710A (zh) * 2012-08-22 2012-12-12 西北工业大学 基于渗透测试的跨站点脚本漏洞检测方法
CN103095681A (zh) * 2012-12-03 2013-05-08 微梦创科网络科技(中国)有限公司 一种检测漏洞的方法及装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107332805A (zh) * 2016-04-29 2017-11-07 阿里巴巴集团控股有限公司 检测漏洞的方法、装置和系统
CN107332805B (zh) * 2016-04-29 2021-02-26 阿里巴巴集团控股有限公司 检测漏洞的方法、装置和系统
CN106547824B (zh) * 2016-09-29 2019-11-15 北京奇艺世纪科技有限公司 一种爬取路径规划方法及装置
CN106547824A (zh) * 2016-09-29 2017-03-29 北京奇艺世纪科技有限公司 一种爬取路径规划方法及装置
CN106897624A (zh) * 2017-01-16 2017-06-27 深圳开源互联网安全技术有限公司 一种漏洞检测方法及其装置
CN108696481A (zh) * 2017-04-07 2018-10-23 北京京东尚科信息技术有限公司 漏洞检测方法和装置
CN109508548A (zh) * 2018-11-19 2019-03-22 四川长虹电器股份有限公司 一种基于仿真器技术的威胁行为搜集系统及方法
CN109508548B (zh) * 2018-11-19 2022-06-03 四川长虹电器股份有限公司 一种基于仿真器技术的威胁行为搜集系统及方法
CN109995771A (zh) * 2019-03-19 2019-07-09 北京工业大学 一种基于遗传算法的存储型xss漏洞检测系统
CN110532779A (zh) * 2019-07-19 2019-12-03 中移(杭州)信息技术有限公司 一种漏洞检测的方法、装置、终端及存储介质
CN111949990A (zh) * 2020-08-10 2020-11-17 曙光信息产业(北京)有限公司 跨站脚本风险检测方法、装置、计算机设备和存储介质
CN111949990B (zh) * 2020-08-10 2023-01-20 曙光信息产业(北京)有限公司 跨站脚本风险检测方法、装置、计算机设备和存储介质
CN112738127A (zh) * 2021-01-08 2021-04-30 西安邮电大学 基于Web的网站与主机漏洞检测系统及其方法
CN112738127B (zh) * 2021-01-08 2023-04-07 西安邮电大学 基于Web的网站与主机漏洞检测系统及其方法

Also Published As

Publication number Publication date
CN104657659B (zh) 2019-02-05

Similar Documents

Publication Publication Date Title
CN104657659A (zh) 一种存储跨站攻击脚本漏洞检测方法、装置及系统
US20230325502A1 (en) Systems and methods for remote detection of software through browser webinjects
CN105184159B (zh) 网页篡改的识别方法和装置
US8365290B2 (en) Web application vulnerability scanner
CN104881603B (zh) 网页重定向漏洞检测方法及装置
CN105187396A (zh) 识别网络爬虫的方法及装置
CN105512559B (zh) 一种用于提供访问页面的方法与设备
CN102469113B (zh) 一种安全网关及其转发网页的方法
CN103297394B (zh) 网站安全检测方法和装置
CN104572777B (zh) 基于UIWebView组件的网页加载方法及装置
CN101964025A (zh) Xss检测方法和设备
CN108667766B (zh) 文件探测方法及文件探测装置
CN103618696B (zh) 对cookie信息进行处理的方法和服务器
CN104956372A (zh) 使用运行时和静态代码分析来确定动态安全扫描的覆盖率
CN113518077A (zh) 一种恶意网络爬虫检测方法、装置、设备及存储介质
WO2015188604A1 (zh) 钓鱼网页的检测方法和装置
CN104468459B (zh) 一种漏洞检测方法及装置
CN112600797A (zh) 异常访问行为的检测方法、装置、电子设备及存储介质
CN110929257B (zh) 一种网页中携带恶意代码的检测方法和装置
CN104679798A (zh) 网页检测方法及装置
Liang et al. Malicious web pages detection based on abnormal visibility recognition
EP3789890A1 (en) Fully qualified domain name (fqdn) determination
KR101803225B1 (ko) 멀티 서버, 멀티도커 기반 고속 악성 웹사이트 탐지 시스템 및 방법
Liu et al. A XSS vulnerability detection approach based on simulating browser behavior
CN103838865A (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

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.

TR01 Transfer of patent right