CN109672658A - Json劫持漏洞的检测方法、装置、设备及存储介质 - Google Patents
Json劫持漏洞的检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN109672658A CN109672658A CN201811112893.3A CN201811112893A CN109672658A CN 109672658 A CN109672658 A CN 109672658A CN 201811112893 A CN201811112893 A CN 201811112893A CN 109672658 A CN109672658 A CN 109672658A
- Authority
- CN
- China
- Prior art keywords
- response results
- json
- loophole
- website
- tested
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
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)
- Information Transfer Between Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种JSON劫持漏洞的检测方法、装置、设备及存储介质,该方法包括步骤:当获取到待测试网站的统一资源定位符URL和网站登录态后,通过所述网站登录态在所述待测试网站中执行所述URL,得到第一响应结果;若检测到所述第一响应结果可被跨域利用,则不通过所述网站登录态在所述待测试网站中执行所述URL,得到第二响应结果;若所述第二响应结果与所述第一响应结果不同,则确定所述待测试网站存在JS对象简谱JSON劫持漏洞。本发明实现了采用动态模拟执行URL的方法来判断待测试网站是否存在JSON劫持漏洞,提高了检测网站是否存在JSON劫持漏洞的准确性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种JSON劫持漏洞的检测方法、装置、设备及存储介质。
背景技术
JSON(JavaScript Object Notation,JavaScript对象简谱)是一种轻量级的数据交换格式,而劫持就是对数据进行窃取(或者应该称为打劫或、拦截)。恶意攻击者通过某些特定的手段,将本应该返回给用户的JSON数据进行拦截,转而将数据发送回给恶意攻击者,这就是JSON劫持的大概含义。一般来说进行劫持的JSON数据都是包含敏感信息或者有价值的数据。目前用基于静态的字符分析方法来判断响应结果是否可被跨域利用,进而检测网站是否存在JSON劫持漏洞,此种方法检测JSON劫持的准确度低。
发明内容
本发明的主要目的在于提供一种JSON劫持漏洞的检测方法、装置、设备及存储介质,旨在解决现有的检测JSON劫持漏洞的准确度低下的技术问题。
为实现上述目的,本发明提供一种JSON劫持漏洞的检测方法,所述JSON劫持漏洞的检测方法包括步骤:
当获取到待测试网站的统一资源定位符URL和网站登录态后,通过所述网站登录态在所述待测试网站中执行所述URL,得到第一响应结果;
若检测到所述第一响应结果可被跨域利用,则不通过所述网站登录态在所述待测试网站中执行所述URL,得到第二响应结果;
若所述第二响应结果与所述第一响应结果不同,则确定所述待测试网站存在JS对象简谱JSON劫持漏洞。
优选地,所述若检测到所述第一响应结果可被跨域利用,则不通过所述网站登录态在所述待测试网站中执行所述URL,得到第二响应结果的步骤之后,还包括:
若所述第二响应结果与所述第一响应结果相同,则检测所述第一响应结果中是否存在敏感信息;
若检测到所述第一响应结果中存在所述敏感信息,则确定所述待测试网站存在所述JSON劫持漏洞;
若检测到所述第一响应结果中未存在所述敏感信息,则确定所述待测试网站未存在所述JSON劫持漏洞。
优选地,所述若所述第二响应结果与所述第一响应结果相同,则检测所述第一响应结果中是否存在敏感信息的步骤包括:
若所述第二响应结果与所述第一响应结果相同,则获取预设的敏感信息对应的正则表达式,并将所述第一响应结果与所述正则表达式进行正则匹配;
若所述第一响应结果与所述正则表达式正则匹配成功,则确定所述第一响应结果中存在敏感信息;
若所述第一响应结果与所述正则表达式正则匹配失败,则确定所述第一响应结果中未存在敏感信息。
优选地,所述当获取到待测试网站的URL和网站登录态后,通过所述网站登录态在所述待测试网站中执行所述URL,得到第一响应结果的步骤之后,还包括:
检测所述第一响应结果是否可被跨域利用;
若检测到所述第一响应结果不可被跨域利用,则确定所述待测试网站未存在所述JSON劫持漏洞。
优选地,所述检测所述第一响应结果是否可被跨域利用的步骤包括:
检测所述第一响应结果是否是超级文本标记语言HTML文档;
若检测到所述第一响应结果是所述HTML文档,则确定所述第一响应结果不可被跨域利用;
若检测所述第一响应结果不是所述HTML文档,则通过Javascript虚拟机模拟执行所述第一响应结果,得到对应的执行结果;
当根据所述执行结果确定所述第一响应结果执行成功后,确定所述第一响应结果可被跨域利用;
当根据所述执行结果确定所述第一响应结果执行失败后,检测所述第一响应结果是否是JSONP格式;
若所述第一响应结果的格式是JSONP格式,则确定所述第一响应结果可被跨域利用;
若所述第一响应结果的格式不是JSONP格式,则确定所述第一响应结果不可被跨域利用。
优选地,所述检测所述第一响应结果是否是HTML文档的步骤包括:
检测所述第一响应结果中是否携带HTML标签;
若检测到所述第一响应结果中携带所述HTML标签,则确定所述第一响应结果是HTML文档;
若检测所述第一响应结果中未携带所述HTML标签,则确定所述第一响应结果不是HTML文档。
优选地,所述当根据所述执行结果确定所述第一响应结果执行失败后,检测所述第一响应结果是否是JSONP格式的步骤包括:
当根据所述执行结果确定所述第一响应结果执行失败后,确定所述第一响应结果的格式,并判断所述第一响应结果的格式与预设的JSONP格式是否一致;
若所述第一响应结果的格式与所述JSONP格式一致,则确定所述第一响应结果的格式是JSONP格式;
若所述第一响应结果的格式与所述JSONP格式不一致,则确定所述第一响应结果的格式不是JSONP格式。
此外,为实现上述目的,本发明还提供一种JSON劫持漏洞的检测装置,所述JSON劫持漏洞的检测装置包括:
执行模块,用于当获取到待测试网站的统一资源定位符URL和网站登录态后,通过所述网站登录态在所述待测试网站中执行所述URL,得到第一响应结果;若检测到所述第一响应结果可被跨域利用,则不通过所述网站登录态在所述待测试网站中执行所述URL,得到第二响应结果;
确定模块,用于若所述第二响应结果与所述第一响应结果不同,则确定所述待测试网站存在JS对象简谱JSON劫持漏洞。
此外,为实现上述目的,本发明还提供一种JSON劫持漏洞的检测设备,所述JSON劫持漏洞的检测设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的JSON劫持漏洞的检测程序,所述JSON劫持漏洞的检测程序被所述处理器执行时实现如上所述的JSON劫持漏洞的检测方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有JSON劫持漏洞的检测程序,所述JSON劫持漏洞的检测程序被处理器执行时实现如上所述的JSON劫持漏洞的检测方法的步骤。
本发明首先通过网站登录态在待测试网站中执行URL,得到对应的第一响应结果,在确定第一响应结果可被跨域利用后,不通过网站登录态在待测试网站中执行URL,得到对应的第二响应结果,若确定第二响应结果与第一响应结果不同,则确定待测试网站存在JSON劫持漏洞。实现了采用动态模拟执行URL的方法来判断待测试网站是否存在JSON劫持漏洞,提高了检测网站是否存在JSON劫持漏洞的准确性。
附图说明
图1是本发明JSON劫持漏洞的检测方法第一实施例的流程示意图;
图2是本发明JSON劫持漏洞的检测方法第二实施例的流程示意图;
图3是本发明JSON劫持漏洞的检测方法第三实施例的流程示意图;
图4为本发明JSON劫持漏洞的检测装置较佳实施例的功能示意图模块图;
图5是本发明实施例方案涉及的硬件运行环境的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种JSON劫持漏洞的检测方法,参照图1,图1为本发明JSON劫持漏洞的检测方法第一实施例的流程示意图。
本发明实施例提供了JSON劫持漏洞的检测方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
JSON劫持漏洞的检测方法应用于服务器或者终端中,终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)等移动终端,以及诸如数字TV、台式计算机等固定终端。在JSON劫持漏洞的检测方法的各个实施例中,为了便于描述,省略执行主体进行阐述各个实施例。JSON劫持漏洞的检测方法包括:
步骤S10,当获取到待测试网站的统一资源定位符URL和网站登录态后,通过所述网站登录态在所述待测试网站中执行所述URL,得到第一响应结果。
当获取到待测试网站的URL和网站登录态后,通过网站登录态在待测试网站中执行URL(Uniform Resource Location,统一资源定位符),得到执行URL的响应结果,记为第一响应结果。可以理解的是,通过网站登录态在待测试网站中执行URL,即携带网站登录态在待测试网站中执行URL。URL是待测试网站中某个资源的地址。网站登录态可由用户根据需要在待测试网站中输入,或者将网站登录态预先存储在存储器中,当需要时,直接从存储器中提取网站登录态即可。需要说明的是,网页浏览器都遵循同源策略的安全机制,若某个网页浏览器允许跨域利用,则该网页浏览器应该允许跨域利用Javascript代码;或者提取出了JSONP的方案。响应结果必须能被其他域名的URL跨域利用,才可能形成JSON劫持漏洞攻击。
在本实施例中,待测试网站为WEB(World Wide Web),即全球广域网,也称为万维网,通俗称呼为网站;它是一种基于超文本和HTTP(Hyper Text Transfer Protocol,超文本传输协议)的、全球性的、动态交互的、跨平台的分布式图形信息系统。URL是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。网站登录态是用于网站中识别当前登录用户身份的标识数据;网站登录态能够证明网站用户的唯一性和合法性,网站登录态通指的是:Cookie,Session Id和Token等等。Cookie是指某些网站为了辨别用户身份、进行Session跟踪而储存在用户本地终端上的数据(通常经过加密);Session Id通过在服务器端记录信息确定用户身份。Token是服务端生成的一串字符串,以作为客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
步骤S20,若检测到所述第一响应结果可被跨域利用,则不通过所述网站登录态在所述待测试网站中执行所述URL,得到第二响应结果。
在得到第一响应结果后,若检测到第一响应结果可被跨域利用,则不通过网站登录态在待测试网站中执行URL,即不携带网站登录态在待测试网站中执行URL,得到执行URL的响应结果,记为第二响应结果。需要说明的是,浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域。第一响应结果可被跨域利用,即第一响应结果可被跨域执行,此时可通过该响应结果获取另一个页面的数据。
步骤S30,若所述第二响应结果与所述第一响应结果不同,则确定所述待测试网站存在JS对象简谱JSON劫持漏洞。
当得到第二响应结果后,判断第二响应结果是否与第一响应结果相同。若第二响应结果与第一响应结果不同,则确定待测试网站存在JSON劫持漏洞。JSON劫持漏洞也称为JSON Hijacking漏洞。待测试网站的CGI(Common Gateway Interface,公共网关接口)以JSON形式输出数据。当待测试网网站存在JSON劫持漏洞时,恶意攻击者控制的第三方站点以CSRF(Cross-site request forgery,跨站请求伪造)手段强迫用户浏览器请求CGI得到JSON数据,此时,恶意攻击者可以获取敏感信息。可以理解的是,执行URL会得到对应的响应数据,若第一响应结果和第二响应结果对应的响应数据不同,则确定第一响应结果和第二响应结果不同;若第一响应结果和第二响应结果对应的响应数据相同,则确定第一响应结果和第二响应结果相同。
本实施例首先通过网站登录态在待测试网站中执行URL,得到对应的第一响应结果,在确定第一响应结果可被跨域利用后,不通过网站登录态在待测试网站中执行URL,得到对应的第二响应结果,若确定第二响应结果与第一响应结果不同,则确定待测试网站存在JSON劫持漏洞。实现了采用动态模拟执行URL的方法来判断待测试网站是否存在JSON劫持漏洞,提高了检测网站是否存在JSON劫持漏洞的准确性。
进一步地,提出本发明JSON劫持漏洞的检测方法第二实施例。
所述JSON劫持漏洞的检测方法第二实施例与所述JSON劫持漏洞的检测方法第一实施例的区别在于,参照图2,JSON劫持漏洞的检测方法还包括:
步骤S40,若所述第二响应结果与所述第一响应结果相同,则检测所述第一响应结果中是否存在敏感信息。
若确定第二响应结果与第一响应结果相同,则检测第一响应结果中是否存在敏感信息。敏感信息包括但不限于银行卡账号、身份证号、用户ID、手机号、邮箱账号、内网地址和家庭住址等信息。
进一步地,步骤S40包括:
步骤a,若所述第二响应结果与所述第一响应结果相同,则获取预设的敏感信息对应的正则表达式,并将所述第一响应结果与所述正则表达式进行正则匹配。
具体地,当确定第二响应结果与第一响应结果相同时,获取预设的敏感信息对应的正则表达式,并将第一响应结果与敏感信息的正则表达式进行正则匹配。其中,敏感信息的正则表达式是预先设置好,存储在存储器中的。每一种敏感信息对应一个正则表达式。需要说明的是,在将第一响应结果与正则表达式进行正则匹配过程中,是将第一响应结果包含的数据与存储器中存储的所有正则表达式一一进行正则匹配,直到第一响应结果与所有正则表达式都匹配失败时,才能确定第一响应结果中未存在敏感信息。
步骤b,若所述第一响应结果与所述正则表达式正则匹配成功,则确定所述第一响应结果中存在敏感信息。
当将第一响应结果与敏感信息对应的正则表达式进行正则匹配后,判断第一响应结果与正则表达式是否匹配成功。当确定第一响应结果与正则表达式正则匹配成功后,确定第一响应结果中存在敏感信息。
可以理解的是,当第一响应结果中的某个数据的表现形式符合正则表达式时,表明第一响应结果与正则表达式正则匹配成功;当第一响应结果中不存在数据的表现形式符合正则表达式时,表明第一响应结果与正则表达式匹配失败。如手机号对应的正则表达式为:网络识别号+8位数字,其中,网络识别号为手机号码的前三位,即138、189和188等。若第一响应结果中的某个数据为138后面加上8位数字,则可确定第一响应结果与手机号的正则表达式匹配成功。
步骤c,若所述第一响应结果与所述正则表达式正则匹配失败,则确定所述第一响应结果中未存在敏感信息。
若第一响应结果与正则表达式正则匹配失败,则确定第一响应结果中未存在敏感信息。
进一步地,在本实施例中,也可以在存储器中预设设置一个敏感数据库,在该敏感数据库中存储有敏感数据。当确定第二响应结果与第一响应结果相同时,提取第一响应结果中的各个数据,将所提取的数据与敏感数据库中的敏感数据进行对比,若在敏感数据库中查找到与所提取的数据一致的敏感数据,则确定第一响应结果中存在敏感信息;若在敏感数据库中未查找到与所提取的数据一致的敏感数据,则确定第一响应结果中未存在敏感信息。
步骤S50,若检测到所述第一响应结果中存在所述敏感信息,则确定所述待测试网站存在所述JSON劫持漏洞。
若检测到第一响应结果中存在敏感信息,则确定待测试网站存在JSON劫持漏洞。进一步地,当确定待测试网站存在JSON劫持漏洞后,可通过该待测试网站输出提示信息,以根据该提示信息提示对应的运维人员修护待测试网站中的JSON劫持漏洞,输出提示信息的方式包括但不限于文字或者语音等方式。
步骤S60,若检测到所述第一响应结果中未存在所述敏感信息,则确定所述待测试网站未存在所述JSON劫持漏洞。
若检测到第一响应结果中未存在敏感信息,则确定待测试网站中未存在JSON劫持漏洞。
本实施例通过在采用动态模拟执行URL的方法来判断待测试网站是否存在JSON劫持漏洞的基础上,进一步通过检测响应结果中是否存在敏感信息来判断待测试网站是否存在JSON劫持漏洞,即通过敏感信息与网站登录态结合的方式来检测到测试网站是否存在JSON劫持漏洞,相比单纯采用敏感关键字分析的方法来检测网站是否存在JSON劫持漏洞,本实施例提高了JSON劫持漏洞检测的通用性,同时减低了JSON劫持漏洞检测的误报率和漏报率。需要说明的是,采用敏感关键字分析的方法来检测网站是否存在JSON劫持漏洞的通用性低。误报是在网站漏洞检测过程中,如果网站的一个URL本来不存在漏洞,却被错误地检测为存在漏洞,称为误报。漏报是在网站漏洞检测过程中,如果网站的一个URL本来存在漏洞,却没有被检测出来,称为漏报。
进一步地,提出本发明JSON劫持漏洞的检测方法第三实施例。
所述JSON劫持漏洞的检测方法第三实施例与所述JSON劫持漏洞的检测方法第一或第二实施例的区别在于,参照图3,JSON劫持漏洞的检测方法还包括:
步骤S70,检测所述第一响应结果是否可被跨域利用。
当得到第一响应结果后,检测第一响应结果是否可被跨域利用。
进一步地,步骤S70包括:
步骤d,检测所述第一响应结果是否是超级文本标记语言HTML文档。
具体地,在得到第一响应结果后,检测第一响应结果是否是HTML(Hyper TextMarkup Language,超级文本标记语言)文档。需要说明的是,网站对应的网页浏览器遵循同源策略的安全机制,同源策略在web应用的安全模型中是一个重要概念,在这个策略下,web浏览器允许第一个页面的脚本访问第二个页面里的数据,但是也只有在两个页面有相同的源时,源是由URI(Uniform Resource Identifier,统一资源标识符),主机名,端口号组合而成的,这个策略可以阻止一个页面上的恶意脚本通过页面的DOM(Document ObjectModel,文档对象模型)对象获得访问另一个页面上敏感信息的权限。但是为了网站使用的便捷性,网页浏览器提出了两个方案来允许跨域利用:第一,允许跨域利用Javascript代码;第二,提出了JSONP(JSON with Padding)的方案。JSONP是JSON的一种“使用模式”,可以让网页从别的域名(网站)那获取资料,即跨域读取数据。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
进一步地,步骤d包括:
步骤d1,检测所述第一响应结果中是否携带HTML标签。
具体地,检测第一响应结果中是否携带HTML标签,其中,HTML DOM定义了访问和操作HTML文档的标准方法;DOM将HTML文档表达为树结构。因此,需要说明的是,HTML标签是根据树结构表现形式的HTML文档而预先设置存储的。
步骤d2,若检测到所述第一响应结果中携带所述HTML标签,则确定所述第一响应结果是HTML文档。
若检测到第一响应结果中携带HTML标签,则确定第一响应结果是HTML文档。
步骤d3,若检测所述第一响应结果中未携带所述HTML标签,则确定所述第一响应结果不是HTML文档。
若检测到第一响应结果中未携带HTML标签,则确定第一响应结果不是HTML文档。
步骤e,若检测到所述第一响应结果是所述HTML文档,则确定所述第一响应结果不可被跨域利用。
当检测到第一响应结果是HTML文档时,确定第一响应结果不可被跨域利用。
步骤f,若检测所述第一响应结果不是所述HTML文档,则通过Javascript虚拟机模拟执行所述第一响应结果,得到对应的执行结果。
当检测到第一响应结果不是HTML文档时,通过Javascript虚拟机动态模拟执行第一响应结果,得到对应的执行结果。其中,Javascript虚拟机包括但不限于Node.JS,PhantomJS等等。Node.JS是一个Javascript运行环境(runtime environment);PhantomJS是一个基于WebKit的服务器端JavaScript API(Application Programming Interface,应用程序编程接口)。它全面支持Web而不需浏览器支持,其快速,原生支持各种Web标准。
步骤g,当根据所述执行结果确定所述第一响应结果执行成功后,确定所述第一响应结果可被跨域利用。
当根据执行结果确定第一响应结果执行成功后,确定第一响应结果可被跨域利用。需要说明的是,若Javascript虚拟机模拟执行第一响应结果执行成功,表明第一响应结果是一段可执行的Javascript代码,能被跨域利用。当Javascript虚拟机模拟执行第一响应结果后,若第一响应结果执行成功,虚拟机会返回一个执行成功的标识,此时执行结果是一个执行成功的标识;若第一响应结果执行失败,虚拟机会返回一个报错信息,此时执行结果是报错信息。因此,根据执行结果是执行成功的标识还是报错信息即可确定第一执行结果是否执行成功。在本实施例中,不限制执行成功的标识的具体表现形式。
步骤h,当根据所述执行结果确定所述第一响应结果执行失败后,检测所述第一响应结果是否是JSONP格式。
当根据执行结果确定第一响应结果执行失败后,检测第一响应结果是否是JSONP格式。当第一响应结果执行失败后,表明第一响应结果不是一段可以执行的Javascript代码。
进一步地,步骤h包括:
步骤h1,当根据所述执行结果确定所述第一响应结果执行失败后,确定所述第一响应结果的格式,并判断所述第一响应结果的格式与预设的JSONP格式是否一致。
当根据执行结果确定第一响应结果在Javascript虚拟机中执行失败后,获取预先存储的JSONP数据格式解析引擎,根据该JSONP数据格式解析引擎解析出第一响应结果的格式,并将第一响应结果的格式与预先设置的JSONP格式进行对比,判断第一响应结果的格式与预设的JSONP格式是否一致。
步骤h2,若所述第一响应结果的格式与所述JSONP格式一致,则确定所述第一响应结果的格式为JSONP格式。
若确定第一响应结果的格式与预设的JSONP格式一致,则确定第一响应结果的格式是JSONP格式。
步骤h3,若所述第一响应结果的格式与所述JSONP格式不一致,则确定所述第一响应结果的格式不是JSONP格式。
若确定第一响应结果的格式与预设JSONP格式不一致,则确定第一响应结果的格式不是JSONP格式。
步骤i,若所述第一响应结果的格式是JSONP格式,则确定所述第一响应结果可被跨域利用。
若确定第一响应结果的格式是JSONP格式,则确定第一响应结果可被跨域利用。
步骤j,若所述第一响应结果的格式不是JSONP格式,则确定所述第一响应结果不可被跨域利用。
若确定第一响应结果的格式不是JSONP格式,则确定第一响应结果不可跨域利用。
步骤S80,若检测到所述第一响应结果不可被跨域利用,则确定所述待测试网站未存在所述JSON劫持漏洞。
若检测到第一响应结果不可以被跨域利用,则确定待测试网站未存在JSON劫持漏洞。进一步地,若确定待测试网站未存在JSON劫持漏洞,可通过待测试网站输出提示信息,以根据该提示信息提示用户待测试网站处于安全状态。
本实施例通过多种方法检测第一响应结果是否可被跨域利用,当确定第一响应结果不可被跨域利用时,确定待测试网站未存在JSON劫持漏洞,进一步提高了检测待测试网站是否存在JSON劫持漏洞的准确率。
此外,参照图4,本发明还提供一种JSON劫持漏洞的检测装置,所述JSON劫持漏洞的检测装置包括:
执行模块10,用于当获取到待测试网站的统一资源定位符URL和网站登录态后,通过所述网站登录态在所述待测试网站中执行所述URL,得到第一响应结果;若检测到所述第一响应结果可被跨域利用,则不通过所述网站登录态在所述待测试网站中执行所述URL,得到第二响应结果;
确定模块20,用于若所述第二响应结果与所述第一响应结果不同,则确定所述待测试网站存在JS对象简谱JSON劫持漏洞。
进一步地,所述JSON劫持漏洞的检测装置还包括:
第一检测模块,用于若所述第二响应结果与所述第一响应结果相同,则检测所述第一响应结果中是否存在敏感信息;
所述确定模块20还用于若检测到所述第一响应结果中存在所述敏感信息,则确定所述待测试网站存在所述JSON劫持漏洞;若检测到所述第一响应结果中未存在所述敏感信息,则确定所述待测试网站未存在所述JSON劫持漏洞。
进一步地,所述第一检测模块包括:
获取单元,用于若所述第二响应结果与所述第一响应结果相同,则获取预设的敏感信息对应的正则表达式;
匹配单元,用于将所述第一响应结果与所述正则表达式进行正则匹配;
第一确定单元,用于若所述第一响应结果与所述正则表达式正则匹配成功,则确定所述第一响应结果中存在敏感信息;若所述第一响应结果与所述正则表达式正则匹配失败,则确定所述第一响应结果中未存在敏感信息。
进一步地,所述JSON劫持漏洞的检测装置还包括:
第二检测模块,用于检测所述第一响应结果是否可被跨域利用;
所述确定模块20还用于若检测到所述第一响应结果不可被跨域利用,则确定所述待测试网站未存在所述JSON劫持漏洞。
进一步地,所述第二检测模块包括:
检测单元,用于检测所述第一响应结果是否是超级文本标记语言HTML文档;
第二确定单元,用于若检测到所述第一响应结果是所述HTML文档,则确定所述第一响应结果不可被跨域利用;
执行单元,用于若检测所述第一响应结果不是所述HTML文档,则通过Javascript虚拟机模拟执行所述第一响应结果,得到对应的执行结果;
所述第二确定单元还用于当根据所述执行结果确定所述第一响应结果执行成功后,确定所述第一响应结果可被跨域利用;
所述检测单元还用于当根据所述执行结果确定所述第一响应结果执行失败后,检测所述第一响应结果是否是JSONP格式;
所述第二确定单元还用于若所述第一响应结果的格式是JSONP格式,则确定所述第一响应结果可被跨域利用;若所述第一响应结果的格式不是JSONP格式,则确定所述第一响应结果不可被跨域利用。
进一步地,所述检测单元包括:
检测子单元,用于检测所述第一响应结果中是否携带HTML标签;
第一确定子单元,用于若检测到所述第一响应结果中携带所述HTML标签,则确定所述第一响应结果是HTML文档;若检测所述第一响应结果中未携带所述HTML标签,则确定所述第一响应结果不是HTML文档。
进一步地,所述检测单元还包括:
第二确定子单元,用于当根据所述执行结果确定所述第一响应结果执行失败后,确定所述第一响应结果的格式;
判断单元,用于判断所述第一响应结果的格式与预设的JSONP格式是否一致;
所述第二确定子单元还用于若所述第一响应结果的格式与所述JSONP格式一致,则确定所述第一响应结果的格式是JSONP格式;若所述第一响应结果的格式与所述JSONP格式不一致,则确定所述第一响应结果的格式不是JSONP格式。
需要说明的是,JSON劫持漏洞的检测装置的各个实施例与上述JSON劫持漏洞的检测方法的各实施例基本相同,在此不再详细赘述。
此外,本发明还提供一种JSON劫持漏洞的检测设备。如图5所示,图5是本发明实施例方案涉及的硬件运行环境的结构示意图。
需要说明的是,图5即可为JSON劫持漏洞的检测设备的硬件运行环境的结构示意图。本发明实施例JSON劫持漏洞的检测设备可以是PC,便携计算机等终端设备。
如图5所示,该JSON劫持漏洞的检测设备可以包括:处理器1001,例如CPU,存储器1005,用户接口1003,网络接口1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,JSON劫持漏洞的检测设备还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。
本领域技术人员可以理解,图5中示出的JSON劫持漏洞的检测设备结构并不构成对JSON劫持漏洞的检测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图5所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及JSON劫持漏洞的检测程序。其中,操作系统是管理和控制JSON劫持漏洞的检测设备硬件和软件资源的程序,支持JSON劫持漏洞的检测程序以及其它软件或程序的运行。
在图5所示的JSON劫持漏洞的检测设备中,用户接口1003可用于用户所持终端,与用户所持终端进行数据通信;网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;处理器1001可以用于调用存储器1005中存储的JSON劫持漏洞的检测程序,并执行如上所述的JSON劫持漏洞的检测方法的步骤。
本发明JSON劫持漏洞的检测设备具体实施方式与上述JSON劫持漏洞的检测方法各实施例基本相同,在此不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有JSON劫持漏洞的检测程序,所述JSON劫持漏洞的检测程序被处理器执行时实现如上所述的JSON劫持漏洞的检测方法的步骤。
本发明计算机可读存储介质具体实施方式与上述JSON劫持漏洞的检测方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种JSON劫持漏洞的检测方法,其特征在于,所述JSON劫持漏洞的检测方法包括以下步骤:
当获取到待测试网站的统一资源定位符URL和网站登录态后,通过所述网站登录态在所述待测试网站中执行所述URL,得到第一响应结果;
若检测到所述第一响应结果可被跨域利用,则不通过所述网站登录态在所述待测试网站中执行所述URL,得到第二响应结果;
若所述第二响应结果与所述第一响应结果不同,则确定所述待测试网站存在JS对象简谱JSON劫持漏洞。
2.如权利要求1所述的JSON劫持漏洞的检测方法,其特征在于,所述若检测到所述第一响应结果可被跨域利用,则不通过所述网站登录态在所述待测试网站中执行所述URL,得到第二响应结果的步骤之后,还包括:
若所述第二响应结果与所述第一响应结果相同,则检测所述第一响应结果中是否存在敏感信息;
若检测到所述第一响应结果中存在所述敏感信息,则确定所述待测试网站存在所述JSON劫持漏洞;
若检测到所述第一响应结果中未存在所述敏感信息,则确定所述待测试网站未存在所述JSON劫持漏洞。
3.如权利要求2所述的JSON劫持漏洞的检测方法,其特征在于,所述若所述第二响应结果与所述第一响应结果相同,则检测所述第一响应结果中是否存在敏感信息的步骤包括:
若所述第二响应结果与所述第一响应结果相同,则获取预设的敏感信息对应的正则表达式,并将所述第一响应结果与所述正则表达式进行正则匹配;
若所述第一响应结果与所述正则表达式正则匹配成功,则确定所述第一响应结果中存在敏感信息;
若所述第一响应结果与所述正则表达式正则匹配失败,则确定所述第一响应结果中未存在敏感信息。
4.如权利要求1至3任一项所述的JSON劫持漏洞的检测方法,其特征在于,所述当获取到待测试网站的URL和网站登录态后,通过所述网站登录态在所述待测试网站中执行所述URL,得到第一响应结果的步骤之后,还包括:
检测所述第一响应结果是否可被跨域利用;
若检测到所述第一响应结果不可被跨域利用,则确定所述待测试网站未存在所述JSON劫持漏洞。
5.如权利要求4所述的JSON劫持漏洞的检测方法,其特征在于,所述检测所述第一响应结果是否可被跨域利用的步骤包括:
检测所述第一响应结果是否是超级文本标记语言HTML文档;
若检测到所述第一响应结果是所述HTML文档,则确定所述第一响应结果不可被跨域利用;
若检测所述第一响应结果不是所述HTML文档,则通过Javascript虚拟机模拟执行所述第一响应结果,得到对应的执行结果;
当根据所述执行结果确定所述第一响应结果执行成功后,确定所述第一响应结果可被跨域利用;
当根据所述执行结果确定所述第一响应结果执行失败后,检测所述第一响应结果是否是JSONP格式;
若所述第一响应结果的格式是JSONP格式,则确定所述第一响应结果可被跨域利用;
若所述第一响应结果的格式不是JSONP格式,则确定所述第一响应结果不可被跨域利用。
6.如权利要求5所述的JSON劫持漏洞的检测方法,其特征在于,所述检测所述第一响应结果是否是HTML文档的步骤包括:
检测所述第一响应结果中是否携带HTML标签;
若检测到所述第一响应结果中携带所述HTML标签,则确定所述第一响应结果是HTML文档;
若检测所述第一响应结果中未携带所述HTML标签,则确定所述第一响应结果不是HTML文档。
7.如权利要求5所述的JSON劫持漏洞的检测方法,其特征在于,所述当根据所述执行结果确定所述第一响应结果执行失败后,检测所述第一响应结果是否是JSONP格式的步骤包括:
当根据所述执行结果确定所述第一响应结果执行失败后,确定所述第一响应结果的格式,并判断所述第一响应结果的格式与预设的JSONP格式是否一致;
若所述第一响应结果的格式与所述JSONP格式一致,则确定所述第一响应结果的格式是JSONP格式;
若所述第一响应结果的格式与所述JSONP格式不一致,则确定所述第一响应结果的格式不是JSONP格式。
8.一种JSON劫持漏洞的检测装置,其特征在于,所述JSON劫持漏洞的检测装置包括:
执行模块,用于当获取到待测试网站的统一资源定位符URL和网站登录态后,通过所述网站登录态在所述待测试网站中执行所述URL,得到第一响应结果;若检测到所述第一响应结果可被跨域利用,则不通过所述网站登录态在所述待测试网站中执行所述URL,得到第二响应结果;
确定模块,用于若所述第二响应结果与所述第一响应结果不同,则确定所述待测试网站存在JS对象简谱JSON劫持漏洞。
9.一种JSON劫持漏洞的检测设备,其特征在于,所述JSON劫持漏洞的检测设备包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的JSON劫持漏洞的检测程序,所述JSON劫持漏洞的检测程序被所述处理器执行时实现如权利要求1至7中任一项所述的JSON劫持漏洞的检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有JSON劫持漏洞的检测程序,所述JSON劫持漏洞的检测程序被处理器执行时实现如权利要求1至7中任一项所述的JSON劫持漏洞的检测方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811112893.3A CN109672658B (zh) | 2018-09-25 | 2018-09-25 | Json劫持漏洞的检测方法、装置、设备及存储介质 |
PCT/CN2018/122809 WO2020062644A1 (zh) | 2018-09-25 | 2018-12-21 | Json劫持漏洞的检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811112893.3A CN109672658B (zh) | 2018-09-25 | 2018-09-25 | Json劫持漏洞的检测方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109672658A true CN109672658A (zh) | 2019-04-23 |
CN109672658B CN109672658B (zh) | 2022-01-21 |
Family
ID=66141596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811112893.3A Active CN109672658B (zh) | 2018-09-25 | 2018-09-25 | Json劫持漏洞的检测方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109672658B (zh) |
WO (1) | WO2020062644A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110278207A (zh) * | 2019-06-21 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 一种点击劫持漏洞检测方法、装置及计算机设备 |
CN111723400A (zh) * | 2020-06-16 | 2020-09-29 | 杭州安恒信息技术股份有限公司 | 一种js敏感信息泄露检测方法、装置、设备及介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111953556B (zh) * | 2020-07-02 | 2021-09-17 | 中盈优创资讯科技有限公司 | 网站自动拨测方法、装置、计算机设备及可读存储介质 |
CN112612700A (zh) * | 2020-12-21 | 2021-04-06 | 北京达佳互联信息技术有限公司 | 接口测试方法、装置及电子设备 |
CN115664833B (zh) * | 2022-11-03 | 2024-04-02 | 天津大学 | 基于局域网安全设备的网络劫持检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023790A (zh) * | 2012-12-31 | 2013-04-03 | 北京京东世纪贸易有限公司 | 一种用于实现跨域交互访问的方法和系统 |
CN104753730A (zh) * | 2013-12-30 | 2015-07-01 | 腾讯科技(深圳)有限公司 | 一种漏洞检测的方法及装置 |
CN106375144A (zh) * | 2016-08-29 | 2017-02-01 | 北京知道未来信息技术有限公司 | 一种基于jsonp跨域获取信息的网络溯源方法 |
EP3235222A2 (en) * | 2014-12-18 | 2017-10-25 | Level 3 Communications, LLC | Route monitoring system for a communication network |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105471821B (zh) * | 2014-08-29 | 2019-09-17 | 腾讯科技(深圳)有限公司 | 一种基于浏览器的信息处理方法及装置 |
CN106209748B (zh) * | 2015-05-08 | 2019-10-01 | 阿里巴巴集团控股有限公司 | 互联网接口的防护方法及装置 |
CN106302337B (zh) * | 2015-05-22 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 漏洞检测方法和装置 |
-
2018
- 2018-09-25 CN CN201811112893.3A patent/CN109672658B/zh active Active
- 2018-12-21 WO PCT/CN2018/122809 patent/WO2020062644A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023790A (zh) * | 2012-12-31 | 2013-04-03 | 北京京东世纪贸易有限公司 | 一种用于实现跨域交互访问的方法和系统 |
CN104753730A (zh) * | 2013-12-30 | 2015-07-01 | 腾讯科技(深圳)有限公司 | 一种漏洞检测的方法及装置 |
EP3235222A2 (en) * | 2014-12-18 | 2017-10-25 | Level 3 Communications, LLC | Route monitoring system for a communication network |
CN106375144A (zh) * | 2016-08-29 | 2017-02-01 | 北京知道未来信息技术有限公司 | 一种基于jsonp跨域获取信息的网络溯源方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110278207A (zh) * | 2019-06-21 | 2019-09-24 | 深圳前海微众银行股份有限公司 | 一种点击劫持漏洞检测方法、装置及计算机设备 |
CN111723400A (zh) * | 2020-06-16 | 2020-09-29 | 杭州安恒信息技术股份有限公司 | 一种js敏感信息泄露检测方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020062644A1 (zh) | 2020-04-02 |
CN109672658B (zh) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210058354A1 (en) | Determining Authenticity of Reported User Action in Cybersecurity Risk Assessment | |
CN109672658A (zh) | Json劫持漏洞的检测方法、装置、设备及存储介质 | |
US10262142B2 (en) | Systems and methods for advanced dynamic analysis scanning | |
US8949990B1 (en) | Script-based XSS vulnerability detection | |
US20170223043A1 (en) | Determine vulnerability using runtime agent and network sniffer | |
US20140075563A1 (en) | Automated security testing | |
US8543869B2 (en) | Method and system for reconstructing error response messages under web application environment | |
EP3343870A1 (en) | System and method for detecting phishing web pages field of technology | |
US8528093B1 (en) | Apparatus and method for performing dynamic security testing using static analysis data | |
JP2004164617A (ja) | クロスサイトスクリプティング脆弱性の自動検出 | |
CN106789939A (zh) | 一种钓鱼网站检测方法和装置 | |
CN108696481A (zh) | 漏洞检测方法和装置 | |
CN104834588B (zh) | 检测常驻式跨站脚本漏洞的方法和装置 | |
CN106682489A (zh) | 一种密码安全检测方法、密码安全提示方法及相应装置 | |
Kaur et al. | Browser fingerprinting as user tracking technology | |
CN108632219A (zh) | 一种网站漏洞检测方法、检测服务器及系统 | |
CN113938886A (zh) | 身份认证平台测试方法、装置、设备及存储介质 | |
Kellezi et al. | Towards secure open banking architecture: an evaluation with OWASP | |
CN104573486B (zh) | 漏洞检测方法和装置 | |
GB2514796A (en) | Web service testing | |
CN108809896A (zh) | 一种信息校验方法、装置和电子设备 | |
CN104717226A (zh) | 一种针对网址的检测方法及装置 | |
CN108322420A (zh) | 后门文件的检测方法和装置 | |
US10686834B1 (en) | Inert parameters for detection of malicious activity | |
CN108388796A (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 |