CN109218284B - Xss漏洞检测方法及装置、计算机设备及可读介质 - Google Patents

Xss漏洞检测方法及装置、计算机设备及可读介质 Download PDF

Info

Publication number
CN109218284B
CN109218284B CN201810816579.7A CN201810816579A CN109218284B CN 109218284 B CN109218284 B CN 109218284B CN 201810816579 A CN201810816579 A CN 201810816579A CN 109218284 B CN109218284 B CN 109218284B
Authority
CN
China
Prior art keywords
node
token
request data
attribute
token node
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
Application number
CN201810816579.7A
Other languages
English (en)
Other versions
CN109218284A (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.)
Baidu Online Network Technology Beijing Co Ltd
Original Assignee
Baidu Online Network Technology Beijing 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 Baidu Online Network Technology Beijing Co Ltd filed Critical Baidu Online Network Technology Beijing Co Ltd
Priority to CN201810816579.7A priority Critical patent/CN109218284B/zh
Publication of CN109218284A publication Critical patent/CN109218284A/zh
Application granted granted Critical
Publication of CN109218284B publication Critical patent/CN109218284B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供一种XSS漏洞检测方法及装置、计算机设备及可读介质。其方法包括:对用户的请求进行至少一次解码,获取请求数据;将服务器对请求的响应进行分词处理,获取响应中的多个token节点;根据请求数据和各token节点,检测请求是否存在XSS漏洞。本发明的XSS漏洞检测方案不受攻击payload的复杂混淆变种的影响,能够有效地减少误报和漏报,从而能够有效地提高XSS漏洞检测的效率和检测性能。

Description

