CN103095681A - 一种检测漏洞的方法及装置 - Google Patents

一种检测漏洞的方法及装置 Download PDF

Info

Publication number
CN103095681A
CN103095681A CN2012105104900A CN201210510490A CN103095681A CN 103095681 A CN103095681 A CN 103095681A CN 2012105104900 A CN2012105104900 A CN 2012105104900A CN 201210510490 A CN201210510490 A CN 201210510490A CN 103095681 A CN103095681 A CN 103095681A
Authority
CN
China
Prior art keywords
url
detected
page
character string
string
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
CN2012105104900A
Other languages
English (en)
Other versions
CN103095681B (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.)
Weimeng Chuangke Network Technology China Co Ltd
Original Assignee
Weimeng Chuangke Network Technology China 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 Weimeng Chuangke Network Technology China Co Ltd filed Critical Weimeng Chuangke Network Technology China Co Ltd
Priority to CN201210510490.0A priority Critical patent/CN103095681B/zh
Publication of CN103095681A publication Critical patent/CN103095681A/zh
Application granted granted Critical
Publication of CN103095681B publication Critical patent/CN103095681B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种检测漏洞的方法及装置,用以解决现有技术中检测漏洞的准确性较低、效率较低的问题。该方法在待检测URL和HTTP请求中添加包括定位字符串和检测字符串的特殊字符串,再采用该HTTP请求访问该URL,最后模拟浏览器对网站服务器返回的页面进行加载,根据加载后的页面的HTML代码中是否包含该检测字符串,判断该网站服务器是否存在安全漏洞。由于上述方法检测装置模拟浏览器对网站服务器返回的页面进行加载,因此即使页面中存在动态dom元素,仍可根据加载后的页面的HTML代码中是否包含检测字符串,来判断网站服务器是否存在安全漏洞,而且检测过程中也无需人为参与,从而提高了检测漏洞的准确性和效率。

Description

