CN105282096A - Xss 漏洞检测方法和装置 - Google Patents
Xss 漏洞检测方法和装置 Download PDFInfo
- Publication number
- CN105282096A CN105282096A CN201410273566.1A CN201410273566A CN105282096A CN 105282096 A CN105282096 A CN 105282096A CN 201410273566 A CN201410273566 A CN 201410273566A CN 105282096 A CN105282096 A CN 105282096A
- Authority
- CN
- China
- Prior art keywords
- webpage
- detected
- url
- scripted code
- web server
- 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
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种XSS漏洞检测方法和装置。其中,该方法包括:获取待检测的网页的统一资源标识符URL和待检测的网页所在的Web服务器可执行的脚本代码;将脚本代码更新到待检测的网页的URL中;使用更新后的URL访问待检测的网页;判断Web服务器是否执行脚本代码;若Web服务器执行脚本代码,则判断出待检测的网页存在跨站脚本攻击XSS漏洞。本发明解决了基于对网页文件进行匹配分析的XSS漏洞检测方案所得到的检测结果准确性较差的技术问题。
Description
技术领域
本发明涉及计算机安全领域,具体而言,涉及一种XSS漏洞检测方法和装置。
背景技术
跨站脚本攻击XSS(CrossSiteScripting)漏洞是一种经常出现在Web页面也即网页中的计算机安全漏洞。具体地,XSS漏洞通常是指由于网页编写的问题所导致的用户能够向网页或网页所在的Web服务器植入代码的情形,其中,由于用户能够向网页或Web服务器植入自己编写的代码,因此恶意的用户便可以利用网页中的XSS漏洞绕开常规的访问控制,进而危害Web服务器、访问该网页的其他客户端及其常规用户。因此,为提高网络运行环境的安全等级和可靠性,如何有效地对网页中的XSS漏洞进行检测便成为了亟待解决的问题。
由于XSS漏洞通常是由于网页编写及其响应逻辑的不完善导致的,因此为了实现对XSS漏洞的有效检测,目前所通常采用的方案是对网页对应的网页文件进行匹配分析。具体地,可以预先设置有一些用于匹配的关键词,这些关键词通常可以体现出XSS漏洞的特征,进而利用这些关键词对网页文件进行匹配,并在检测到网页文件中存在一个或多个该关键词时,分析出该网页存在XSS漏洞。
然而,由于XSS漏洞的复杂性,其所对应的可能出现在网页文件中的关键词可能有很多种,这在一方面增大了维护关键词列表的负担,在另一方面也容易导致XSS漏洞的漏报。在又一方面,由于网页文件中的代码的复杂性,因此网页文件中可能存在一些不属于XSS漏洞的正常的内容却包含有某一个或多个上述关键词,在这一情形下,采用上述方式对XSS漏洞进行检测也容易出现XSS漏洞的误报。也就是说,现有的XSS漏洞的检测方案容易造成XSS漏洞的漏报或误报,也即现有方案的检测结果的准确性不足。针对这一问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种XSS漏洞检测方法和装置,以至少解决基于对网页文件进行匹配分析的XSS漏洞检测方案所得到的检测结果准确性较差的技术问题。
根据本发明实施例的一个方面,提供了一种XSS漏洞检测方法,包括:获取待检测的网页的统一资源标识符URL(UniformedResourceLocator)和上述待检测的网页所在的Web服务器可执行的脚本代码;将上述脚本代码更新到上述待检测的网页的URL中;使用更新后的上述URL访问上述待检测的网页;判断上述Web服务器是否执行上述脚本代码;若上述Web服务器执行上述脚本代码,则判断出上述待检测的网页存在跨站脚本攻击XSS漏洞。
根据本发明实施例的另一方面,还提供了一种XSS漏洞检测装置,包括:获取单元,用于获取待检测的网页的统一资源标识符URL和上述待检测的网页所在的Web服务器可执行的脚本代码;更新单元,用于将上述脚本代码更新到上述待检测的网页的URL中;访问单元,用于使用更新后的上述URL访问上述待检测的网页;判断单元,用于判断上述Web服务器是否执行上述脚本代码;输出单元,用于在上述Web服务器执行上述脚本代码时,判断出上述待检测的网页存在跨站脚本攻击XSS漏洞。
在本发明实施例中,采用了对待检测的网页进行访问、进而分析网页的响应来检测该待检测的网页中是否存在XSS漏洞的方式。具体地,在本发明实施例中,可以先获取待检测的网页的URL和待检测的网页所在的Web服务器可执行的脚本代码,然后使用携带有该脚本代码的更新后的该URL访问该待检测的网页,以便于将该脚本代码上报给该Web服务器。由于对XSS漏洞有较为完善的防护措施的网页普遍不会直接执行URL中夹带的脚本代码,因此通过对Web服务器是否会直接执行该脚本代码进行判断,便可以得知待检测的网页中是否存在XSS漏洞。一般地,在上述场景下,如果Web服务器执行该脚本代码,则可以判断出待检测的网页中存在XSS漏洞,反之则可以认为网页中不存在XSS漏洞。通过上述方式,避免了由于网页文件的复杂性所带来的基于对网页文件的匹配分析进行的XSS漏洞检测的过程中可能带来的漏判和误判,提高了检测结果的准确性,进而解决了基于对网页文件进行匹配分析的XSS漏洞检测方案所得到的检测结果准确性较差的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的XSS漏洞检测方法的示意图;
图2是根据本发明实施例的一种可选的XSS漏洞检测方法或装置的实施环境的示意图;
图3是根据本发明实施例的一种可选的网页页面的示意图;
图4是根据本发明实施例的另一种可选的网页页面的示意图;
图5是根据本发明实施例的又一种可选的网页页面的示意图;
图6是根据本发明实施例的又一种可选的网页页面的示意图;
图7是根据本发明实施例的另一种可选的XSS漏洞检测方法的示意图;
图8是根据本发明实施例的又一种可选的XSS漏洞检测方法的示意图;
图9是根据本发明实施例的一种可选的XSS漏洞检测装置的示意图;
图10是根据本发明实施例的一种可选的存储介质中存储的程序代码所执行的操作步骤的示意图;
图11是根据本发明实施例的一种可选的服务器的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种XSS漏洞检测方法,如图3所示,该方法包括:
S102:获取待检测的网页的URL和待检测的网页所在的Web服务器可执行的脚本代码;
S104:将脚本代码更新到待检测的网页的URL中;
S106:使用更新后的URL访问待检测的网页;
S108:判断Web服务器是否执行该脚本代码;
S110:若Web服务器执行脚本代码,则判断出待检测的网页存在跨站脚本攻击XSS漏洞。
应当明确的是,本发明实施例所要解决的问题之一是提供一种方法,以便实现对XSS漏洞的有效检测。
XSS漏洞是一种经常出现在Web页面也即网页中的计算机安全漏洞。具体地,XSS漏洞通常是指由于网页编写的问题所导致的用户能够向网页或网页所在的Web服务器植入代码的情形,其中,由于用户能够向网页或Web服务器植入自己编写的代码,因此恶意的用户便可以利用网页中的XSS漏洞绕开常规的访问控制,进而危害Web服务器、访问该网页的其他客户端及其常规用户。因此,为提高网络运行环境的安全等级和可靠性,如何有效地对网页中的XSS漏洞进行检测便成为了亟待解决的问题。
由于XSS漏洞通常是由于网页编写及其响应逻辑的不完善导致的,因此为了实现对XSS漏洞的有效检测,目前所通常采用的方案是对网页对应的网页文件进行匹配分析。具体地,可以预先设置有一些用于匹配的关键词,这些关键词通常可以体现出XSS漏洞的特征,进而利用这些关键词对网页文件进行匹配,并在检测到网页文件中存在一个或多个该关键词时,分析出该网页存在XSS漏洞。
然而,由于XSS漏洞的复杂性,其所对应的可能出现在网页文件中的关键词可能有很多种,这在一方面增大了维护关键词列表的负担,在另一方面也容易导致XSS漏洞的漏报。在又一方面,由于网页文件中的代码的复杂性,因此网页文件中可能存在一些不属于XSS漏洞的正常的内容却包含有某一个或多个上述关键词,在这一情形下,采用上述方式对XSS漏洞进行检测也容易出现XSS漏洞的误报。也就是说,现有的XSS漏洞的检测方案容易造成XSS漏洞的漏报或误报,也即现有方案的检测结果的准确性不足。
为解决上述问题,在本发明实施例中,采用了对待检测的网页进行访问、进而分析网页的响应来检测该待检测的网页中是否存在XSS漏洞的方式。具体地,在本发明实施例中,可以先获取待检测的网页的URL和待检测的网页所在的Web服务器可执行的脚本代码,然后使用携带有该脚本代码的更新后的该URL访问该待检测的网页,以便于将该脚本代码上报给该Web服务器。由于对XSS漏洞有较为完善的防护措施的网页普遍不会直接执行URL中夹带的脚本代码,因此通过对Web服务器是否会直接执行该脚本代码进行判断,便可以得知待检测的网页中是否存在XSS漏洞。一般地,在上述场景下,如果Web服务器执行该脚本代码,则可以判断出待检测的网页中存在XSS漏洞,反之则可以认为网页中不存在XSS漏洞。通过上述方式,避免了由于网页文件的复杂性所带来的基于对网页文件的匹配分析进行的XSS漏洞检测的过程中可能带来的漏判和误判,提高了检测结果的准确性,进而解决了基于对网页文件进行匹配分析的XSS漏洞检测方案所得到的检测结果准确性较差的技术问题。
以下将结合附图和具体实施例对本发明技术方案及其工作原理进行更为详细的描述。首先结合图2对根据本发明实施例提供的XSS漏洞检测方法的实施环境进行描述。
在图2中,Web服务器204可以是用于提供网页浏览服务的服务器,具体地,客户端206、208和210可以向Web服务器204发送请求访问由Web服务器204所维护的一个或多个网页的请求消息,并接收Web服务器204响应于该请求消息所返回的访问结果。更具体地,在本发明实施例中,上述客户端206、208和210包括但不限于是浏览器客户端,进而这些浏览器客户端可以根据返回的访问结果加载各项内部或外部资源并对页面进行渲染,生成用于向客户端的用户展示的网页页面,以便于用户对网页进行浏览。当然,这只是一种示例,在本发明的一些实施例中,上述客户端206、208和210也可以是浏览器客户端以外的客户端,用来向客户端的用户提供包括展示网页在内的更为丰富的功能,例如,在一个实施例中,客户端206也可以是网页游戏客户端,通过该网页游戏客户端仍然可以完成对Web服务器204所维护的游戏页面的访问,本发明对此不作限定。
进一步地,如图2所示,网络环境中还可以设置有后台服务器202,该后台服务器202可以用于提供数据安全服务。具体地,在本发明实施例中,后台服务器202可以与Web服务器204、客户端206、208和210之中的一个或多个存在数据连接,以便于接收Web服务器204、客户端206、208或210发送的用于请求检测待检测的网页中是否存在XSS漏洞的请求消息。具体地,该待检测的网页通常可以是Web服务器204所维护的网页,或者是客户端206、208或210所需访问的网页,对应地,该请求消息中可以携带有待检测的网页的URL,以便于后台服务器202基于该URL执行后续的检测操作。进一步地,后台服务器202可以检测由该URL所指示的待检测的网页中是否存在XSS漏洞,并将检测结果返回给发送该请求消息的Web服务器204、客户端206、208或210。
当然,以上只是一种示例,并不意味着对本发明构成了限定。具体来说,如图2所示,后台服务器202可以与Web服务器204、客户端206、208和210之中的任意一个或多个连接并向该任意一个提供具有针对网页中的XSS漏洞进行检测的功能的数据安全服务。此外,在本发明的一些实施例中,该后台服务器202所提供的XSS漏洞检测功能也可以封装为内置或外挂的模块并设置在Web服务器204、客户端206、208和210之中的任意一个或多个上,例如,Web服务器204也可以设置有XSS漏洞检测的模块,以避免向用户提供存在XSS漏洞的网页的访问服务等,本发明对此不作任何限定。
需要说明的是,本发明通过以上描述提供了一种本发明技术方案的可行的实施环境,然而应当理解的是,以上描述仅仅是一种示例性的描述,以便于对本发明技术方案及其工作环境的理解,而不应视为是对本发明的限定。具体地,根据本发明实施例提供的XSS漏洞检测方法还可以实施于多种可行的其他硬件或系统环境中,本发明在此不一一累述。
在上述环境下,根据本发明实施例提供的检测方法,在步骤S102中,用于提供数据安全服务的后台服务器可以先获取待检测的网页的URL和待检测的网页所在的Web服务器可执行的脚本代码。
如前所述,在本发明实施例中,待检测的网页的URL可以从请求提供检测服务的与后台服务器连接的设备,比如维护有该待检测的网页的Web服务器或者是需要访问该待检测的网页的客户端获取。然而这并非本发明唯一的实施方式,例如,在一些实施例中,后台服务器也可以响应于运维管理人员的控制命令从预置的一批待检测的网页,比如某一网站域名下的所有网页的URL列表中逐个获取每个网页的URL,本发明对此不作限定。
另一方面,在本发明实施例中,Web服务器可执行的脚本代码可以是预设的用于XSS漏洞检测的脚本代码。具体地,该脚本代码并不限于具有特定的组成或结构,所描述的“用于XSS漏洞检测”也不会限定该脚本代码的类型、属性或功能。一般来说,该脚本代码通常可以是能够嵌入到网页中的由html标签所标识的JS(JavaScript)代码,由于JS代码广泛应用于网页动态和交互的实现,因此JS代码通常能够被各网页和Web服务器所识别并执行,因此可以适用于本发明实施例中所描述的XSS漏洞检测操作。
以图3所示的网页页面为例,其中,该页面对应于用于收集用户的建议与意见等反馈信息的网页,主要用于向用户展示3个文本框和相邻于每个文本框的提示语。具体地,如图3所示,用户可以在与提示语“用户名”相邻的文本框中填写用户名,例如图3中所填写的abc,用户还可以在与提示语“联系方式”相邻的文本框中填写电话号码等联系方式,例如图3中所填写的110110,此外用户还可以在与提示语“反馈内容”相邻的文本框中填写所需反馈的建议与意见,例如对网页的浏览体验、对网页所提供的产品或服务的体验等。
然而容易注意到,在图3中,与“反馈内容”相邻的文本框中也可以填入JS代码:<script>alert(“XSS_1”)</script>。具体地,该JS代码包括html标签“<script>”和“</script>”以及夹在这两个html标签之间的alert函数“alert(“XSS_1”)”,若网页或者说网页所在的Web服务器执行了这段JS代码,则会从html标签“<script>”和“</script>”之间提取出alert函数,进而执行alert函数所指示的显示提示框的操作,例如图4中所示的具有叹号警示标志的提示框,并且该提示框中显示有作为alert函数的变量的字符串“XSS_1”。在上述场景下,JS代码“<script>alert(“XSS_1”)</script>”便可以作为步骤S102中所描述的脚本代码。
进一步地,根据本发明实施例提供的检测方法,在步骤S104中,后台服务器可以将脚本代码更新到待检测的网页的URL中,进而通过步骤S106使用更新后的URL访问待检测的网页。
例如,对于图5所示的网页来说,其URL可以是图5中的浏览器地址栏中的字符串:
http://192.168.0.1/admin/manage.asp?uid=abc。
具体地,该URL可以包括协议部分“http”、域名部分“192.168.0.1”、路径部分“admin/manage.asp”和参数部分“uid=abc”,其中,该协议部分表示访问网页所使用的传输协议是HTTP协议,该域名部分用于指示Web服务器的域名系统的主机名或IP地址是192.168.0.1,该路径部分用于指示Web服务器的网页文件的地址,参数部分用于指示由网页所设置的可选项,在本实施例中,可以表示用户名或者说用户ID为abc。如图5所示,基于网页文件的编写逻辑,使用该URL访问网页时,页面可以回显用户名abc,并向用户展示以下文字:“欢迎回来,abc”。
在本发明实施例中,若要对图4中所示的网页进行XSS漏洞的检测,则可以通过步骤S102先获取待检测的网页的URL和脚本代码,例如,待检测的网页的URL可以是http://192.168.0.1/admin/manage.asp?uid=abc,脚本代码可以是<script>alert(“XSS”)</script>。在基础上,通过步骤S104,可以将脚本代码更新到待检测的网页的URL中,例如,更新后的URL可以是图6中的浏览器地址栏中的字符串:
http://192.168.0.1/admin/manage.asp?uid=<script>alert(“XSS”)</script>。
也即,在本发明实施例中,待检测的网页的URL中的参数部分被替换为脚本代码。进而后台服务器通过浏览器使用更新后的URL访问网页时则可能在浏览器上展示出图6所示的页面,从图6中可以看出,Web服务器也执行了从URL中提取出的脚本代码,也即生成了具有叹号警示标志的提示框,并且该提示框中显示有作为alert函数的变量的字符串“XSS_1”。
进一步地,根据本发明实施例提供的检测方法,在步骤S108中,后台服务器可以判断Web服务器是否执行了携带在更新后的URL中的脚本代码,进而通过步骤S110,在Web服务器执行脚本代码时,判断出待检测的网页存在跨站脚本攻击XSS漏洞。
以前述实施例中所描述的网页为例,无论是对于图3所示的网页还是图5所示的网页,通过图4或图6所示的访问结果,可以判断出这两个网页均存在XSS漏洞。
具体来说,在本发明实施例中,若判断出Web服务器已执行更新后的URL中的脚本代码,则可以认为网页或Web服务器未对URL中携带的JS代码进行过滤,也即,网页文件中缺乏对来自于外部的脚本代码的过滤逻辑,存在编写不完善的问题,导致运行网页文件的Web服务器未对访问请求中的脚本代码或者是包含有脚本代码的访问请求进行过滤处理,这便形成了XSS漏洞。利用该XSS漏洞,恶意的用户可以利用上传的脚本代码向网页中植入自定义的代码,在上述情形下,若其他用户对该网页进行访问,则会将恶意的用户植入的代码视为是原网页或Web服务器提供的可信任的代码,进而可能会带来个人信息如银行卡密码等的泄露,从而导致安全风险。通过根据本发明实施例提供的检测方法,便可以实现对网页中是否存在此类XSS漏洞进行准确、有效地检测。
进一步地,在本发明实施例中,步骤S102中所描述的获取操作、步骤S104中所描述的更新操作和步骤S108中所描述的判断操作均可以有多种可行的实施方式,本发明并不会对上述各操作具体的实现方式进行限定。例如图7所示,可选地,在本发明实施例中,上述步骤S104可以包括:
S702:将脚本代码添加到待检测的网页的URL中的参数部分,或者,将待检测的网页的URL中的参数部分替换为脚本代码,得到更新后的URL,其中,更新后的URL用于使Web服务器从参数部分提取脚本代码。
更具体地,作为一种可行的方式,在本发明实施例中,上述步骤S702可以进一步包括:
S2、在待检测的网页中查找第一指示符,其中,第一指示符用于指示参数在待检测的网页的URL中的起始位置;使用脚本代码替换第一指示符之后的字符或字符串,得到更新后的URL;或者,
S4、在待检测的网页中查找第一指示符和第二指示符,其中,第一指示符用于指示参数在待检测的网页的URL中的起始位置,第二指示符用于指示参数在待检测的网页的URL中的终止位置;使用脚本代码替换第一指示符与第二指示符之间的字符或字符串,得到更新后的URL。
例如,以图5中的浏览器地址栏中的URL为例,该URL中的指示符“?”可以用于指示参数部分的起始位置,而“=”可以用于指示参数部分中的待传输给网页的参数的起始位置。在上述场景下,通过步骤S2,可以将“=”作为第一指示符,并使用脚本代码替换URL中的该第一指示符之后的字符串abc,从而形成图6中的浏览器地址栏中的更新后的URL:http://192.168.0.1/admin/manage.asp?uid=<script>alert(“XSS”)</script>。
此外,在本发明的一些实施例中,待检测的网页的参数部分中的参数可以有多个,多个参数之间可以利用符号“&”分隔。在这一场景下,则可以将用于标识第一个参数的起始位置的符号“=”作为第一指示符,将用于标识第二个参数的起始位置的符号“&”作为第二指示符,并将第一指示符与第二指示符之间的第一个参数替换为脚本代码。通过这一方式,同样可以将脚本代码上传到Web服务器。
除此之外,作为一种可行的对Web服务器是否执行携带在更新后的URL中的脚本代码的方式,如图8所示,在本发明实施例中,上述步骤S106可以包括:
S802:调用浏览器使用更新后的URL访问待检测的网页;其中,
步骤S108可以包括:
S804:判断浏览器是否获取到由Web服务器返回的执行脚本代码后得到的执行结果,若浏览器获取到执行结果,则判断出Web服务器已执行脚本代码。
进一步可选地,在本发明实施例中,步骤S102可以包括:
S6、获取待检测的网页的URL和脚本代码,其中,脚本代码包括JavaScript的alert函数;其中,
上述步骤S804可以进一步包括:
S8、判断浏览器是否获取到由Web服务器返回的执行脚本代码后得到的执行结果包括:判断浏览器是否生成alert弹窗并提示由alert函数所指示的内容,若是,则判断出Web服务器已执行脚本代码。
在本发明实施例中,后台服务器上的检测程序可以调用浏览器的内核,从而在一方面可以通过浏览器来访问待检测的网页,在另一方面可以通过浏览器来判断Web服务器是否执行脚本代码并返回相应的执行结果。更具体的实施例可以参照前述实施例中的对应描述,本发明在此不作赘述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述检测方法的XSS漏洞的检测装置,如图9所示,该装置包括:
1)获取单元902,用于获取待检测的网页的统一资源标识符URL和待检测的网页所在的Web服务器可执行的脚本代码;
2)更新单元904,用于将脚本代码更新到待检测的网页的URL中;
3)访问单元906,用于使用更新后的URL访问待检测的网页;
4)判断单元908,用于判断Web服务器是否执行脚本代码;
5)输出单元910,用于在Web服务器执行脚本代码时,判断出待检测的网页存在跨站脚本攻击XSS漏洞。
应当明确的是,本发明实施例所要解决的问题之一是提供一种装置,以便实现对XSS漏洞的有效检测。
XSS漏洞是一种经常出现在Web页面也即网页中的计算机安全漏洞。具体地,XSS漏洞通常是指由于网页编写的问题所导致的用户能够向网页或网页所在的Web服务器植入代码的情形,其中,由于用户能够向网页或Web服务器植入自己编写的代码,因此恶意的用户便可以利用网页中的XSS漏洞绕开常规的访问控制,进而危害Web服务器、访问该网页的其他客户端及其常规用户。因此,为提高网络运行环境的安全等级和可靠性,如何有效地对网页中的XSS漏洞进行检测便成为了亟待解决的问题。
由于XSS漏洞通常是由于网页编写及其响应逻辑的不完善导致的,因此为了实现对XSS漏洞的有效检测,目前所通常采用的方案是对网页对应的网页文件进行匹配分析。具体地,可以预先设置有一些用于匹配的关键词,这些关键词通常可以体现出XSS漏洞的特征,进而利用这些关键词对网页文件进行匹配,并在检测到网页文件中存在一个或多个该关键词时,分析出该网页存在XSS漏洞。
然而,由于XSS漏洞的复杂性,其所对应的可能出现在网页文件中的关键词可能有很多种,这在一方面增大了维护关键词列表的负担,在另一方面也容易导致XSS漏洞的漏报。在又一方面,由于网页文件中的代码的复杂性,因此网页文件中可能存在一些不属于XSS漏洞的正常的内容却包含有某一个或多个上述关键词,在这一情形下,采用上述方式对XSS漏洞进行检测也容易出现XSS漏洞的误报。也就是说,现有的XSS漏洞的检测方案容易造成XSS漏洞的漏报或误报,也即现有方案的检测结果的准确性不足。
为解决上述问题,在本发明实施例中,采用了对待检测的网页进行访问、进而分析网页的响应来检测该待检测的网页中是否存在XSS漏洞的方式。具体地,在本发明实施例中,可以先获取待检测的网页的URL和待检测的网页所在的Web服务器可执行的脚本代码,然后使用携带有该脚本代码的更新后的该URL访问该待检测的网页,以便于将该脚本代码上报给该Web服务器。由于对XSS漏洞有较为完善的防护措施的网页普遍不会直接执行URL中夹带的脚本代码,因此通过对Web服务器是否会直接执行该脚本代码进行判断,便可以得知待检测的网页中是否存在XSS漏洞。一般地,在上述场景下,如果Web服务器执行该脚本代码,则可以判断出待检测的网页中存在XSS漏洞,反之则可以认为网页中不存在XSS漏洞。通过上述方式,避免了由于网页文件的复杂性所带来的基于对网页文件的匹配分析进行的XSS漏洞检测的过程中可能带来的漏判和误判,提高了检测结果的准确性,进而解决了基于对网页文件进行匹配分析的XSS漏洞检测方案所得到的检测结果准确性较差的技术问题。
以下将结合附图和具体实施例对本发明技术方案及其工作原理进行更为详细的描述。首先结合图2对根据本发明实施例提供的XSS漏洞检测装置的实施环境进行描述。
在图2中,Web服务器204可以是用于提供网页浏览服务的服务器,具体地,客户端206、208和210可以向Web服务器204发送请求访问由Web服务器204所维护的一个或多个网页的请求消息,并接收Web服务器204响应于该请求消息所返回的访问结果。更具体地,在本发明实施例中,上述客户端206、208和210包括但不限于是浏览器客户端,进而这些浏览器客户端可以根据返回的访问结果加载各项内部或外部资源并对页面进行渲染,生成用于向客户端的用户展示的网页页面,以便于用户对网页进行浏览。当然,这只是一种示例,在本发明的一些实施例中,上述客户端206、208和210也可以是浏览器客户端以外的客户端,用来向客户端的用户提供包括展示网页在内的更为丰富的功能,例如,在一个实施例中,客户端206也可以是网页游戏客户端,通过该网页游戏客户端仍然可以完成对Web服务器204所维护的游戏页面的访问,本发明对此不作限定。
进一步地,如图2所示,网络环境中还可以设置有后台服务器202,该后台服务器202可以用于提供数据安全服务,其中,根据本发明实施例提供的检测装置可以设置在后台服务器202上。具体地,在本发明实施例中,后台服务器202可以与Web服务器204、客户端206、208和210之中的一个或多个存在数据连接,以便于接收Web服务器204、客户端206、208或210发送的用于请求检测待检测的网页中是否存在XSS漏洞的请求消息。具体地,该待检测的网页通常可以是Web服务器204所维护的网页,或者是客户端206、208或210所需访问的网页,对应地,该请求消息中可以携带有待检测的网页的URL,以便于后台服务器202基于该URL执行后续的检测操作。进一步地,后台服务器202可以检测由该URL所指示的待检测的网页中是否存在XSS漏洞,并将检测结果返回给发送该请求消息的Web服务器204、客户端206、208或210。
当然,以上只是一种示例,并不意味着对本发明构成了限定。具体来说,如图2所示,后台服务器202可以与Web服务器204、客户端206、208和210之中的任意一个或多个连接并向该任意一个提供具有针对网页中的XSS漏洞进行检测的功能的数据安全服务。此外,在本发明的一些实施例中,该后台服务器202所提供的XSS漏洞检测功能也可以封装为内置或外挂的模块并设置在Web服务器204、客户端206、208和210之中的任意一个或多个上,例如,Web服务器204也可以设置有XSS漏洞检测的模块,以避免向用户提供存在XSS漏洞的网页的访问服务等,本发明对此不作任何限定。
需要说明的是,本发明通过以上描述提供了一种本发明技术方案的可行的实施环境,然而应当理解的是,以上描述仅仅是一种示例性的描述,以便于对本发明技术方案及其工作环境的理解,而不应视为是对本发明的限定。具体地,根据本发明实施例提供的XSS漏洞检测装置还可以实施于多种可行的其他硬件或系统环境中,本发明在此不一一累述。
在上述环境下,根据本发明实施例提供的检测装置,用于提供数据安全服务的后台服务器可以通过获取单元902先获取待检测的网页的URL和待检测的网页所在的Web服务器可执行的脚本代码。
如前所述,在本发明实施例中,待检测的网页的URL可以从请求提供检测服务的与后台服务器连接的设备,比如维护有该待检测的网页的Web服务器或者是需要访问该待检测的网页的客户端获取。然而这并非本发明唯一的实施方式,例如,在一些实施例中,后台服务器也可以响应于运维管理人员的控制命令从预置的一批待检测的网页,比如某一网站域名下的所有网页的URL列表中逐个获取每个网页的URL,本发明对此不作限定。
另一方面,在本发明实施例中,Web服务器可执行的脚本代码可以是预设的用于XSS漏洞检测的脚本代码。具体地,该脚本代码并不限于具有特定的组成或结构,所描述的“用于XSS漏洞检测”也不会限定该脚本代码的类型、属性或功能。一般来说,该脚本代码通常可以是能够嵌入到网页中的由html标签所标识的JS代码,由于JS代码广泛应用于网页动态和交互的实现,因此JS代码通常能够被各网页和Web服务器所识别并执行,因此可以适用于本发明实施例中所描述的XSS漏洞检测操作。
以图3所示的网页页面为例,其中,该页面对应于用于收集用户的建议与意见等反馈信息的网页,主要用于向用户展示3个文本框和相邻于每个文本框的提示语。具体地,如图3所示,用户可以在与提示语“用户名”相邻的文本框中填写用户名,例如图3中所填写的abc,用户还可以在与提示语“联系方式”相邻的文本框中填写电话号码等联系方式,例如图3中所填写的110110,此外用户还可以在与提示语“反馈内容”相邻的文本框中填写所需反馈的建议与意见,例如对网页的浏览体验、对网页所提供的产品或服务的体验等。
然而容易注意到,在图3中,与“反馈内容”相邻的文本框中也可以填入JS代码:<script>alert(“XSS_1”)</script>。具体地,该JS代码包括html标签“<script>”和“</script>”以及夹在这两个html标签之间的alert函数“alert(“XSS_1”)”,若网页或者说网页所在的Web服务器执行了这段JS代码,则会从html标签“<script>”和“</script>”之间提取出alert函数,进而执行alert函数所指示的显示提示框的操作,例如图4中所示的具有叹号警示标志的提示框,并且该提示框中显示有作为alert函数的变量的字符串“XSS_1”。在上述场景下,JS代码“<script>alert(“XSS_1”)</script>”便可以作为获取单元902中所描述的脚本代码。
进一步地,根据本发明实施例提供的检测装置,后台服务器可以通过更新单元904将脚本代码更新到待检测的网页的URL中,进而通过访问单元906使用更新后的URL访问待检测的网页。
例如,对于图5所示的网页来说,其URL可以是图5中的浏览器地址栏中的字符串:
http://192.168.0.1/admin/manage.asp?uid=abc。
具体地,该URL可以包括协议部分“http”、域名部分“192.168.0.1”、路径部分“admin/manage.asp”和参数部分“uid=abc”,其中,该协议部分表示访问网页所使用的传输协议是HTTP协议,该域名部分用于指示Web服务器的域名系统的主机名或IP地址是192.168.0.1,该路径部分用于指示Web服务器的网页文件的地址,参数部分用于指示由网页所设置的可选项,在本实施例中,可以表示用户名或者说用户ID为abc。如图5所示,基于网页文件的编写逻辑,使用该URL访问网页时,页面可以回显用户名abc,并向用户展示以下文字:“欢迎回来,abc”。
在本发明实施例中,若要对图4中所示的网页进行XSS漏洞的检测,则可以通过获取单元902先获取待检测的网页的URL和脚本代码,例如,待检测的网页的URL可以是http://192.168.0.1/admin/manage.asp?uid=abc,脚本代码可以是<script>alert(“XSS”)</script>。在基础上,通过更新单元904,可以将脚本代码更新到待检测的网页的URL中,例如,更新后的URL可以是图6中的浏览器地址栏中的字符串:
http://192.168.0.1/admin/manage.asp?uid=<script>alert(“XSS”)</script>。
也即,在本发明实施例中,待检测的网页的URL中的参数部分被替换为脚本代码。进而后台服务器通过浏览器使用更新后的URL访问网页时则可能在浏览器上展示出图6所示的页面,从图6中可以看出,Web服务器也执行了从URL中提取出的脚本代码,也即生成了具有叹号警示标志的提示框,并且该提示框中显示有作为alert函数的变量的字符串“XSS_1”。
进一步地,根据本发明实施例提供的检测装置,后台服务器可以通过判断单元908判断Web服务器是否执行了携带在更新后的URL中的脚本代码,进而通过输出单元910,在Web服务器执行脚本代码时,判断出待检测的网页存在跨站脚本攻击XSS漏洞。
以前述实施例中所描述的网页为例,无论是对于图3所示的网页还是图5所示的网页,通过图4或图6所示的访问结果,可以判断出这两个网页均存在XSS漏洞。
具体来说,在本发明实施例中,若判断出Web服务器已执行更新后的URL中的脚本代码,则可以认为网页或Web服务器未对URL中携带的JS代码进行过滤,也即,网页文件中缺乏对来自于外部的脚本代码的过滤逻辑,存在编写不完善的问题,导致运行网页文件的Web服务器未对访问请求中的脚本代码或者是包含有脚本代码的访问请求进行过滤处理,这便形成了XSS漏洞。利用该XSS漏洞,恶意的用户可以利用上传的脚本代码向网页中植入自定义的代码,在上述情形下,若其他用户对该网页进行访问,则会将恶意的用户植入的代码视为是原网页或Web服务器提供的可信任的代码,进而可能会带来个人信息如银行卡密码等的泄露,从而导致安全风险。通过根据本发明实施例提供的检测装置,便可以实现对网页中是否存在此类XSS漏洞进行准确、有效地检测。
进一步地,在本发明实施例中,获取单元902中所描述的获取操作、更新单元904中所描述的更新操作和判断单元908中所描述的判断操作均可以有多种可行的实施方式,本发明并不会对上述各操作具体的实现方式进行限定。例如图7所示,可选地,在本发明实施例中,上述更新单元904可以包括:
1)更新模块,用于将脚本代码添加到待检测的网页的URL中的参数部分,或者,将待检测的网页的URL中的参数部分替换为脚本代码,得到更新后的URL,其中,更新后的URL用于使Web服务器从参数部分提取脚本代码。
更具体地,作为一种可行的方式,在本发明实施例中,上述更新模块可以进一步包括:
1)第一查找子模块,用于在待检测的网页中查找第一指示符,其中,第一指示符用于指示参数在待检测的网页的URL中的起始位置;2)第一替换子模块,用于使用脚本代码替换第一指示符之后的字符或字符串,得到更新后的URL;或者,
3)第二查找子模块,用于在待检测的网页中查找第一指示符和第二指示符,其中,第一指示符用于指示参数在待检测的网页的URL中的起始位置,第二指示符用于指示参数在待检测的网页的URL中的终止位置;
4)第二替换子模块,用于使用脚本代码替换第一指示符与第二指示符之间的字符或字符串,得到更新后的URL。
例如,以图5中的浏览器地址栏中的URL为例,该URL中的指示符“?”可以用于指示参数部分的起始位置,而“=”可以用于指示参数部分中的待传输给网页的参数的起始位置。在上述场景下,第一查找子模块可以将“=”作为第一指示符,并使用脚本代码替换URL中的该第一指示符之后的字符串abc,从而形成图6中的浏览器地址栏中的更新后的URL:http://192.168.0.1/admin/manage.asp?uid=<script>alert(“XSS”)</script>。
此外,在本发明的一些实施例中,待检测的网页的参数部分中的参数可以有多个,多个参数之间可以利用符号“&”分隔。在这一场景下,则可以将用于标识第一个参数的起始位置的符号“=”作为第一指示符,将用于标识第二个参数的起始位置的符号“&”作为第二指示符,并将第一指示符与第二指示符之间的第一个参数替换为脚本代码。通过这一方式,同样可以将脚本代码上传到Web服务器。
除此之外,作为一种可行的对Web服务器是否执行携带在更新后的URL中的脚本代码的方式,如图8所示,在本发明实施例中,上述访问单元906可以包括:
1)访问模块,用于调用浏览器使用更新后的URL访问待检测的网页;其中,
判断单元908可以包括:
2)判断模块,用于判断浏览器是否获取到由Web服务器返回的执行脚本代码后得到的执行结果,若浏览器获取到执行结果,则判断出Web服务器已执行脚本代码。
进一步可选地,在本发明实施例中,获取单元902可以包括:
1)获取模块,用于获取待检测的网页的URL和脚本代码,其中,脚本代码包括JavaScript的alert函数;其中,
上述判断模块可以进一步包括:
1)判断子模块,用于判断浏览器是否获取到由Web服务器返回的执行脚本代码后得到的执行结果包括:判断浏览器是否生成alert弹窗并提示由alert函数所指示的内容,若是,则判断出Web服务器已执行脚本代码。
在本发明实施例中,后台服务器上的检测程序可以调用浏览器的内核,从而在一方面可以通过浏览器来访问待检测的网页,在另一方面可以通过浏览器来判断Web服务器是否执行脚本代码并返回相应的执行结果。更具体的实施例可以参照前述实施例中的对应描述,本发明在此不作赘述。
实施例3
根据本发明实施例,还提供了一种用于存储如实施例1中所描述的检测方法的进程实体的存储介质,如图10所示,该存储介质被设置为存储用于执行以下步骤的程序代码:
S1002:获取待检测的网页的URL和待检测的网页所在的Web服务器可执行的脚本代码;
S1004:将脚本代码更新到待检测的网页的URL中;
S1006:使用更新后的URL访问待检测的网页;
S1008:判断Web服务器是否执行该脚本代码;
S1010:若Web服务器执行脚本代码,则判断出待检测的网页存在跨站脚本攻击XSS漏洞。
可选地,在本实施例中,上述存储介质可以位于如图2所示的后台服务器202上,具体地,该存储介质可以设置在一台网络设备上,也可以分功能地设置在多台网络设备上,本发明对此不作限定。
可选地,在本实施例中,处理器可以根据存储介质中存储的用于执行步骤S1004的代码执行以下操作:
S12、将脚本代码添加到待检测的网页的URL中的参数部分,或者,将待检测的网页的URL中的参数部分替换为脚本代码,得到更新后的URL,其中,更新后的URL用于使Web服务器从参数部分提取脚本代码。
可选地,在本实施例中,处理器还可以根据存储介质中存储的用于执行步骤S12的代码执行以下操作:
S14、在待检测的网页中查找第一指示符,其中,第一指示符用于指示参数在待检测的网页的URL中的起始位置;使用脚本代码替换第一指示符之后的字符或字符串,得到更新后的URL;或者,
S16、在待检测的网页中查找第一指示符和第二指示符,其中,第一指示符用于指示参数在待检测的网页的URL中的起始位置,第二指示符用于指示参数在待检测的网页的URL中的终止位置;使用脚本代码替换第一指示符与第二指示符之间的字符或字符串,得到更新后的URL。
可选地,在本实施例中,处理器还可以根据存储介质中存储的用于执行步骤S1006的代码执行以下操作:S18、调用浏览器使用更新后的URL访问待检测的网页;其中,
处理器还可以根据存储介质中存储的用于执行步骤S1008的代码执行以下操作:S20、判断浏览器是否获取到由Web服务器返回的执行脚本代码后得到的执行结果,若浏览器获取到执行结果,则判断出Web服务器已执行脚本代码。
可选地,在本实施例中,处理器还可以根据存储介质中存储的用于执行步骤S1002的代码执行以下操作:S22、获取待检测的网页的URL和脚本代码,其中,脚本代码包括JavaScript的alert函数;其中,
处理器还可以根据存储介质中存储的用于执行步骤S20的代码执行以下操作:S24、判断浏览器是否生成alert弹窗并提示由alert函数所指示的内容,若是,则判断出Web服务器已执行脚本代码。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
实施例4
根据本发明实施例,还提供了一种用于实施如实施例1中所描述的获取方法的服务器,如图11所示,该服务器包括:
1)I/O接口1102,用于获取待检测的网页的统一资源标识符URL和待检测的网页所在的Web服务器可执行的脚本代码;
2)处理器1104,用于将脚本代码更新到待检测的网页的URL中;其中,
I/O接口1102还用于使用更新后的URL访问待检测的网页;其中,
处理器1104还用于用于判断Web服务器是否执行脚本代码;其中,
处理器1104用于在Web服务器执行脚本代码时,判断出待检测的网页存在跨站脚本攻击XSS漏洞。
可选地,在本实施例中,根据本发明实施例提供的服务器可以是如图2所示的后台服务器202。具体地,后台服务器202可以用于提供数据安全相关的各类服务,具体地,可以用于提供应用安全缺陷的检测服务。更具体地,在本发明实施例中,上述后台服务器202可以表示用于提供对应服务的服务器应用,也可以表示安装并运行有这些服务器应用的计算机或计算机系统,本发明对此不作限定。
可选地,在本实施例中,上述处理器1104可以被设置为执行以下操作:
S26、将脚本代码添加到待检测的网页的URL中的参数部分,或者,将待检测的网页的URL中的参数部分替换为脚本代码,得到更新后的URL,其中,更新后的URL用于使Web服务器从参数部分提取脚本代码。
可选地,在本实施例中,上述处理器1104还可以进一步地被设置为执行以下操作:
S28、在待检测的网页中查找第一指示符,其中,第一指示符用于指示参数在待检测的网页的URL中的起始位置;S30、使用脚本代码替换第一指示符之后的字符或字符串,得到更新后的URL;或者,
S32、在待检测的网页中查找第一指示符和第二指示符,其中,第一指示符用于指示参数在待检测的网页的URL中的起始位置,第二指示符用于指示参数在待检测的网页的URL中的终止位置;S34、使用脚本代码替换第一指示符与第二指示符之间的字符或字符串,得到更新后的URL。
可选地,在本实施例中,上述I/O接口1102可以被设置为执行以下操作:S36、调用浏览器使用更新后的所述URL访问所述待检测的网页;其中,
上述处理器1104可以被设置为执行以下操作:S38、判断所述浏览器是否获取到由所述Web服务器返回的执行所述脚本代码后得到的执行结果,若所述浏览器获取到所述执行结果,则判断出所述Web服务器已执行所述脚本代码。
可选地,在本实施例中,上述I/O接口1102可以被设置为执行以下操作:S40、获取所述待检测的网页的URL和所述脚本代码,其中,所述脚本代码包括JavaScript的alert函数;其中,
上述处理器1104可以被设置为执行以下操作:S42、判断所述浏览器是否生成alert弹窗并提示由所述alert函数所指示的内容,若是,则判断出所述Web服务器已执行所述脚本代码。
可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的服务器和客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种XSS漏洞检测方法,其特征在于,包括:
获取待检测的网页的统一资源标识符URL和所述待检测的网页所在的Web服务器可执行的脚本代码;
将所述脚本代码更新到所述待检测的网页的URL中;
使用更新后的所述URL访问所述待检测的网页;
判断所述Web服务器是否执行所述脚本代码;
若所述Web服务器执行所述脚本代码,则判断出所述待检测的网页存在跨站脚本攻击XSS漏洞。
2.根据权利要求1所述的方法,其特征在于,所述将所述脚本代码更新到所述待检测的网页的URL中包括:
将所述脚本代码添加到所述待检测的网页的URL中的参数部分,或者,将所述待检测的网页的URL中的参数部分替换为所述脚本代码,得到更新后的所述URL,其中,更新后的所述URL用于使所述Web服务器从所述参数部分提取所述脚本代码。
3.根据权利要求2所述的方法,其特征在于,所述将所述待检测的网页的URL中的参数部分替换为所述脚本代码包括:
在所述待检测的网页中查找第一指示符,其中,所述第一指示符用于指示参数在所述待检测的网页的URL中的起始位置;使用所述脚本代码替换所述第一指示符之后的字符或字符串,得到更新后的所述URL;或者,
在所述待检测的网页中查找第一指示符和第二指示符,其中,所述第一指示符用于指示参数在所述待检测的网页的URL中的起始位置,所述第二指示符用于指示参数在所述待检测的网页的URL中的终止位置;使用所述脚本代码替换所述第一指示符与所述第二指示符之间的字符或字符串,得到更新后的所述URL。
4.根据权利要求1至3中任一项所述的方法,其特征在于,
所述使用更新后的所述URL访问所述待检测的网页包括:调用浏览器使用更新后的所述URL访问所述待检测的网页;
所述判断所述Web服务器是否执行所述脚本代码包括:判断所述浏览器是否获取到由所述Web服务器返回的执行所述脚本代码后得到的执行结果,若所述浏览器获取到所述执行结果,则判断出所述Web服务器已执行所述脚本代码。
5.根据权利要求4所述的方法,其特征在于,
所述获取待检测的网页的URL和可被所述待检测的网页所在的Web服务器执行的脚本代码包括:获取所述待检测的网页的URL和所述脚本代码,其中,所述脚本代码包括JavaScript的alert函数;
所述判断所述浏览器是否获取到由所述Web服务器返回的执行所述脚本代码后得到的执行结果包括:判断所述浏览器是否生成alert弹窗并提示由所述alert函数所指示的内容,若是,则判断出所述Web服务器已执行所述脚本代码。
6.一种XSS漏洞检测装置,其特征在于,包括:
获取单元,用于获取待检测的网页的统一资源标识符URL和所述待检测的网页所在的Web服务器可执行的脚本代码;
更新单元,用于将所述脚本代码更新到所述待检测的网页的URL中;
访问单元,用于使用更新后的所述URL访问所述待检测的网页;
判断单元,用于判断所述Web服务器是否执行所述脚本代码;
输出单元,用于在所述Web服务器执行所述脚本代码时,判断出所述待检测的网页存在跨站脚本攻击XSS漏洞。
7.根据权利要求6所述的装置,其特征在于,所述更新单元包括:
更新模块,用于将所述脚本代码添加到所述待检测的网页的URL中的参数部分,或者,将所述待检测的网页的URL中的参数部分替换为所述脚本代码,得到更新后的所述URL,其中,更新后的所述URL用于使所述Web服务器从所述参数部分提取所述脚本代码。
8.根据权利要求7所述的装置,其特征在于,所述更新模块包括:
第一查找子模块,用于在所述待检测的网页中查找第一指示符,其中,所述第一指示符用于指示参数在所述待检测的网页的URL中的起始位置;第一替换子模块,用于使用所述脚本代码替换所述第一指示符之后的字符或字符串,得到更新后的所述URL;或者,
第二查找子模块,用于在所述待检测的网页中查找第一指示符和第二指示符,其中,所述第一指示符用于指示参数在所述待检测的网页的URL中的起始位置,所述第二指示符用于指示参数在所述待检测的网页的URL中的终止位置;第二替换子模块,用于使用所述脚本代码替换所述第一指示符与所述第二指示符之间的字符或字符串,得到更新后的所述URL。
9.根据权利要求6至8中任一项所述的装置,其特征在于,
所述访问单元包括:访问模块,用于调用浏览器使用更新后的所述URL访问所述待检测的网页;
所述判断单元包括:判断模块,用于判断所述浏览器是否获取到由所述Web服务器返回的执行所述脚本代码后得到的执行结果,若所述浏览器获取到所述执行结果,则判断出所述Web服务器已执行所述脚本代码。
10.根据权利要求9所述的装置,其特征在于,
所述获取单元包括:获取模块,用于获取所述待检测的网页的URL和所述脚本代码,其中,所述脚本代码包括JavaScript的alert函数;
所述判断模块包括:判断子模块,用于判断所述浏览器是否生成alert弹窗并提示由所述alert函数所指示的内容,若是,则判断出所述Web服务器已执行所述脚本代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410273566.1A CN105282096A (zh) | 2014-06-18 | 2014-06-18 | Xss 漏洞检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410273566.1A CN105282096A (zh) | 2014-06-18 | 2014-06-18 | Xss 漏洞检测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105282096A true CN105282096A (zh) | 2016-01-27 |
Family
ID=55150435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410273566.1A Pending CN105282096A (zh) | 2014-06-18 | 2014-06-18 | Xss 漏洞检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105282096A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871850A (zh) * | 2016-04-05 | 2016-08-17 | 携程计算机技术(上海)有限公司 | 爬虫检测方法和系统 |
CN107301345A (zh) * | 2017-06-06 | 2017-10-27 | 新浪网技术(中国)有限公司 | 一种阻止xss攻击的方法、系统及装置 |
CN107832622A (zh) * | 2017-12-08 | 2018-03-23 | 平安科技(深圳)有限公司 | 漏洞检测方法、装置、计算机设备及存储介质 |
CN107846407A (zh) * | 2017-11-10 | 2018-03-27 | 郑州云海信息技术有限公司 | 一种批量检测ssrf漏洞的方法及系统 |
CN108512818A (zh) * | 2017-02-28 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 检测漏洞的方法及装置 |
CN108696481A (zh) * | 2017-04-07 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 漏洞检测方法和装置 |
CN109787995A (zh) * | 2019-02-18 | 2019-05-21 | 福建六壬网安股份有限公司 | 一种检测xss漏洞的方法及终端 |
CN110460612A (zh) * | 2019-08-15 | 2019-11-15 | 中国平安财产保险股份有限公司 | 安全测试方法、设备、存储介质及装置 |
CN111193733A (zh) * | 2019-12-27 | 2020-05-22 | 杭州安恒信息技术股份有限公司 | 一种基于内网微服务架构的网关系统 |
CN114168950A (zh) * | 2022-02-11 | 2022-03-11 | 北京仁科互动网络技术有限公司 | 一种跨站脚本攻击漏洞的修复方法、装置、设备及产品 |
CN114915462A (zh) * | 2022-04-29 | 2022-08-16 | 中国电信股份有限公司 | 跨站请求伪造攻击防御方法及装置、电子设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070107057A1 (en) * | 2005-11-10 | 2007-05-10 | Docomo Communications Laboratories Usa, Inc. | Method and apparatus for detecting and preventing unsafe behavior of javascript programs |
CN101964025A (zh) * | 2009-07-23 | 2011-02-02 | 中联绿盟信息技术(北京)有限公司 | Xss检测方法和设备 |
CN102819710A (zh) * | 2012-08-22 | 2012-12-12 | 西北工业大学 | 基于渗透测试的跨站点脚本漏洞检测方法 |
CN103023869A (zh) * | 2012-11-02 | 2013-04-03 | 北京奇虎科技有限公司 | 恶意攻击防止方法和浏览器 |
-
2014
- 2014-06-18 CN CN201410273566.1A patent/CN105282096A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070107057A1 (en) * | 2005-11-10 | 2007-05-10 | Docomo Communications Laboratories Usa, Inc. | Method and apparatus for detecting and preventing unsafe behavior of javascript programs |
CN101964025A (zh) * | 2009-07-23 | 2011-02-02 | 中联绿盟信息技术(北京)有限公司 | Xss检测方法和设备 |
CN102819710A (zh) * | 2012-08-22 | 2012-12-12 | 西北工业大学 | 基于渗透测试的跨站点脚本漏洞检测方法 |
CN103023869A (zh) * | 2012-11-02 | 2013-04-03 | 北京奇虎科技有限公司 | 恶意攻击防止方法和浏览器 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871850B (zh) * | 2016-04-05 | 2019-02-01 | 携程计算机技术(上海)有限公司 | 爬虫检测方法和系统 |
CN105871850A (zh) * | 2016-04-05 | 2016-08-17 | 携程计算机技术(上海)有限公司 | 爬虫检测方法和系统 |
CN108512818B (zh) * | 2017-02-28 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 检测漏洞的方法及装置 |
CN108512818A (zh) * | 2017-02-28 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 检测漏洞的方法及装置 |
CN108696481A (zh) * | 2017-04-07 | 2018-10-23 | 北京京东尚科信息技术有限公司 | 漏洞检测方法和装置 |
CN107301345A (zh) * | 2017-06-06 | 2017-10-27 | 新浪网技术(中国)有限公司 | 一种阻止xss攻击的方法、系统及装置 |
CN107846407A (zh) * | 2017-11-10 | 2018-03-27 | 郑州云海信息技术有限公司 | 一种批量检测ssrf漏洞的方法及系统 |
CN107832622A (zh) * | 2017-12-08 | 2018-03-23 | 平安科技(深圳)有限公司 | 漏洞检测方法、装置、计算机设备及存储介质 |
CN107832622B (zh) * | 2017-12-08 | 2019-03-12 | 平安科技(深圳)有限公司 | 漏洞检测方法、装置、计算机设备及存储介质 |
WO2019109528A1 (zh) * | 2017-12-08 | 2019-06-13 | 平安科技(深圳)有限公司 | 漏洞检测方法、装置、计算机设备及存储介质 |
CN109787995A (zh) * | 2019-02-18 | 2019-05-21 | 福建六壬网安股份有限公司 | 一种检测xss漏洞的方法及终端 |
CN109787995B (zh) * | 2019-02-18 | 2021-10-22 | 福建六壬网安股份有限公司 | 一种检测xss漏洞的方法及终端 |
CN110460612B (zh) * | 2019-08-15 | 2022-05-20 | 中国平安财产保险股份有限公司 | 安全测试方法、设备、存储介质及装置 |
CN110460612A (zh) * | 2019-08-15 | 2019-11-15 | 中国平安财产保险股份有限公司 | 安全测试方法、设备、存储介质及装置 |
CN111193733A (zh) * | 2019-12-27 | 2020-05-22 | 杭州安恒信息技术股份有限公司 | 一种基于内网微服务架构的网关系统 |
CN114168950A (zh) * | 2022-02-11 | 2022-03-11 | 北京仁科互动网络技术有限公司 | 一种跨站脚本攻击漏洞的修复方法、装置、设备及产品 |
CN114168950B (zh) * | 2022-02-11 | 2022-06-10 | 北京仁科互动网络技术有限公司 | 一种跨站脚本攻击漏洞的修复方法、装置、设备及产品 |
CN114915462A (zh) * | 2022-04-29 | 2022-08-16 | 中国电信股份有限公司 | 跨站请求伪造攻击防御方法及装置、电子设备及介质 |
CN114915462B (zh) * | 2022-04-29 | 2023-09-08 | 中国电信股份有限公司 | 跨站请求伪造攻击防御方法及装置、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105282096A (zh) | Xss 漏洞检测方法和装置 | |
CN103607385B (zh) | 基于浏览器进行安全检测的方法和装置 | |
CN111522922B (zh) | 日志信息查询方法、装置、存储介质及计算机设备 | |
CN104965691B (zh) | 配置网页页面的页面元素的方法、装置及系统 | |
CN101964025B (zh) | Xss检测方法和设备 | |
CN102882886B (zh) | 一种呈现访问网站的相关信息的网络终端和方法 | |
CN111401416B (zh) | 异常网站的识别方法、装置和异常对抗行为的识别方法 | |
CN102739653B (zh) | 一种针对网址的检测方法及装置 | |
CN109376291B (zh) | 一种基于网络爬虫的网站指纹信息扫描的方法及装置 | |
CN104767757A (zh) | 基于web业务的多维度安全监测方法和系统 | |
CN106453216A (zh) | 恶意网站拦截方法、装置及客户端 | |
CN104765746B (zh) | 用于移动通讯终端浏览器的数据处理方法和装置 | |
CN107085549B (zh) | 故障信息生成的方法和装置 | |
US8407766B1 (en) | Method and apparatus for monitoring sensitive data on a computer network | |
CN102970282A (zh) | 网站安全检测系统 | |
CN103117893A (zh) | 一种网络访问行为的监控方法、装置和一种客户端设备 | |
CN103617390A (zh) | 一种恶意网页判断方法、装置和系统 | |
CN104468459B (zh) | 一种漏洞检测方法及装置 | |
CN111404937A (zh) | 一种服务器漏洞的检测方法和装置 | |
CN106209487B (zh) | 用于检测网站中网页的安全漏洞的方法及装置 | |
CN107332805B (zh) | 检测漏洞的方法、装置和系统 | |
EP3671512A1 (en) | Automated software vulnerability determination | |
CN104317884A (zh) | 网站来源页面类型的获取方法和装置 | |
CN105471821A (zh) | 一种基于浏览器的信息处理方法及装置 | |
Smith et al. | Blocked or broken? Automatically detecting when privacy interventions break websites |
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 |
Application publication date: 20160127 |
|
RJ01 | Rejection of invention patent application after publication |