XSS漏洞检测方法及装置、计算机设备及可读介质
【技术领域】
本发明涉及计算机应用技术领域,尤其涉及一种XSS漏洞检测方法及装置、计算机设备及可读介质。
【背景技术】
跨站脚本攻击(Cross-site scripting,XSS)属于OWASP TOP 10的一种非常常见的漏洞,针对该漏洞的测试行为非常普遍。
XSS攻击本质上是HTML代码片段或者HTML标签被注入到DOM树中,HTML代码得以执行或者DOM树结构可被改变,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、获取用户信息(浏览器、ip)、重定向到其它网站、XSS蠕虫等。现有的XSS漏洞检测通常采用如下两种方式:一种为模式匹配的方式,采用正则匹配的方式检测XSS;另一种为通过Headless浏览器执行javascript代码片段检测。
其中,现有的基于模式匹配的XSS漏洞检测方案,能够支持简单的反射型XSS攻击。其原理是尽力描述关键字符串形成各种组合,不能准确理解攻击payload含义,不能覆盖攻击payload的复杂混淆变种,存在误报和漏报。而现有的采用headless浏览器执行javascript代码片段检测的技术方案,主要针对页面中的关键事件、关键函数进行检测,而缺少对于内容的检测,从而存在不可解决的误报。因此,现有的XSS漏洞检测方案均存在检测性能较差的缺陷。
【发明内容】
本发明提供了一种XSS漏洞检测方法及装置、计算机设备及可读介质,用于提高XSS漏洞检测性能。
本发明提供一种XSS漏洞检测方法,所述方法包括:
对用户的请求进行至少一次解码,获取请求数据;
将服务器对所述请求的响应进行分词处理,获取所述响应中的多个token节点;
根据所述请求数据和各所述token节点,检测所述请求是否存在XSS漏洞。
本发明提供一种XSS漏洞检测装置,所述装置包括:
解码模块,用于对用户的请求进行至少一次解码,获取请求数据;
分词模块,用于将服务器对所述请求的响应进行分词处理,获取所述响应中的多个token节点;
检测模块,用于根据所述请求数据和各所述token节点,检测所述请求是否存在XSS漏洞。
本发明还提供一种计算机设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的XSS漏洞检测方法。
本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的XSS漏洞检测方法。
本发明的XSS漏洞检测方法及装置、计算机设备及可读介质,通过对用户的请求进行至少一次解码,获取请求数据;将服务器对请求的响应进行分词处理,获取响应中的多个token节点;根据请求数据和各token节点,检测请求是否存在XSS漏洞。本实施例的XSS漏洞检测方案不受攻击payload的复杂混淆变种的影响,能够有效地减少误报和漏报,从而能够有效地提高XSS漏洞检测的效率和检测性能。
【附图说明】
图1为本发明的XSS漏洞检测方法实施例的流程图。
图2为本发明的XSS漏洞检测装置实施例一的结构图。
图3为本发明的XSS漏洞检测装置实施例二的结构图。
图4为本发明的计算机设备实施例的结构图。
图5为本发明提供的一种计算机设备的示例图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图1为本发明的XSS漏洞检测方法实施例的流程图。如图1所示,本实施例的XSS漏洞检测方法,具体可以包括如下步骤:
100、对用户的请求进行至少一次解码,获取请求数据;
101、将服务器对请求的响应进行分词处理,获取响应中的多个token节点;
102、根据请求数据和各token节点,检测请求是否存在XSS漏洞。
本实施例的XSS漏洞检测方法的执行主体为一XSS漏洞检测装置,该漏洞检测装置可以对每一个用户请求进行漏洞检测。该XSS漏洞检测装置可以与服务器进行通信连接,以从服务器获取请求和请求的响应,以基于请求和对应的响应进行语义分析,检测请求是否存在XSS漏洞。
具体地,XSS攻击的目的是将恶意的代码植入到用户页面中,这些恶意代码包括html代码、脚本等。植入恶意代码的目的是盗取账号、控制敏感数据、盗取资料、网站挂马、控制受害机器等。
XSS攻击最终是在dom树中引入了危险的javaScript片段或插入了html节点,基于此,本实施例提出XSS漏洞检测的新思路:对包含攻击payload的请求和对应的响应同时进行分析,选取出响应中的token节点及属性,确定响应中的token节点和属性等是否是由请求中的攻击payload触发。若是,则确定该token节点是由请求中的攻击payload触发,则该请求为XSS攻击;否则若响应中的所有token节点均不是由请求中的攻击payload触发,则该请求不是XSS攻击,为正常请求。
具体地,首先攻击payload的数据携带在请求数据中,具体为请求数据中的一部分。为了获取请求数据,本实施例中需要对用户的请求进行一次解码。获取该请求数据。实际应用中,XSS攻击为了防止被检测到,还会对用户的请求进行两次编码,所以本实施例中,对于一次编码未还原出来的请求数据,可以认为攻击者为了防止攻击payload的数据被检测,对请求数据进行了两次编码,此时还可以再进行一次解码,即总共进行二次解码,以获取有效的请求数据。实际应用中,以此类推,也可以存在需要对用户的请求进行两次以上解码,以获取有效的请求数据,在此不再赘述。由此可知,本实施例中处理请求数据的目的是:解码请求中url和body中的经过url编码、unicode escape等编码后的请求数据。本实施例的响应数据中包含html实体字符,实际应用中有四种格式实体名称:十进制数字、十六进制小写数据、十六进制大写数据,分别对应于&entityname;<<&#X3C。需正确处理html实体数据并还原该字符,如果不是html实体数据,需要作为普通字符处理,进行回退。
按照上述方式,对用户的请求进行处理,获取到请求数据之后,接下来需要获取服务器对用户的请求的响应;并将服务器对所述请求的响应进行分词处理,获取响应中的多个token节点。例如,本实施例中是通过有限状态机的转换,逐字节地分析响应,实现按照token数据结构对响应进行分词处理,得到多个token节点。本实施例中逐字节地分析响应,实现按照token数据结构对响应进行分词处理的过程可以理解为语义分析切词的过程,最终切出响应中的多个token节点。
具体地,token数据结构中可以包含类型、名称、是否自闭和、属性列表、属性名称、属性值、属性名称范围、属性值范围。token的类型划分集成html中的类型,包含doctype、comment、startTag、character、endTag、endOfFile等六种。token数据结构完整描述了语义分析切词后生成的各token节点数据。
本实施例中,根据token的数据结构定义的token的有限状态包含:初始数据状态、token起始状态、token结束状态、token名称起始状态、token名称字符状态、属性名称起始状态、属性名称字符状态、属性值起始状态、属性值字符状态、属性值结束状态、字符数据状态等共计71中有限状态。通过有限状态机的转换,逐字节地分析响应,实现按照token数据结构对响应进行分词处理,得到多个token节点。例如一个token节点的开始,是一个datastate状态,token分析完成也是一个data state状态。具体可以为根据html中的分析逻辑逐字节完成状态的跳转,根据初始数据状态的轮回得出一个完整的token节点。
本实施例中逐字节地分析响应数据的目的是获取当前字符、获取下一个字符、计算消耗的字符个数、判断是否为特殊字符。特殊字符包含(下一行、双字节字符、&等)。
另外,由于响应数据中,包含不同的编码、字符进制类型、字符大小写、字符ascii、十六进制、大小写转换等。在逐字节地分析响应数据时,需要在字符处理过程中定义一些基础函数包含:字符ascii码判断、大写字符判断、大小写字符转换、十六进制字符转换、空白字符判断、十六进制数组判断等,以实现对响应数据的有效处理。
基于上述处理过程,对用户的请求进行有效处理,获取到请求数据,同时对响应有效处理,获取到多个token节点之后,接下来可以根据请求数据,检测多个token节点中是否存在XSS漏洞。由于若请求为XSS攻击,则请求数据中携带攻击payload,且在服务器的响应中的某些token节点是由攻击payload触发的。基于此,可以实现根据请求数据和各token节点,检测请求是否存在XSS漏洞。
进一步可选地,本实施例的步骤102“根据请求数据和各token节点,检测请求是否存在XSS漏洞”,具体可以包括如下步骤:
(a)根据请求数据和各token节点,验证各token节点是否为XSS漏洞的插入节点;
对于任意一个token节点,根据请求数据和该token节点,验证该token节点是否为XSS漏洞的插入节点的过程,其实就是将该token节点的内容与请求数据的内容进行比对,判断该token节点中是否有部分内容存在于请求数据中。即判断该token节点的内容与请求数据的内容是否存在相同的片段。若两者中存在一段相同的片段,该token节点中便有部分内容存在于请求数据中。则这段相同的片段就是攻击payload的数据,则说明响应中的该token节点就是由请求中的攻击payload触发的,该token节点就是XSS漏洞的插入点。
(b)判断多个token节点中是否存在XSS漏洞的插入节点,若多个token节点中存在XSS漏洞的插入节点,执行步骤(c);否则若多个token节点中不存在XSS漏洞的插入节点,执行步骤(d);
(c)确定请求存在XSS漏洞,结束;
(d)确定请求为正常请求,结束。
针对XSS攻击的目的,攻击者会选择满足需求的标签或属性来实现攻击。例如XSS攻击可以包括如下几种情形:
情形A、植入恶意javascript片段,修改原有的javascript逻辑或者插入javascript片段,相关攻击的属性可以存在如下几类:
1、修改javascript片段(对应character类型的token检测);
2、script标签中的src属性;
3、ript标签中的xlink:href属性;
4、值含有“javascript:”的属性(不论何种标签);
5、values属性,在包含多个属性值时。
情形B、植入恶意事件,在满足条件的情况下自动运行或者依靠相关操作运行,攻击的属性属性可以为:属性值满足onxxx的属性(不论何种标签)。
情形C、引入的外部恶意url,相关攻击的属性可以存在如下几类:
1、object标签的data属性
2、object标签的classid属性(与url相关,通常与java类有关);
3、param标签的name属性和value属性;
4、embed标签的src属性;
5、embed标签的code属性;
6、applet标签的code属性;
7、frame标签的src属性;
8、base标签的href属性;
9、form标签的action属性;
10、input标签的formaction属性;
11、button标签的formaction属性;
情形D、其他危险操作,如:
若攻击嵌入内容为MIME类型(例如嵌入包含xss的flash等)时,对应的攻击点可以为embed标签的type属性;
若攻击嵌入对象资源时,对应的攻击点可以为applet标签的object属性(类似于object标签);
若攻击修改响应头内容或者cookie内容时,对应的攻击点可以为meta标签的http_equiv属性。
针对XSS攻击的以上攻击属性,对应地,本实施例的步骤(a)“根据请求数据和各token节点,验证各token节点是否为XSS漏洞的插入节点”,对应地具体包括如下几种情形:
情形A、对于每个token节点,根据请求数据,验证对应的token节点中是否植入恶意javascript片段,若是,确定对应的token节点为XSS漏洞的插入节点,否则确定对应的token节点不是XSS漏洞的插入节点。
情形B、对于每个token节点,根据请求数据,验证对应的token节点中是否植入恶意事件,若是,确定对应的token节点为XSS漏洞的插入节点,否则确定对应的token节点不是XSS漏洞的插入节点。
情形C、对于每个token节点,根据请求数据,验证对应的token节点中是否引入外部恶意的url,若是,确定对应的token节点为XSS漏洞的插入节点,否则确定对应的token节点不是XSS漏洞的插入节点。
情形D、对于每个token节点,根据请求数据,验证对应的token节点中是否包含其他危险操作;若是,确定对应的token节点为XSS漏洞的插入节点,否则确定对应的token节点不是XSS漏洞的插入节点。
进一步地,对于情形A中的“根据请求数据,验证对应的token节点中是否植入恶意javascript片段”,具体可以包括如下任意一种:
(a1)若token节点的类型为character类型时,判断token节点中的javaScript片段中的部分片段是否存在于请求数据中;
具体地,将token节点中的javaScript片段和请求数据进行匹配比对,判断两者中是否存在共同的片段,若存在共同的片段,则认为token节点中的javaScript片段中的这部分共同片段存在于请求数据中。该部分共同的片段可以认为是攻击payload数据,由于请求中该攻击payload数据的存在,触发了响应中的该token节点。因此,该请求存在XSS漏洞,该token节点为XSS漏洞的插入点。
(b1)若token节点的类型为script标签时,判断src属性或者xlink:href属性的对应内容是否存在于请求数据中;
本实施例中,在判断各属性的对应内容中是否存在于请求数据中时,采用的“属性名=属性值”的方式进行片段匹配比对。即将token节点和请求数据中相同属性名的“属性名=属性值”片段进行匹配比对,判断token节点中的该片段是否存在于请求数据中,若存在,则确定该属性的对应内容存在于请求数据中,从而可以进一步确定该token节点为XSS漏洞的插入节点。否则若不一致,则确定该属性的对应内容未存在于请求数据中,从而可以进一步确定该token节点不是XSS漏洞的插入节点。
需要说明的是,由于服务器会对响应数据的token节点中特殊字符进行特殊处理,为了保证token节点中的属性值和请求数据中对应的属性值进行有效匹配,本实施例中,对于某些属性的属性值进行截断处理,例如,对于src属性的属性值,根据一些特殊特殊,例如“&”、“?”、“#”、“\”等进行截断,可以仅取特殊字符之前的片段,作为有效的属性值片段。而对于script属性的属性值,可以根据javascript的代码换行习惯进行截断处理,仅取截断后保留的片段,作为有效的属性值片段。同理,对于normal属性的属性值,可以在属性内容超出100字符后进行截断处理,仅取截断后保留的片段,作为有效的属性值片段。最后,再结合属性名形成“属性名=截断后的属性值”的匹配对比片段,然后判断请求数据中是否包括token节点中该匹配对比片段“属性名=截断后的属性值”,若包括,便说明该属性的对应内容存在于请求数据中。实际应用中,可以根据属性的不同,采用不同的截断处理策略,以提高匹配对比效率。或者某些属性的属性值,也可以不做截断处理,采用“属性名=全部属性值”进行片段匹配对比。
该步骤中的src属性和xlink:href属性都按照src属性截断处理策略,取token节点中的“属性名=截断处理后的属性值”片段,然后将该片段与请求数据进行匹配对比,判断该片段是否存在于请求数据中,若存在,则确定该属性的对应内容存在于请求数据中,从而可以进一步确定该token节点为XSS漏洞的插入节点。否则若不一致,则确定该属性的对应内容未存在于请求数据中,从而可以进一步确定该token节点不是XSS漏洞的插入节点。
(c1)对于任意属性值含有“javascript”的属性,判断属性值中的“javascript”片段中的部分片段是否存在于请求数据中;和
该步骤中,属性值中的“javascript”片段可以按照script属性的属性值进行截断处理。同理,然后取token节点和请求数据中的“属性名=截断处理后的属性值”,将该片段与请求数据进行匹配对比,按照上述实施例的方式确定该token节点是不是XSS漏洞的插入点。在此不再赘述。
(d1)对于values属性,在包含多个属性值时,判断values属性及属性值的对应内容是否存在于请求数据中。
该步骤中,values属性的各个属性值均单独分析,不做截断处理。values属性片段匹配对比时,从token节点中取“values=“和”=属性值”两个片段;当token节点中的两个片段都分别与请求数据进行匹配对比,若均存在于请求数据中时,此时该token节点为XSS漏洞的插入点,否则该token节点不是XSS漏洞的插入点。且因为values属性有多个属性值,只要有一个属性值对应的两个片段“values=“和”=属性值”存在于请求数据中,便可以确定该token节点为XSS漏洞的插入点。
进一步地,对于情形B中的“根据请求数据,验证对应的token节点中是否植入恶意事件”,具体可以包括:对于onxxx的属性,判断属性的对应内容是否存在于请求数据中。
本实施例中的onxxx的属性的属性值可以按script属性的属性值的截断处理方式进行截断处理。并基于截断后的属性值,生成与请求数据进行匹配对比的片段。进而按照上述实施例的方式确定该token节点是不是XSS漏洞的插入点。在此不再赘述。
进一步地,对于情形C中的“根据请求数据,验证对应的token节点中是否引入外部恶意的url”,具体可以包括如下任意一种:
(a2)若token节点的类型为object标签时,判断data属性或者classid属性的对应内容是否存在于请求数据中;
本实施例的classid属性与url相关,通常与java类有关。(b2)若token节点的类型为param标签时,判断name属性或者value属性的对应内容是否存在于请求数据中;
(c2)若token节点的类型为embed标签时,判断src属性或者code属性的对应内容是否存在于请求数据中;
(d2)若token节点的类型为applet标签时,判断code属性的对应内容是否存在于请求数据中;
(e2)若token节点的类型为frame标签时,判断src属性的对应内容是否存在于请求数据中;
(f2)若token节点的类型为base标签时,判断href属性的对应内容是否存在于请求数据中;
(g2)若token节点的类型为form标签时,判断action属性的对应内容是否存在于请求数据中;和
(h2)若token节点的类型为input或者button标签时,判断formaction属性的对应内容是否存在于请求数据中。
本实施例的上述步骤(a2)-(h2)中,data属性的属性值可以按src属性的属性值的截断处理方式进行截断处理。classid属性的属性值可以按normal属性的属性值的截断处理方式进行截断处理。name属性或者value属性的属性值可以按src属性的属性值的截断处理方式进行截断处理。code属性的属性值也可以按src属性的属性值的截断处理方式进行截断处理。formaction属性的属性值也可以按src属性的属性值的截断处理方式进行截断处理。href属性和action属性的属性值也可以按normal属性的属性值的截断处理方式进行截断处理。后续基于截断后的属性值,对应生成“属性名=截断后的属性值”的匹配对比片段,然后按照上述实施例的方式,验证该匹配对比片段是否存在于请求数据中,进而确定该token节点是不是XSS漏洞的插入点,详细可以参考上述实施例的记载,在此不再赘述。
进一步地,对于情形D中的“根据请求数据,验证对应的token节点中是否包含其他危险操作”,具体可以包括如下任意一种:
(a3)若token节点的类型为embed标签时,判断type属性的对应内容是否存在于请求数据中;
该步骤对应XSS攻击为嵌入内容MIME类型,例如嵌入包含xss的flash等的情况。
(b3)若token节点的类型为applet标签时,判断object属性的对应内容是否存在于请求数据中;和
该步骤对应XSS攻击为嵌入对象资源型。该object属性类似于object标签。
(c3)若token节点的类型为meta标签时,判断type属性的对应内容是否存在于请求数据中。
该步骤对应XSS攻击为修改响应头内容或者cookie内容的情况。
本实施例的步骤(a3)-(c3)中,embed标签的type属性、applet标签的object属性以及meta标签的type属性都可以按normal属性的属性值的截断处理方式进行截断处理。后续基于截断后的属性值,对应生成“属性名=截断后的属性值”的匹配对比片段,然后按照上述实施例的方式,验证该匹配对比片段是否存在于请求数据中,进而确定该token节点是不是XSS漏洞的插入点,详细可以参考上述实施例的记载,在此不再赘述。
按照上述实施例的方式,可以对响应中的任一token节点进行验证,确定每一个token节点是否为XSS漏洞的插入节点。然后,针对所有token节点的检测结果,判断多个token节点中是否存在XSS漏洞的插入节点,只要多个token节点中存在一个XSS漏洞的插入节点,则可以确定该用户的请求存在XSS攻击;只有当响应的多个token节点均不是XSS漏洞的插入节点,才可以确定该用户的请求不存在XSS攻击。
本实施例的所有处理过程均可以记录在日志中,例如记录的日志内容可以包括:url解码过程、html实体分析过程、回退记录、有限状态机跳转、token结构信息、词法匹配过程等。
本实施例的XSS漏洞检测方法,在确定用户的该请求存在XSS漏洞之后,本实施例的XSS漏洞检测装置需向其他程序或产品输出检测结果。具体地,检测结果以protobuf的格式输出,以保证不同语言之间的通用。进一步地,由于上述实施例中已经验证了每个token节点中是否为XSS漏洞的插入节点,若某个token节点为XSS漏洞的插入节点时,还可以在检测结果中输出XSS插入节点的信息,如XSS插入节点的信息可以为XSS插入节点的名称等其他标识信息。
本实施例的XSS漏洞检测方法,通过对用户的请求进行至少一次解码,获取请求数据;将服务器对请求的响应进行分词处理,获取响应中的多个token节点;根据请求数据和各token节点,检测请求是否存在XSS漏洞。本实施例的技术方案,通过根据请求数据和各token节点,检测请求是否存在XSS漏洞,实现基于内容对XSS漏洞的监测,能够分析攻击payload和响应中的行为片段,能更准确的检测反射型的XSS;另外,对于部分存储型XSS攻击,本实施例的技术方案亦可以检测。另外,本实施例的XSS漏洞检测方案不受攻击payload的复杂混淆变种的影响,能够有效地减少误报和漏报,从而能够有效地提高XSS漏洞检测的效率和检测性能。另外,与现有的headless浏览器执行javascript代码片段检测相比,能够基于内容实现检测,从而避免XSS漏洞检测的误报,提高XSS漏洞检测的效率和检测性能。
随着XSS的攻击payload的复杂度增加,现有的普遍的检测手段已不能满足XSS漏洞的检测、从而提出了本发明实施例的上述XSS漏洞检测方案。经过试验验证,本实施例的XSS漏洞检测方案的检出率在93%,与已有的技术方案相比,检出率和准确度提高了一倍,能够有效地提高XSS漏洞检测性能。同时,本实施例的XSS漏洞检测方案可以作为基础模块输出检测结果,可以很方便的为其他产品所应用,提高相关产品的商业价值,具有非常强的实用性。
图2为本发明的XSS漏洞检测装置实施例一的结构图。如图2所示,本实施例的XSS漏洞检测装置,具体可以包括:
解码模块10对用户的请求进行至少一次解码,获取请求数据;
分词模块11将服务器对请求的响应进行分词处理,获取响应中的多个token节点;
检测模块12根据解码模块10解码得到的请求数据和分词模块11分词处理得到的各token节点,检测请求是否存在XSS漏洞。
本实施例的XSS漏洞检测装置,通过采用上述模块实现XSS漏洞检测的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图3为本发明的XSS漏洞检测装置实施例二的结构图。如图3所示,本实施例的XSS漏洞检测装置,在上述图2所示实施例的技术方案的基础上,进一步更加详细地介绍本发明的技术方案。
本实施例的XSS漏洞检测装置中,分词模块11具体用于通过有限状态机的转换,逐字节地分析响应,实现按照token数据结构对响应进行分词处理,得到多个token节点。
如图3所示,本实施例的XSS漏洞检测装置中,检测模块12具体包括:
验证单元121用于根据解码模块10解码得到的请求数据和分词模块11分词处理得到的各token节点,验证各token节点是否为XSS漏洞的插入节点;
确定单元122用于基于验证单元121的验证结果,判断多个token节点中是否存在XSS漏洞的插入节点;若存在,确定请求存在XSS漏洞;否则若多个token节点中不存在XSS漏洞的插入节点,确定请求为正常请求。
进一步可选地,验证单元121具体用于:对于每个token节点,根据请求数据,验证对应的token节点中是否植入恶意javascript片段,若是,确定对应的token节点为XSS漏洞的插入节点,否则确定对应的token节点不是XSS漏洞的插入节点。
此时对应地,验证单元121具体用于执行如下任意一种操作:
若token节点的类型为character类型时,判断token节点中的javaScript片段中的部分片段是否存在于请求数据中;
若token节点的类型为script标签时,判断src属性或者xlink:href属性的对应内容是否存在于请求数据中;
对于任意属性值含有“javascript”的属性,判断属性值中的“javascript”片段中的部分片段是否存在于请求数据中;和
对于values属性,在包含多个属性值时,判断所述values属性及所述属性值的对应内容是否存在于请求数据中。
进一步可选地,验证单元121具体用于:对于每个token节点,根据请求数据,验证对应的token节点中是否植入恶意事件,若是,确定对应的token节点为XSS漏洞的插入节点,否则确定对应的token节点不是XSS漏洞的插入节点。
此时对应地,验证单元121具体用于对于onxxx的属性,判断所述属性的对应内容是否存在于请求数据中。
进一步可选地,验证单元121具体用于:对于每个token节点,根据请求数据,验证对应的token节点中是否引入外部恶意的url;若是,确定对应的token节点为XSS漏洞的插入节点,否则确定对应的token节点不是XSS漏洞的插入节点。
此时对应地,验证单元121具体用于执行如下任意一种操作:
若token节点的类型为object标签时,判断data属性或者classid属性的对应内容是否存在于请求数据中;
若token节点的类型为param标签时,判断name属性或者value属性的对应内容是否存在于请求数据中;
若token节点的类型为embed标签时,判断src属性或者code属性的对应内容是否存在于请求数据中;
若token节点的类型为applet标签时,判断code属性的对应内容是否存在于请求数据中;
若token节点的类型为frame标签时,判断src属性的对应内容是否存在于请求数据中;
若token节点的类型为base标签时,判断href属性的对应内容是否存在于请求数据中;
若token节点的类型为form标签时,判断action属性的对应内容是否存在于请求数据中;和
若token节点的类型为input或者button标签时,判断formaction属性的对应内容是否存在于请求数据中。
进一步可选地,验证单元121具体用于:对于每个token节点,根据请求数据,验证对应的token节点中是否包含其他危险操作,若是,确定对应的token节点为XSS漏洞的插入节点,否则确定对应的token节点不是XSS漏洞的插入节点。
此时对应地,验证单元121具体用于执行如下任意一种操作:
若token节点的类型为embed标签时,判断type属性的对应内容是否存在于请求数据中;
若token节点的类型为applet标签时,判断object属性的对应内容是否存在于请求数据中;和
若token节点的类型为meta标签时,判断type属性的对应内容是否存在于请求数据中。
本实施例的XSS漏洞检测装置,通过采用上述模块实现XSS漏洞检测的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图4为本发明的计算机设备实施例的结构图。如图4所示,本实施例的计算机设备,包括:一个或多个处理器30,以及存储器40,存储器40用于存储一个或多个程序,当存储器40中存储的一个或多个程序被一个或多个处理器30执行,使得一个或多个处理器30实现如上图1所示实施例的XSS漏洞检测方法。图4所示实施例中以包括多个处理器30为例。
例如,图5为本发明提供的一种计算机设备的示例图。图5示出了适于用来实现本发明实施方式的示例性计算机设备12a的框图。图5显示的计算机设备12a仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机设备12a以通用计算设备的形式表现。计算机设备12a的组件可以包括但不限于:一个或者多个处理器16a,系统存储器28a,连接不同系统组件(包括系统存储器28a和处理器16a)的总线18a。
总线18a表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备12a典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12a访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28a可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30a和/或高速缓存存储器32a。计算机设备12a可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34a可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18a相连。系统存储器28a可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明上述图1-图3各实施例的功能。
具有一组(至少一个)程序模块42a的程序/实用工具40a,可以存储在例如系统存储器28a中,这样的程序模块42a包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42a通常执行本发明所描述的上述图1-图3各实施例中的功能和/或方法。
计算机设备12a也可以与一个或多个外部设备14a(例如键盘、指向设备、显示器24a等)通信,还可与一个或者多个使得用户能与该计算机设备12a交互的设备通信,和/或与使得该计算机设备12a能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22a进行。并且,计算机设备12a还可以通过网络适配器20a与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20a通过总线18a与计算机设备12a的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12a使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器16a通过运行存储在系统存储器28a中的程序,从而执行各种功能应用以及数据处理,例如实现上述实施例所示的XSS漏洞检测方法。
本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所示的XSS漏洞检测方法。
本实施例的计算机可读介质可以包括上述图5所示实施例中的系统存储器28a中的RAM30a、和/或高速缓存存储器32a、和/或存储系统34a。
随着科技的发展,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载,或者采用其他方式获取。因此,本实施例中的计算机可读介质不仅可以包括有形的介质,还可以包括无形的介质。
本实施例的计算机可读介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (22)