一种检测漏洞的方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种检测漏洞的方法及装置。
背景技术
文档对象模型(Document Object Model,dom)型跨站脚本(Cross SiteScripting,xss)漏洞是网页中一种常见的漏洞。
由于Dom允许程序或脚本动态的访问和更新文档内容、结构和样式,dom中的一些对象属性和方法可以通过javascript直接操纵,如统一资源定位符(Uniform Resource Locator,URL)、location、write等,而且客户端脚本可以通过dom动态检查和修改页面内容,并不依赖于服务器返回的页面,因此,如果用户输入的数据没有经过严格确认就用于页面dom的构建,就会产生dom型xss漏洞。
目前,在对一个网站服务器进行安全漏洞检测时,通常会检测网站服务器在向客户端推送页面时,是否可以有效的滤掉页面中存在的dom型xss漏洞,如果网站服务器过滤掉了页面中存在的dom型xss漏洞,则说明网站服务器不存在安全漏洞,否则,说明网站服务器存在安全漏洞。
在现有技术中,检测网站服务器是否可以有效的过滤掉页面中存在的dom型xss漏洞的方法有以下两种。
第一种、构造dom型xss漏洞,并判断网站服务器是否可以过滤掉构造的该dom型xss漏洞,具体如图1所示。图1为现有技术中的第一种检测漏洞的过程,具体包括以下步骤:
S101:检测装置获得待检测URL。
S102:在该待检测URL的参数中添加预设的特殊字符串。
S103:检测装置生成用于访问添加了特殊字符串的待检测URL的超文本传输协议(Hyper Text Transport Protocol,HTTP)请求。
S104:在该HTTP请求的请求头中添加特殊字符串。
S105:检测装置采用添加了特殊字符串的HTTP请求对添加了特殊字符串的待检测URL进行访问,并接收该待检测URL对应的网站服务器返回的页面。
S106:判断该页面的超文本标记语言(Hyper Text Markup Language,HTML)代码中是否包含该预设的特殊字符串,若是,则执行步骤S107,否则执行步骤S108。
S107:确定该待检测URL对应的网站服务器存在安全漏洞。
如果接收到的页面中包含该预设的特殊字符串,则说明该待检测URL对应的网站服务器不能有效的过滤掉页面中存在的dom型xss漏洞,进而说明该待检测URL对应的网站服务器存在安全漏洞。
S108:确定该待检测URL对应的网站服务器不存在安全漏洞。
如果接收到的页面中未包含该预设的特殊字符串,则说明该待检测URL对应的网站服务器可以有效的过滤掉页面中存在的dom型xss漏洞,进而说明该待检测URL对应的网站服务器不存在安全漏洞。
但是,如图1所示的第一种检测漏洞的方法只适用于页面中不存在动态dom元素(既存在输入点也存在输出点的dom元素)的场景。如果页面中存在动态dom元素,则网站服务器返回的页面的HTML代码中就会存在需要客户端通过浏览器在本地进行赋值的变量,因此,该页面只有被客户端的浏览器加载后,才能对该页面的HTML代码中存在的上述变量进行赋值,赋值后的变量就可能存在dom型xss漏洞。而在该页面被加载之前,尚不能知晓该页面的HTML代码中的上述变量会被赋予什么值,因此,上述如图1所示的方法并不能有效的检测包含有动态dom元素的页面中是否存在dom型xss漏洞,也就不能有效的检测相应网站服务器是否存在安全漏洞。
第二种、人为的在网站服务器的后台代码中查找关键函数调用,以确定网站服务器的操作行为,据此判断网站服务器是否对dom型xss漏洞进行过滤。
由于第二种方法需要人为的根据网站服务器的后台代码进行检测,因此检测效率较为低下。
综上,现有技术中的第一种方法检测漏洞的准确性较低,第二种方法检测效率较低,均不能有效的检测网站服务器是否存在安全漏洞。
发明内容
本发明实施例提供一种检测漏洞的方法及装置,用以解决现有技术中检测漏洞的准确性较低、效率较低的问题。
本发明实施例提供的一种检测漏洞的方法,包括:
检测装置获得待检测统一资源定位符URL,在所述待检测URL的参数中添加预设的特殊字符串,所述特殊字符串中包括定位字符串和检测字符串;并
生成用于访问添加了所述特殊字符串的待检测URL的超文本传输协议HTTP请求,并在所述HTTP请求中添加所述特殊字符串;以及
采用添加了所述特殊字符串的HTTP请求对添加了所述特殊字符串的待检测URL进行访问,并接收所述待检测URL对应的网站服务器返回的页面;
所述检测装置模拟浏览器对所述页面进行加载,查找加载后的页面的超文本标记语言HTML代码中包含的定位字符串,确定查找到的定位字符串所定位出的检测位置;
如果加载后的页面的HTML代码中的检测位置上存在检测字符串,则确定所述待检测URL对应的网站服务器存在安全漏洞,如果加载后的页面的HTML代码中的检测位置上不存在检测字符串,或者存在将检测字符串转译或编码后的代码,则确定所述待检测URL对应的网站服务器不存在安全漏洞。
本发明实施例提供的一种检测漏洞的装置,包括:
第一构造模块,用于获得待检测统一资源定位符URL,在所述待检测URL的参数中添加预设的特殊字符串,所述特殊字符串中包括定位字符串和检测字符串;
第二构造模块,用于生成用于访问添加了所述特殊字符串的待检测URL的超文本传输协议HTTP请求,并在所述HTTP请求中添加所述特殊字符串;
访问模块,用于采用添加了所述特殊字符串的HTTP请求对添加了所述特殊字符串的待检测URL进行访问,并接收所述待检测URL对应的网站服务器返回的页面;
定位模块,用于模拟浏览器对所述页面进行加载,查找加载后的页面的超文本标记语言HTML代码中包含的定位字符串,确定查找到的定位字符串所定位出的检测位置;
检测模块,如果加载后的页面的HTML代码中的检测位置上存在检测字符串,则确定所述待检测URL对应的网站服务器存在安全漏洞,如果加载后的页面的HTML代码中的检测位置上不存在检测字符串,或者存在将检测字符串转译或编码后的代码,则确定所述待检测URL对应的网站服务器不存在安全漏洞。
本发明实施例提供一种检测漏洞的方法及装置,该方法检测装置针对待检测URL,构造用于访问该URL的HTTP请求,在待检测URL和HTTP请求中添加包括定位字符串和检测字符串的特殊字符串,再采用该HTTP请求访问该URL,最后模拟浏览器对网站服务器返回的页面进行加载,根据加载后的页面的HTML代码中是否包含该检测字符串,判断该网站服务器是否存在安全漏洞。由于上述方法检测装置模拟浏览器对网站服务器返回的页面进行加载,因此即使页面中存在动态dom元素,仍可根据加载后的页面的HTML代码中是否包含检测字符串,来判断网站服务器是否存在安全漏洞,而且检测过程中也无需人为参与,从而提高了检测漏洞的准确性和效率。
附图说明
图1为现有技术中的第一种检测漏洞的过程;
图2为本发明实施例提供的检测漏洞的过程;
图3为本发明实施例提供的检测漏洞的详细过程;
图4为本发明实施例提供的检测漏洞的装置结构示意图。
具体实施方式
图2为本发明实施例提供的检测漏洞的过程,具体包括以下步骤:
S201:检测装置获得待检测URL,在该待检测URL的参数中添加预设的特殊字符串。
其中,该特殊字符串中包括定位字符串和检测字符串。
在本发明实施例中,检测装置获得待检测URL后,要对该待检测URL进行改造,即,基于预设的包含定位字符串和检测字符串的特殊字符串,在待检测URL的参数中添加该特殊字符串。其中,该特殊字符串中的检测字符串的作用是:用于后续检测服务器返回的页面的HTML代码中是否包含该检测字符串。定位字符串的作用是:定位后续检测服务器返回的页面的HTML代码中可能会包含该检测字符串的检测位置。
在待检测URL中添加预设的特殊字符串的方法具体可以为,检测装置识别待检测URL中的每个参数和锚点,针对识别出的每个参数,在该参数后添加预设的特殊字符串,针对识别出的每个锚点,在该锚点中添加预设的特殊字符串。
例如,在识别出的参数后或锚点中添加的特殊字符串可以是i8upartst'i8upartst"i8upartst<i8upartst>i8upartst。其中,该特殊字符串中的i8upartst是定位字符串,也即该特殊字符串共包含5个定位字符串,这5个定位字符串中每两个定位字符串之间的'、"、<、>是检测字符串。
需要说明的是,本发明实施例提供的上述在待检测URL中添加特殊字符串的方法中,仅对待检测URL的参数和锚点进行改造,而不更改待检测URL的其他部分,因此,后续对改造后的待检测URL进行访问时,仍然能够访问到改造前该待检测URL对应的网站服务器。
S202:生成用于访问添加了该特殊字符串的待检测URL的HTTP请求,并在该HTTP请求中添加该特殊字符串。
检测装置通过上述步骤S201对待检测URL进行改造后,则生成用于访问改造的待检测URL的HTTP请求,并对生成的该HTTP请求也进行改造,即,在该HTTP请求中也添加该特殊字符串。在该HTTP请求中添加该特殊字符串的方法具体可以为,构造包含该特殊字符串的Referer字段,并将该Referer字段添加到该HTTP请求的请求头(Herder)中。
继续沿用上例,检测装置构造包含i8upartst'i8upartst"i8upartst<i8upartst>i8upartst的Referer字段,并将该Referer字段添加到该HTTP请求的Herder中。
S203:采用添加了该特殊字符串的HTTP请求对添加了该特殊字符串的待检测URL进行访问,并接收该待检测URL对应的网站服务器返回的页面。
检测装置通过上述步骤S201和S202改造了待检测URL和HTTP请求后,则采用改造的该HTTP请求对改造的待检测URL进行访问,即,将改造的该HTTP请求发送给该待检测URL对应的网站服务器,并接收该网站服务器返回的页面。
S204:检测装置模拟浏览器对该页面进行加载。
为了可以准确的检测出包含动态dom元素(既存在输入点也存在输出点的dom元素)的页面中是否存在dom型xss漏洞,以准确的检出相应网站服务器是否可以有效的对dom型xss漏洞进行过滤,在本发明实施例中,检测装置接收到待检测URL对应的网站服务器返回的页面后,模拟浏览器对该页面进行加载。具体的,可以在检测装置中预置webkit,该webkit是依赖于pyqt的浏览器内核,通过该wenkit,检测装置则可以模拟浏览器对接收到的页面进行加载。
S205:查找加载后的页面的HTML代码中包含的定位字符串,确定查找到的定位字符串所定位出的检测位置。
在本发明实施例中,服务器并不会过滤掉在待检测URL和HTTP请求中添加的定位字符串,而由于该定位字符串可以用于对在待检测URL和HTTP请求中添加的检测字符串可能出现在页面的HTML代码中的位置进行定位,因此,检测装置查找加载后的页面的HTML代码中包含的定位字符串,确定查找到的定位字符串所定位出的检测位置。定位出的检测位置即为:如果服务器不能有效的对dom型xss漏洞进行过滤,则添加到待检测URL和HTTP请求中的检测字符串将会出现在加载后的页面的HTML代码中的位置。
继续沿用上例,检测装置模拟浏览器对服务器返回的页面进行加载后,查找加载后的页面的HTML代码中包含的定位字符串i8upartst,则在加载后的页面的HTML代码中,查找到的每两个i8upartst之间的位置即为检测位置。
S206:判断加载后的页面的HTML代码中的检测位置上是否存在检测字符串,若是,则执行步骤S207,否则执行步骤S208。
假设网站服务器返回的页面中存在动态dom元素,则该页面中也就存在需要通过浏览器在本地进行赋值的变量,而通过上述步骤S204,检测装置模拟浏览器对该页面进行加载后,则可以对该页面中的变量进行赋值,因此,根据加载后的页面的HTML代码中的检测位置上是否存在该检测字符串,就可以判断该待检测URL对应的网站服务器可以有效的对dom型xss漏洞进行过滤。
S207:确定该待检测URL对应的网站服务器存在安全漏洞。
如果加载后的页面的HTML代码中的检测位置上仍存在检测字符串,则说明检测装置通过上述步骤S203将改造的HTTP请求发送给该待检测URL对应的网站服务器后,该网站服务器并未对dom型xss漏洞进行过滤,因此,确定该待检测URL对应的网站服务器存在安全漏洞。
继续沿用上例,如果加载后的页面的HTML代码中的检测位置(查找到的每两个i8upartst之间的位置)上存在检测字符串'或"或<或>,则说明该网站服务器并未对dom型xss漏洞进行过滤,因此确定该待检测URL对应的网站服务器存在安全漏洞。
S208:确定该待检测URL对应的网站服务器不存在安全漏洞。
如果加载后的页面的HTML代码中的检测位置上不存在检测字符串,或者存在将检测字符串转译或编码后的代码,则确定该待检测URL对应的网站服务器不存在安全漏洞。
继续沿用上例,如果加载后的页面的HTML代码中的检测位置(查找到的每两个i8upartst之间的位置)上不存在检测字符串'或"或<或>,或者,存在将检测字符串'或"或<或>转译或编码后的代码,则说明该网站服务器可以有效地对dom型xss漏洞进行过滤,因此确定该待检测URL对应的网站服务器不存在安全漏洞。
下面以一个具体的应用实例说明存在动态dom元素的页面中的dom型xss漏洞。例如,假设访问一个URL后,该URL对应的网站服务器返回的页面的HTML代码如下:
Figure BDA00002516318500081
上述代码的作用是:将本页的URL动态作为id是dom的div的内容。上述HTML代码中就包含了动态dom元素,即包含既存在输入点也存在输出点的dom元素,该动态dom元素的输入点是document.getElementById,输出点是innerHTML,而其中需要在本地加载该页面后才能赋值的变量就是innerHTML,只有加载了该页面,才能获知对innerHTML赋值的location,如果不加载该页面,则尚不能判断该页面中是否存在dom型xss漏洞。
因此,假设在该URL中插入一段脚本,这样构造该URL:http://localhost/dom-xss.html#<img src=1onerror=alert(/xss/)>,而且该URL对应的网站服务器并未对dom型xss漏洞进行过滤,则访问该改造后的URL,并加载网站服务器返回的页面后,加载后的页面的HTML代码即为:
<div id='dom'>
http://localhost/dom-xss.html#<img src=1onerror=alert(/xss/)>
</div>
可见,加载后的页面的HTML代码中已经对innerHTML进行了赋值,而赋值之后,插入的脚本改变了页面结构(页面弹出了一个对话框),也即,加载后的页面中产生了dom型xss漏洞。
通过图2所示的上述方法,检测装置模拟浏览器对网站服务器返回的页面进行加载,因此即使页面中存在动态dom元素,仍可根据加载后的页面的HTML代码中是否包含检测字符串,来判断网站服务器是否对dom型xss漏洞进行了过滤,而且检测过程中也无需人为参与,从而提高了检测漏洞的准确性和效率。
较佳的,由于检测装置模拟浏览器对页面进行加载需要耗费较长的时间,因此,为了进一步提高检测漏洞的效率,在图2所示的过程中,检测装置在模拟浏览器对网站服务器返回的页面进行加载之前,可以先判断该待检测URL对应的页面的HTML代码中是否存在动态dom元素,若存在,则模拟浏览器对该页面进行加载,并进行后续的检测步骤,若不存在,则可以无需模拟浏览器加载该页面,直接根据该页面的HTML代码进行检测即可。
具体的,检测装置在执行如图2所示的步骤S204之前,也即,在模拟浏览器对该页面进行加载之前,可以获取该待检测URL对应的页面,并判断该待检测URL对应的页面的HTML代码中是否存在满足指定条件的dom元素,该满足指定条件的dom元素即为存在输入点且存在输出点的dom元素。若是,则模拟浏览器对通过步骤S203接收到的该页面进行加载,并执行后续的检测步骤,否则,可以直接在通过步骤S203接收到的该页面的HTML代码中查找定位字符串,并判断查找到的定位字符串所定位出的检测位置上是否存在检测字符串,如果存在,则确定该待检测URL对应的网站服务器存在安全漏洞,如果不存在,则定该待检测URL对应的网站服务器不存在安全漏洞。
其中,对于一个dom元素来说,其输入点包括但不限于document.location、document.URL、document.URLUnencoded、document.referrer、window.location、document.getElementById,其输出点包括但不限于document.write()、document.writeln()、innerHtml、eval、window.execScript()、window.setInterval()、window.setTimeout()。
通过上述方法,则对于不存在动态dom元素的页面,检测装置则无需对该页面进行加载,节省了加载页面的时间,进一步提高了检测漏洞的效率。
另外,在本发明实施例中,为了进一步提高检测漏洞的准确性,检测装置在通过如图2所示的步骤S202生成用于访问添加了该特殊字符串的待检测URL的HTTP请求之前,还可以在添加了该特殊字符串的待检测URL中添加错误参数。后续的,则可以生成用于访问添加了该特殊字符串、且添加了错误参数的待检测URL的HTTP请求,并继续执行后续步骤。其中,该错误参数可以是预先设定的在实际应用中并不存在的参数。
采用上述方法在改造后的待检测URL中添加了错误参数后,当后续确定加载后的页面的HTML代码中的检测位置上不存在检测字符串,或者存在将检测字符串转译或编码后的代码时,如果加载后的页面的HTML代码中包含了该错误参数,但未对该错误参数进行转译或编码,则确定该待检测URL对应的网站服务器存在安全漏洞,如果加载后的页面的HTML代码中包含了将该错误参数转译或编码后的代码,或者未包含该错误参数,则确定该待检测URL对应的网站服务器不存在安全漏洞。
图3为本发明实施例提供的检测漏洞的详细过程,具体包括以下步骤:
S301:检测装置获得待检测URL,识别该待检测URL中的每个参数和锚点。
S302:针对识别出的每个参数,在该参数后添加预设的特殊字符串,针对识别出的每个锚点,在该锚点中添加预设的特殊字符串。
其中,该特殊字符串中包括定位字符串和检测字符串。
S303:在添加了特殊字符串的待检测URL中添加错误参数。
S304:生成用于访问添加了特殊字符串、且添加了错误参数的待检测URL的HTTP请求。
S305:构造包含特殊字符串的Referer字段,并将该Referer字段添加到该HTTP请求的请求头中。
S306:采用添加了特殊字符串的HTTP请求,对添加了特殊字符串、且添加了错误参数的待检测URL进行访问。
S307:接收该待检测URL对应的网站服务器返回的页面。
S308:获取该待检测URL对应的页面。
S309:判断该URL对应的页面的HTML代码中是否存在满足指定条件的dom元素,若是,则执行步骤S310,否则执行步骤S313。
其中,该满足指定条件的dom元素为:存在输入点且存在输出点的dom元素。
S310:检测装置模拟浏览器对通过步骤S307接收到的页面进行加载。
S311:判断加载后的页面的HTML代码中是否包含检测字符串,若是,则执行步骤S315,否则执行步骤S312。
具体的,检测装置先查找加载后的页面的HTML代码中包含的定位字符串,确定查找到的定位字符串所定位出的检测位置,再判断加载后的页面的HTML代码中的检测位置上是否存在检测字符串。
S312:判断加载后的页面的HTML代码中是否包含该错误参数,若是,则执行步骤S315,否则执行步骤S316。
S313:判断通过步骤S307接收到的页面的HTML代码中是否包含检测字符串,若是,则执行步骤S315,否则,执行步骤S314。
具体的,检测装置先查找通过步骤S307接收到的页面的HTML代码中包含的定位字符串,确定查找到的定位字符串所定位出的检测位置,再判断通过步骤S307接收到的页面的HTML代码中的检测位置上是否存在检测字符串。
S314:判断通过步骤S307接收到的页面的HTML代码中是否包含该错误参数,若是,则执行步骤S315,否则执行步骤S316。
S315:确定该待检测URL对应的网站服务器存在安全漏洞。
S316:确定该待检测URL对应的网站服务器不存在安全漏洞。
以上为本发明实施例提供的检测漏洞的方法,基于同样的发明思路,本发明实施例还提供一种检测漏洞的装置,如图4所示。
图4为本发明实施例提供的检测漏洞的装置结构示意图,具体包括:
第一构造模块401,用于获得待检测统一资源定位符URL,在所述待检测URL的参数中添加预设的特殊字符串,所述特殊字符串中包括定位字符串和检测字符串;
第二构造模块402,用于生成用于访问添加了所述特殊字符串的待检测URL的超文本传输协议HTTP请求,并在所述HTTP请求中添加所述特殊字符串;
访问模块403,用于采用添加了所述特殊字符串的HTTP请求对添加了所述特殊字符串的待检测URL进行访问,并接收所述待检测URL对应的网站服务器返回的页面;
定位模块404,用于模拟浏览器对所述页面进行加载,查找加载后的页面的超文本标记语言HTML代码中包含的定位字符串,确定查找到的定位字符串所定位出的检测位置;
检测模块405,如果加载后的页面的HTML代码中的检测位置上存在检测字符串,则确定所述待检测URL对应的网站服务器存在安全漏洞,如果加载后的页面的HTML代码中的检测位置上不存在检测字符串,或者存在将检测字符串转译或编码后的代码,则确定所述待检测URL对应的网站服务器不存在安全漏洞。
所述装置还包括:
分析模块406,用于在所述定位模块404模拟浏览器对所述页面进行加载之前,获取所述待检测URL对应的页面,确定所述待检测URL对应的页面的HTML代码中存在满足指定条件的dom元素,其中,满足指定条件的dom元素为:同时存在输入点和输出点的dom元素。
所述第一构造模块401具体用于,识别所述待检测URL中的每个参数和锚点,针对识别出的每个参数,在该参数后添加所述特殊字符串,针对识别出的每个锚点,在该锚点中添加所述特殊字符串。
所述第二构造模块402具体用于,构造包含所述特殊字符串的Referer字段,并将所述Referer字段添加到所述HTTP请求的请求头中。
所述第一构造模块401还用于,在添加了所述特殊字符串的待检测URL中添加错误参数;
所述检测模块405还用于,当加载后的页面的HTML代码中的检测位置上不存在检测字符串,或者存在将检测字符串转译或编码后的代码时,如果加载后的页面的HTML代码中包含了所述错误参数,则确定所述待检测URL对应的网站服务器存在安全漏洞,如果加载后的页面的HTML代码中包含了将所述错误参数转译或编码后的代码,或者未包含所述错误参数,则确定所述待检测URL对应的网站服务器不存在安全漏洞。
本发明实施例提供一种检测漏洞的方法及装置,该方法检测装置针对待检测URL,构造用于访问该URL的HTTP请求,在待检测URL和HTTP请求中添加包括定位字符串和检测字符串的特殊字符串,再采用该HTTP请求访问该URL,最后模拟浏览器对网站服务器返回的页面进行加载,根据加载后的页面的HTML代码中是否包含该检测字符串,判断该网站服务器是否存在安全漏洞。由于上述方法检测装置模拟浏览器对网站服务器返回的页面进行加载,因此即使页面中存在动态dom元素,仍可根据加载后的页面的HTML代码中是否包含检测字符串,来判断网站服务器是否存在安全漏洞,而且检测过程中也无需人为参与,从而提高了检测漏洞的准确性和效率。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种检测漏洞的方法,其特征在于,包括:
检测装置获得待检测统一资源定位符URL,在所述待检测URL的参数中添加预设的特殊字符串,所述特殊字符串中包括定位字符串和检测字符串;并
生成用于访问添加了所述特殊字符串的待检测URL的超文本传输协议HTTP请求,并在所述HTTP请求中添加所述特殊字符串;以及
采用添加了所述特殊字符串的HTTP请求对添加了所述特殊字符串的待检测URL进行访问,并接收所述待检测URL对应的网站服务器返回的页面;
所述检测装置模拟浏览器对所述页面进行加载,查找加载后的页面的超文本标记语言HTML代码中包含的定位字符串,确定查找到的定位字符串所定位出的检测位置;
如果加载后的页面的HTML代码中的检测位置上存在检测字符串,则确定所述待检测URL对应的网站服务器存在安全漏洞,如果加载后的页面的HTML代码中的检测位置上不存在检测字符串,或者存在将检测字符串转译或编码后的代码,则确定所述待检测URL对应的网站服务器不存在安全漏洞。
2.如权利要求1所述的方法,其特征在于,所述检测装置在模拟浏览器对所述页面进行加载之前,所述方法还包括:
获取所述待检测URL对应的页面,确定所述待检测URL对应的页面的HTML代码中存在满足指定条件的dom元素,其中,满足指定条件的dom元素为:同时存在输入点和输出点的dom元素。
3.如权利要求1所述的方法,其特征在于,在所述待检测URL的参数中添加预设的特殊字符串,具体包括:
识别所述待检测URL中的每个参数和锚点;并
针对识别出的每个参数,在该参数后添加所述特殊字符串;以及
针对识别出的每个锚点,在该锚点中添加所述特殊字符串。
4.如权利要求1所述的方法,其特征在于,在所述HTTP请求中添加所述特殊字符串,具体包括:
构造包含所述特殊字符串的Referer字段,并将所述Referer字段添加到所述HTTP请求的请求头中。
5.如权利要求1所述的方法,其特征在于,生成用于访问添加了所述特殊字符串的待检测URL的HTTP请求之前,所述方法还包括:
在添加了所述特殊字符串的待检测URL中添加错误参数;
当加载后的页面的HTML代码中的检测位置上不存在检测字符串,或者存在将检测字符串转译或编码后的代码时,所述方法还包括:
如果加载后的页面的HTML代码中包含了所述错误参数,则确定所述待检测URL对应的网站服务器存在安全漏洞,如果加载后的页面的HTML代码中包含了将所述错误参数转译或编码后的代码,或者未包含所述错误参数,则确定所述待检测URL对应的网站服务器不存在安全漏洞。
6.一种检测漏洞的装置,其特征在于,包括:
第一构造模块,用于获得待检测统一资源定位符URL,在所述待检测URL的参数中添加预设的特殊字符串,所述特殊字符串中包括定位字符串和检测字符串;
第二构造模块,用于生成用于访问添加了所述特殊字符串的待检测URL的超文本传输协议HTTP请求,并在所述HTTP请求中添加所述特殊字符串;
访问模块,用于采用添加了所述特殊字符串的HTTP请求对添加了所述特殊字符串的待检测URL进行访问,并接收所述待检测URL对应的网站服务器返回的页面;
定位模块,用于模拟浏览器对所述页面进行加载,查找加载后的页面的超文本标记语言HTML代码中包含的定位字符串,确定查找到的定位字符串所定位出的检测位置;
检测模块,如果加载后的页面的HTML代码中的检测位置上存在检测字符串,则确定所述待检测URL对应的网站服务器存在安全漏洞,如果加载后的页面的HTML代码中的检测位置上不存在检测字符串,或者存在将检测字符串转译或编码后的代码,则确定所述待检测URL对应的网站服务器不存在安全漏洞。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
分析模块,用于在所述定位模块模拟浏览器对所述页面进行加载之前,获取所述待检测URL对应的页面,确定所述待检测URL对应的页面的HTML代码中存在满足指定条件的dom元素,其中,满足指定条件的dom元素为:同时存在输入点和输出点的dom元素。
8.如权利要求6所述的装置,其特征在于,所述第一构造模块具体用于,识别所述待检测URL中的每个参数和锚点,针对识别出的每个参数,在该参数后添加所述特殊字符串,针对识别出的每个锚点,在该锚点中添加所述特殊字符串。
9.如权利要求6所述的装置,其特征在于,所述第二构造模块具体用于,构造包含所述特殊字符串的Referer字段,并将所述Referer字段添加到所述HTTP请求的请求头中。
10.如权利要求6所述的装置,其特征在于,所述第一构造模块还用于,在添加了所述特殊字符串的待检测URL中添加错误参数;
所述检测模块还用于,当加载后的页面的HTML代码中的检测位置上不存在检测字符串,或者存在将检测字符串转译或编码后的代码时,如果加载后的页面的HTML代码中包含了所述错误参数,则确定所述待检测URL对应的网站服务器存在安全漏洞,如果加载后的页面的HTML代码中包含了将所述错误参数转译或编码后的代码,或者未包含所述错误参数,则确定所述待检测URL对应的网站服务器不存在安全漏洞。
CN201210510490.0A 2012-12-03 2012-12-03 一种检测漏洞的方法及装置 Active CN103095681B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210510490.0A CN103095681B (zh) 2012-12-03 2012-12-03 一种检测漏洞的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210510490.0A CN103095681B (zh) 2012-12-03 2012-12-03 一种检测漏洞的方法及装置