1.一种XSS漏洞检测方法,其特征在于,所述方法包括:
对用户的请求进行至少一次解码,获取请求数据;
将服务器对所述请求的响应进行分词处理,获取所述响应中的多个token节点;
根据所述请求数据和各所述token节点,检测所述请求是否存在XSS漏洞,其中,若所述请求数据和所述token节点存在相同的片段,确定所述token节点存在XSS漏洞;
将服务器对所述请求的响应进行分词处理,获取所述响应中的多个token节点,具体包括:
通过有限状态机的状态转换,逐字节地分析所述响应,实现按照token数据结构对所述响应进行分词处理,得到多个所述token节点,所述有限状态机的状态包括所述token数据结构中的状态。
2.根据权利要求1所述的方法,其特征在于,根据所述请求数据和各所述token节点,检测所述请求是否存在XSS漏洞,具体包括:
根据所述请求数据和各所述token节点,验证各所述token节点是否为XSS漏洞的插入节点;
判断所述多个token节点中是否存在XSS漏洞的插入节点,若存在,确定所述请求存在XSS漏洞;否则若不存在,确定所述请求为正常请求。
3.根据权利要求2所述的方法,其特征在于,根据所述请求数据和各所述token节点,验证各所述token节点是否为XSS漏洞的插入节点,具体包括:
对于每个所述token节点,根据所述请求数据,验证对应的所述token节点中是否植入恶意javascript片段,若是,确定对应的所述token节点为XSS漏洞的插入节点,否则确定对应的所述token节点不是XSS漏洞的插入节点。
4.根据权利要求3所述的方法,其特征在于,根据所述请求数据,验证对应的所述token节点中是否植入恶意javascript片段,具体包括如下任意一种:
若所述token节点的类型为character类型时,判断所述token节点中的javaScript片段中的部分片段是否存在于所述请求数据中;
若所述token节点的类型为script标签时,判断src属性或者xlink:href属性的对应内容是否存在于所述请求数据中;
对于任意属性值含有“javascript”的属性,判断所述属性值中的“javascript”片段中的部分片段是否存在于所述请求数据中;和
对于values属性,在包含多个属性值时,判断所述values属性及所述属性值的对应内容是否存在于所述请求数据中。
5.根据权利要求2所述的方法,其特征在于,根据所述请求数据和各所述token节点,验证各所述token节点是否为XSS漏洞的插入节点,具体包括:
对于每个所述token节点,根据所述请求数据,验证对应的所述token节点中是否植入恶意事件,若是,确定对应的所述token节点为XSS漏洞的插入节点,否则确定对应的所述token节点不是XSS漏洞的插入节点。
6.根据权利要求5所述的方法,其特征在于,根据所述请求数据,验证对应的所述token节点中是否植入恶意事件,具体包括:
对于onxxx的属性,判断所述属性的对应内容是否存在于所述请求数据中。
7.根据权利要求2所述的方法,其特征在于,根据所述请求数据和各所述token节点,验证各所述token节点是否为XSS漏洞的插入节点,具体包括:
对于每个所述token节点,根据所述请求数据,验证对应的所述token节点中是否引入外部恶意的url;若是,确定对应的所述token节点为XSS漏洞的插入节点,否则确定对应的所述token节点不是XSS漏洞的插入节点。
8.根据权利要求7所述的方法,其特征在于,根据所述请求数据,验证对应的所述token节点中是否引入外部恶意的url,具体包括如下任意一种:
若所述token节点的类型为object标签时,判断data属性或者classid属性的对应内容是否存在于所述请求数据中;
若所述token节点的类型为param标签时,判断name属性或者value属性的对应内容是否存在于所述请求数据中;
若所述token节点的类型为embed标签时,判断src属性或者code属性的对应内容是否存在于所述请求数据中;
若所述token节点的类型为applet标签时,判断code属性的对应内容是否存在于所述请求数据中;
若所述token节点的类型为frame标签时,判断src属性的对应内容是否存在于所述请求数据中;
若所述token节点的类型为base标签时,判断href属性的对应内容是否存在于所述请求数据中;
若所述token节点的类型为form标签时,判断action属性的对应内容是否存在于所述请求数据中;和
若所述token节点的类型为input或者button标签时,判断formaction属性的对应内容是否存在于所述请求数据中。
9.根据权利要求2所述的方法,其特征在于,根据所述请求数据和各所述token节点,验证各所述token节点是否为XSS漏洞的插入节点,具体存在于:
对于每个所述token节点,根据所述请求数据,验证对应的所述token节点中是否包含其他危险操作,若是,确定对应的所述token节点为XSS漏洞的插入节点,否则确定对应的所述token节点不是XSS漏洞的插入节点。
10.根据权利要求9所述的方法,其特征在于,根据所述请求数据,验证对应的所述token节点中是否包含其他危险操作,具体包括如下任意一种:
若所述token节点的类型为embed标签时,判断type属性的对应内容是否存在于所述请求数据中;
若所述token节点的类型为applet标签时,判断object属性的对应内容是否存在于所述请求数据中;和
若所述token节点的类型为meta标签时,判断type属性的对应内容是否存在于所述请求数据中。
11.一种XSS漏洞检测装置,其特征在于,所述装置包括:
解码模块,用于对用户的请求进行至少一次解码,获取请求数据;
分词模块,用于将服务器对所述请求的响应进行分词处理,获取所述响应中的多个token节点;
检测模块,用于根据所述请求数据和各所述token节点,检测所述请求是否存在XSS漏洞,其中,若所述请求数据和所述token节点存在相同的片段,确定所述token节点存在XSS漏洞;
所述分词模块,具体用于通过有限状态机的状态转换,逐字节地分析所述响应,实现按照token数据结构对所述响应进行分词处理,得到多个所述token节点,所述有限状态机的状态包括所述token数据结构中的状态。
12.根据权利要求11所述的装置,其特征在于,所述检测模块,具体包括:
验证单元,用于根据所述请求数据和各所述token节点,验证各所述token节点是否为XSS漏洞的插入节点;
确定单元,用于基于所述验证单元的验证结果,判断所述多个token节点中是否存在XSS漏洞的插入节点;若存在,确定所述请求存在XSS漏洞;否则若不存在,确定所述请求为正常请求。
13.根据权利要求12所述的装置,其特征在于,所述验证单元,具体用于:
对于每个所述token节点,根据所述请求数据,验证对应的所述token节点中是否植入恶意javascript片段,若是,确定对应的所述token节点为XSS漏洞的插入节点,否则确定对应的所述token节点不是XSS漏洞的插入节点。
14.根据权利要求13所述的装置,其特征在于,所述验证单元,具体用于执行如下任意一种操作:
若所述token节点的类型为character类型时,判断所述token节点中的javaScript片段中是否存在于所述请求数据中;
若所述token节点的类型为script标签时,判断src属性或者xlink:href属性中是否存在于所述请求数据中;
对于任意属性值含有“javascript”的属性,判断所述属性值中的“javascript”片段中是否存在于所述请求数据中;和
对于values属性,在包含多个属性值时,判断各所述属性值中是否存在于所述请求数据中。
15.根据权利要求12所述的装置,其特征在于,所述验证单元,具体用于:
对于每个所述token节点,根据所述请求数据,验证对应的所述token节点中是否植入恶意事件,若是,确定对应的所述token节点为XSS漏洞的插入节点,否则确定对应的所述token节点不是XSS漏洞的插入节点。
16.根据权利要求15所述的装置,其特征在于,所述验证单元,具体用于对于onxxx的属性,判断对应的属性值中是否存在于所述请求数据中。
17.根据权利要求16所述的装置,其特征在于,所述验证单元,具体用于:
对于每个所述token节点,根据所述请求数据,验证对应的所述token节点中是否引入外部恶意的url;若是,确定对应的所述token节点为XSS漏洞的插入节点,否则确定对应的所述token节点不是XSS漏洞的插入节点。
18.根据权利要求17所述的装置,其特征在于,所述验证单元,具体用于执行如下任意一种操作:
若所述token节点的类型为object标签时,判断data属性或者classid属性中是否存在于所述请求数据中;
若所述token节点的类型为param标签时,判断name属性或者value属性中是否存在于所述请求数据中;
若所述token节点的类型为embed标签时,判断src属性或者code属性中是否存在于所述请求数据中;
若所述token节点的类型为applet标签时,判断code属性中是否存在于所述请求数据中;
若所述token节点的类型为frame标签时,判断src属性中是否存在于所述请求数据中;
若所述token节点的类型为base标签时,判断href属性中是否存在于所述请求数据中;
若所述token节点的类型为form标签时,判断action属性中是否存在于所述请求数据中;和
若所述token节点的类型为input或者button标签时,判断formaction属性中是否存在于所述请求数据中。
19.根据权利要求12所述的装置,其特征在于,所述验证单元,具体用于:
对于每个所述token节点,根据所述请求数据,验证对应的所述token节点中是否包含其他危险操作,若是,确定对应的所述token节点为XSS漏洞的插入节点,否则确定对应的所述token节点不是XSS漏洞的插入节点。
20.根据权利要求19所述的装置,其特征在于,所述验证单元,具体用于执行如下任意一种操作:
若所述token节点的类型为embed标签时,判断type属性中是否存在于所述请求数据中;
若所述token节点的类型为applet标签时,判断object属性中是否存在于所述请求数据中;和
若所述token节点的类型为meta标签时,判断type属性中是否存在于所述请求数据中。
21.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一所述的方法。
22.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-10中任一所述的方法。
CN201810816579.7A 2018-07-24 2018-07-24 Xss漏洞检测方法及装置、计算机设备及可读介质 Active CN109218284B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810816579.7A CN109218284B (zh) 2018-07-24 2018-07-24 Xss漏洞检测方法及装置、计算机设备及可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810816579.7A CN109218284B (zh) 2018-07-24 2018-07-24 Xss漏洞检测方法及装置、计算机设备及可读介质

Publications (2)

Publication Number Publication Date
CN109218284A CN109218284A (zh) 2019-01-15
CN109218284B true CN109218284B (zh) 2021-11-23

Family

ID=64990204

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810816579.7A Active CN109218284B (zh) 2018-07-24 2018-07-24 Xss漏洞检测方法及装置、计算机设备及可读介质

Country Status (1)

Country Link
CN (1) CN109218284B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114257389A (zh) * 2020-09-22 2022-03-29 北京安全共识科技有限公司 一种基于语法分析的反射型xss检测方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103500118A (zh) * 2013-10-24 2014-01-08 北京奇虎科技有限公司 一种级联样式表优化方法和装置
CN105426711A (zh) * 2015-11-18 2016-03-23 北京理工大学 一种计算机软件源代码相似度检测方法
CN105471821A (zh) * 2014-08-29 2016-04-06 腾讯科技(深圳)有限公司 一种基于浏览器的信息处理方法及装置
CN106790007A (zh) * 2016-12-13 2017-05-31 武汉虹旭信息技术有限责任公司 基于XSS和CSRF的Web攻击防御系统及其方法
CN106951784A (zh) * 2017-02-23 2017-07-14 南京航空航天大学 一种面向XSS漏洞检测的Web应用逆向分析方法
CN107153564A (zh) * 2017-06-22 2017-09-12 拜椰特(上海)软件技术有限公司 一种词法解析工具

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751826B2 (en) * 2009-04-01 2014-06-10 Salesforce.Com, Inc. Enhanced system security
US9098722B2 (en) * 2013-03-15 2015-08-04 Prevoty, Inc. Systems and methods for parsing user-generated content to prevent attacks
WO2015142697A1 (en) * 2014-03-15 2015-09-24 Belva Kenneth F Methods for determining cross-site scripting and related vulnerabilities in applications
US10129285B2 (en) * 2016-04-27 2018-11-13 Sap Se End-to-end taint tracking for detection and mitigation of injection vulnerabilities in web applications
CN107659555B (zh) * 2016-08-30 2020-08-11 北京长亭未来科技有限公司 网络攻击的检测方法及装置、终端设备和计算机存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103500118A (zh) * 2013-10-24 2014-01-08 北京奇虎科技有限公司 一种级联样式表优化方法和装置
CN105471821A (zh) * 2014-08-29 2016-04-06 腾讯科技(深圳)有限公司 一种基于浏览器的信息处理方法及装置
CN105426711A (zh) * 2015-11-18 2016-03-23 北京理工大学 一种计算机软件源代码相似度检测方法
CN106790007A (zh) * 2016-12-13 2017-05-31 武汉虹旭信息技术有限责任公司 基于XSS和CSRF的Web攻击防御系统及其方法
CN106951784A (zh) * 2017-02-23 2017-07-14 南京航空航天大学 一种面向XSS漏洞检测的Web应用逆向分析方法
CN107153564A (zh) * 2017-06-22 2017-09-12 拜椰特(上海)软件技术有限公司 一种词法解析工具

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"跨站脚本攻击及防范技术研究";邓袁,等;《电脑知识与技术》;20120627;第8卷(第6期);全文 *