Publications (2)

Publication Number Publication Date
CN103095681A true CN103095681A (zh) 2013-05-08
CN103095681B CN103095681B (zh) 2016-08-03

Family

ID=48207814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210510490.0A Active CN103095681B (zh) 2012-12-03 2012-12-03 一种检测漏洞的方法及装置

Country Status (1)

Country Link
CN (1) CN103095681B (zh)

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104091116A (zh) * 2014-06-30 2014-10-08 珠海市君天电子科技有限公司 监控网站漏洞信息的方法、装置及终端
CN104484609A (zh) * 2014-12-23 2015-04-01 北京奇虎科技有限公司 网站漏洞检测方法和系统
CN104537307A (zh) * 2014-12-23 2015-04-22 北京奇虎科技有限公司 网站漏洞检测方法和系统
CN104537305A (zh) * 2014-12-31 2015-04-22 北京奇虎科技有限公司 网站漏洞检测方法和系统
CN104636664A (zh) * 2013-11-08 2015-05-20 腾讯科技(深圳)有限公司 基于文档对象模型的跨站脚本攻击漏洞检测方法及装置
CN104657659A (zh) * 2013-11-20 2015-05-27 腾讯科技(深圳)有限公司 一种存储跨站攻击脚本漏洞检测方法、装置及系统
CN104794396A (zh) * 2014-01-16 2015-07-22 腾讯科技(深圳)有限公司 跨站式脚本漏洞检测方法及装置
CN104836779A (zh) * 2014-02-12 2015-08-12 携程计算机技术(上海)有限公司 XSS漏洞检测方法、系统和Web服务器
CN104881603A (zh) * 2014-02-27 2015-09-02 腾讯科技(深圳)有限公司 网页重定向漏洞检测方法及装置
CN105678170A (zh) * 2016-01-05 2016-06-15 广东工业大学 一种动态检测xss漏洞的方法
CN106209487A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 用于检测网站中网页的安全漏洞的方法及装置
CN106250768A (zh) * 2016-07-21 2016-12-21 杭州安恒信息技术有限公司 一种数据库对象脚本安全漏洞的行为检测方法
CN106302337A (zh) * 2015-05-22 2017-01-04 腾讯科技(深圳)有限公司 漏洞检测方法和装置
CN106603464A (zh) * 2015-10-14 2017-04-26 北京国双科技有限公司 网络检测方法与系统、装置
CN106897624A (zh) * 2017-01-16 2017-06-27 深圳开源互联网安全技术有限公司 一种漏洞检测方法及其装置
CN106909846A (zh) * 2017-01-16 2017-06-30 安徽开源互联网安全技术有限公司 一种基于虚拟解析的漏洞检测方法及其装置
US9785778B2 (en) 2013-12-03 2017-10-10 Microsoft Technology Licensing, Llc Directed execution of dynamic programs in isolated environments
CN107332805A (zh) * 2016-04-29 2017-11-07 阿里巴巴集团控股有限公司 检测漏洞的方法、装置和系统
CN107347076A (zh) * 2017-08-23 2017-11-14 杭州安恒信息技术有限公司 Ssrf漏洞的检测方法及装置
CN107800692A (zh) * 2017-10-13 2018-03-13 郑州云海信息技术有限公司 一种基于web浏览器的XSS漏洞检测方法及系统
CN107832617A (zh) * 2017-09-15 2018-03-23 北京知道未来信息技术有限公司 一种php代码执行漏洞的黑盒检测方法及装置
CN107846407A (zh) * 2017-11-10 2018-03-27 郑州云海信息技术有限公司 一种批量检测ssrf漏洞的方法及系统
CN108011898A (zh) * 2018-01-30 2018-05-08 上海壹账通金融科技有限公司 漏洞检测方法、装置、计算机设备和存储介质
CN108322458A (zh) * 2018-01-30 2018-07-24 深圳壹账通智能科技有限公司 Web应用入侵检测方法、系统、计算机设备和存储介质
CN108520179A (zh) * 2018-04-09 2018-09-11 福建中金在线信息科技有限公司 一种webview漏洞的处理方法和装置
CN109167757A (zh) * 2018-07-27 2019-01-08 平安科技(深圳)有限公司 一种web应用的漏洞检测方法、终端及计算机可读介质
CN109450844A (zh) * 2018-09-18 2019-03-08 华为技术有限公司 触发漏洞检测的方法及装置
CN109933980A (zh) * 2019-02-28 2019-06-25 北京长亭科技有限公司 一种漏洞扫描方法、装置和电子设备
CN110417873A (zh) * 2019-07-08 2019-11-05 上海鸿翼软件技术股份有限公司 一种实现记录网页交互操作的网络信息提取系统
CN110708308A (zh) * 2019-09-29 2020-01-17 武汉大学 一种面向云计算环境的跨站脚本漏洞挖掘方法及系统
CN112653709A (zh) * 2020-12-30 2021-04-13 北京天融信网络安全技术有限公司 漏洞检测方法、装置、电子设备及可读存储介质
US11895138B1 (en) * 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101242279A (zh) * 2008-03-07 2008-08-13 北京邮电大学 用于web系统的自动化渗透性测试系统和方法
CN101894237A (zh) * 2010-08-03 2010-11-24 南开大学 应用遗传算法自动生成xss跨站点脚本漏洞检测参数的方法
CN101964025A (zh) * 2009-07-23 2011-02-02 中联绿盟信息技术(北京)有限公司 Xss检测方法和设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101242279A (zh) * 2008-03-07 2008-08-13 北京邮电大学 用于web系统的自动化渗透性测试系统和方法
CN101964025A (zh) * 2009-07-23 2011-02-02 中联绿盟信息技术(北京)有限公司 Xss检测方法和设备
CN101894237A (zh) * 2010-08-03 2010-11-24 南开大学 应用遗传算法自动生成xss跨站点脚本漏洞检测参数的方法

Cited By (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636664B (zh) * 2013-11-08 2018-04-27 腾讯科技(深圳)有限公司 基于文档对象模型的跨站脚本攻击漏洞检测方法及装置
CN104636664A (zh) * 2013-11-08 2015-05-20 腾讯科技(深圳)有限公司 基于文档对象模型的跨站脚本攻击漏洞检测方法及装置
CN104657659A (zh) * 2013-11-20 2015-05-27 腾讯科技(深圳)有限公司 一种存储跨站攻击脚本漏洞检测方法、装置及系统
US9785778B2 (en) 2013-12-03 2017-10-10 Microsoft Technology Licensing, Llc Directed execution of dynamic programs in isolated environments
CN104794396B (zh) * 2014-01-16 2018-06-19 腾讯科技(深圳)有限公司 跨站式脚本漏洞检测方法及装置
CN104794396A (zh) * 2014-01-16 2015-07-22 腾讯科技(深圳)有限公司 跨站式脚本漏洞检测方法及装置
CN104836779B (zh) * 2014-02-12 2019-07-26 上海携程商务有限公司 XSS漏洞检测方法、系统和Web服务器
CN104836779A (zh) * 2014-02-12 2015-08-12 携程计算机技术(上海)有限公司 XSS漏洞检测方法、系统和Web服务器
CN104881603A (zh) * 2014-02-27 2015-09-02 腾讯科技(深圳)有限公司 网页重定向漏洞检测方法及装置
CN104881603B (zh) * 2014-02-27 2018-07-03 腾讯科技(深圳)有限公司 网页重定向漏洞检测方法及装置
CN104091116A (zh) * 2014-06-30 2014-10-08 珠海市君天电子科技有限公司 监控网站漏洞信息的方法、装置及终端
CN104537307A (zh) * 2014-12-23 2015-04-22 北京奇虎科技有限公司 网站漏洞检测方法和系统
CN104484609A (zh) * 2014-12-23 2015-04-01 北京奇虎科技有限公司 网站漏洞检测方法和系统
CN104537305B (zh) * 2014-12-31 2017-12-15 北京奇安信科技有限公司 网站漏洞检测方法和系统
CN104537305A (zh) * 2014-12-31 2015-04-22 北京奇虎科技有限公司 网站漏洞检测方法和系统
US11895138B1 (en) * 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
CN106209487A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 用于检测网站中网页的安全漏洞的方法及装置
CN106209487B (zh) * 2015-05-07 2019-12-03 阿里巴巴集团控股有限公司 用于检测网站中网页的安全漏洞的方法及装置
CN106302337A (zh) * 2015-05-22 2017-01-04 腾讯科技(深圳)有限公司 漏洞检测方法和装置
CN106603464A (zh) * 2015-10-14 2017-04-26 北京国双科技有限公司 网络检测方法与系统、装置
CN105678170B (zh) * 2016-01-05 2018-05-29 广东工业大学 一种动态检测xss漏洞的方法
CN105678170A (zh) * 2016-01-05 2016-06-15 广东工业大学 一种动态检测xss漏洞的方法
CN107332805B (zh) * 2016-04-29 2021-02-26 阿里巴巴集团控股有限公司 检测漏洞的方法、装置和系统
CN107332805A (zh) * 2016-04-29 2017-11-07 阿里巴巴集团控股有限公司 检测漏洞的方法、装置和系统
CN106250768B (zh) * 2016-07-21 2019-02-22 杭州安恒信息技术股份有限公司 一种数据库对象脚本安全漏洞的行为检测方法
CN106250768A (zh) * 2016-07-21 2016-12-21 杭州安恒信息技术有限公司 一种数据库对象脚本安全漏洞的行为检测方法
CN106909846A (zh) * 2017-01-16 2017-06-30 安徽开源互联网安全技术有限公司 一种基于虚拟解析的漏洞检测方法及其装置
CN106897624A (zh) * 2017-01-16 2017-06-27 深圳开源互联网安全技术有限公司 一种漏洞检测方法及其装置
CN107347076A (zh) * 2017-08-23 2017-11-14 杭州安恒信息技术有限公司 Ssrf漏洞的检测方法及装置
CN107832617B (zh) * 2017-09-15 2021-03-30 北京知道未来信息技术有限公司 一种php代码执行漏洞的黑盒检测方法及装置
CN107832617A (zh) * 2017-09-15 2018-03-23 北京知道未来信息技术有限公司 一种php代码执行漏洞的黑盒检测方法及装置
CN107800692A (zh) * 2017-10-13 2018-03-13 郑州云海信息技术有限公司 一种基于web浏览器的XSS漏洞检测方法及系统
CN107846407A (zh) * 2017-11-10 2018-03-27 郑州云海信息技术有限公司 一种批量检测ssrf漏洞的方法及系统
CN108011898A (zh) * 2018-01-30 2018-05-08 上海壹账通金融科技有限公司 漏洞检测方法、装置、计算机设备和存储介质
CN108322458A (zh) * 2018-01-30 2018-07-24 深圳壹账通智能科技有限公司 Web应用入侵检测方法、系统、计算机设备和存储介质
CN108322458B (zh) * 2018-01-30 2020-05-19 深圳壹账通智能科技有限公司 Web应用入侵检测方法、系统、计算机设备和存储介质
CN108011898B (zh) * 2018-01-30 2020-11-20 深圳壹账通智能科技有限公司 漏洞检测方法、装置、计算机设备和存储介质
CN108520179B (zh) * 2018-04-09 2021-01-15 福建中金在线信息科技有限公司 一种webview漏洞的处理方法和装置
CN108520179A (zh) * 2018-04-09 2018-09-11 福建中金在线信息科技有限公司 一种webview漏洞的处理方法和装置
CN109167757A (zh) * 2018-07-27 2019-01-08 平安科技(深圳)有限公司 一种web应用的漏洞检测方法、终端及计算机可读介质
CN109167757B (zh) * 2018-07-27 2021-05-11 平安科技(深圳)有限公司 一种web应用的漏洞检测方法、终端及计算机可读介质
CN109450844A (zh) * 2018-09-18 2019-03-08 华为技术有限公司 触发漏洞检测的方法及装置
CN109450844B (zh) * 2018-09-18 2022-05-10 华为云计算技术有限公司 触发漏洞检测的方法及装置
CN109933980A (zh) * 2019-02-28 2019-06-25 北京长亭科技有限公司 一种漏洞扫描方法、装置和电子设备
CN110417873A (zh) * 2019-07-08 2019-11-05 上海鸿翼软件技术股份有限公司 一种实现记录网页交互操作的网络信息提取系统
CN110708308A (zh) * 2019-09-29 2020-01-17 武汉大学 一种面向云计算环境的跨站脚本漏洞挖掘方法及系统
CN110708308B (zh) * 2019-09-29 2021-08-17 武汉大学 一种面向云计算环境的跨站脚本漏洞挖掘方法及系统
CN112653709A (zh) * 2020-12-30 2021-04-13 北京天融信网络安全技术有限公司 漏洞检测方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN103095681B (zh) 2016-08-03

Similar Documents

Publication Publication Date Title
CN103095681A (zh) 一种检测漏洞的方法及装置
US10333972B2 (en) Method and apparatus for detecting hidden content of web page
CN102663319B (zh) 下载链接安全提示方法及装置
CN105243159A (zh) 一种基于可视化脚本编辑器的分布式网络爬虫系统
CN107766344B (zh) 一种模板渲染的方法、装置及浏览器
CN104956362A (zh) 分析web应用程序的结构
CN103077254B (zh) 网页获取方法和装置
CN104079559B (zh) 一种网址安全性检测方法、装置及服务器
US20120331038A1 (en) Systems and methods for processing web service piped network requests
CN104519008A (zh) 跨站脚本攻击防御方法和装置、应用服务器
CN106126693A (zh) 一种网页的相关数据的发送方法及装置
CN104767747A (zh) 点击劫持安全检测方法和装置
CN105160246A (zh) 一种识别被劫持浏览器的方法及浏览器
CN104462242B (zh) 网页回流量统计方法及装置
CN107784107A (zh) 基于逃逸行为分析的暗链检测方法及装置
CN103336693B (zh) refer链的创建方法、装置及安全检测设备
CN104375935A (zh) Sql注入攻击的测试方法和装置
CN105471821A (zh) 一种基于浏览器的信息处理方法及装置
CN110457900B (zh) 一种网站监测方法、装置、设备及可读存储介质
CN105930385A (zh) 一种数据爬取方法及系统
US10095791B2 (en) Information search method and apparatus
CN103581321B (zh) 一种refer链的创建方法、装置及安全检测方法和客户端
CN105354490A (zh) 一种处理被劫持浏览器的方法及设备
CA2527885A1 (en) Verifying content of resources in markup language documents
CN109246069B (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
C14 Grant of patent or utility model
GR01 Patent grant