Also Published As

Publication number Publication date
CN109218284A (zh) 2019-01-15

Similar Documents

Publication Publication Date Title
CN109922052B (zh) 一种结合多重特征的恶意url检测方法
CN101964025B (zh) Xss检测方法和设备
US9032516B2 (en) System and method for detecting malicious script
KR101757697B1 (ko) 실행 가능 텍스트를 갖는 문서의 표시 장치 및 방법
US8646088B2 (en) Runtime enforcement of security checks
KR101874373B1 (ko) 난독화 스크립트에 대한 악성 스크립트 탐지 방법 및 그 장치
CN109347882B (zh) 网页木马监测方法、装置、设备及存储介质
JP2004164617A (ja) クロスサイトスクリプティング脆弱性の自動検出
CN101751530B (zh) 检测漏洞攻击行为的方法及设备
AU2018298640B2 (en) Determination device, determination method, and determination program
CN105488400A (zh) 一种恶意网页综合检测方法及系统
CN111556036A (zh) 一种网络钓鱼攻击的检测方法、装置及设备
CN115766184A (zh) 一种网页数据处理方法、装置、电子设备及存储介质
CN113067792A (zh) 一种xss攻击识别方法、装置、设备及介质
US20070130620A1 (en) Method, computer arrangement, computer program and computer program product for checking for the presence of control statements in a data value
CN114398673A (zh) 应用程序的合规检测方法、装置、存储介质与电子设备
CN109218284B (zh) Xss漏洞检测方法及装置、计算机设备及可读介质
CN107301345B (zh) 一种阻止xss攻击的方法、系统及装置
CN111125704B (zh) 一种网页挂马识别方法及系统
CN107315677B (zh) 判断应用程序发生异常的方法及装置
CN110162729B (zh) 建立浏览器指纹以及识别浏览器类型的方法、装置
CN104239514A (zh) 网页渲染方法、装置及移动终端
CN116361793A (zh) 代码检测方法、装置、电子设备及存储介质
CN115774873A (zh) 一种跨站脚本攻击的检测方法、装置、设备及存储介质
CN114741692A (zh) 一种后门流量识别的方法、系统、设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant