一种WebSocket检测方法、装置及介质与流程

文档序号:29465375发布日期:2022-04-02 03:12阅读:253来源:国知局
一种WebSocket检测方法、装置及介质与流程
一种websocket检测方法、装置及介质
技术领域
1.本技术涉及通信领域,特别是涉及一种websocket检测方法、装置及介质。


背景技术:

2.websocket是一种在单个tcp连接上进行全双工通信的协议,可以实现浏览器和服务器之间的全双工通讯,websocket广泛应用于社交聊天、弹幕、多玩家游戏、股票基金实时报价、体育实况更新、在线教育、智能家居等不同领域,websocket在实际的应用中存在潜在的风险,因此对websocket的漏洞检测至关重要。
3.在对websocket进行安全测试时,通常采用人工黑盒的方式进行漏洞检测,这样的方式效率低,且耗费人力成本。
4.由此可见,如何提高检测websocket中是否存在漏洞的效率,是本领域技术人员亟待解决的问题。


技术实现要素:

5.本技术的目的是提供一种websocket检测方法、装置及介质,通过拦截目标websocket的流量数据,并对流量数据中的标志信息进行修改,每修改一个标志信息执行并获取一个执行结果,根据各执行结果判断websocket中是否存在漏洞,提高检测websocket的效率。
6.为解决上述技术问题,本技术提供一种websocket检测方法,包括:
7.拦截目标websocket的流量数据;
8.分别修改所述流量数据中的各标志信息;
9.每修改一个所述标志信息获取当前的执行结果;
10.依据各所述执行结果判断所述目标websocket中是否存在漏洞。
11.优选地,所述标志信息包括消息体,x-forwarded-for头字段和origin头字段。
12.优选地,所述分别修改所述流量数据中的各标志信息包括:
13.将所述消息体的内容修改为具有第一类漏洞对应的攻击方式标识的payload;其中,所述第一类漏洞仅能存在于所述消息体中。
14.优选地,所述分别修改所述流量数据中的各标志信息包括:
15.将x-forwarded-for头字段的内容修改为具有第二类漏洞对应的攻击方式标识的payload;其中,所述第二类漏洞仅能存在于所述x-forwarded-for头字段中。
16.优选地,所述分别修改所述流量数据中的各标志信息包括:
17.修改所述目标websocket的所述流量数据中origin头字段的内容。
18.优选地,所述依据各所述执行结果判断所述目标websocket中是否存在漏洞包括:
19.判断修改各所述标志信息后的各执行结果是否均为验证通过;
20.若均为验证通过,则确定所述目标websocket中不存在漏洞,否则,确定所述目标websocket中存在漏洞。
21.优选地,所述拦截目标websocket流量数据包括:
22.输入目标url以确定所述目标websocket。
23.为了解决上述技术问题,本技术还提供了一种websocket检测装置,包括:
24.拦截模块,用于拦截目标websocket的流量数据;
25.修改模块,用于分别修改所述流量数据中的各标志信息;
26.获取模块,用于每修改一个所述标志信息获取当前的执行结果;
27.判断模块,用于依据各所述执行结果判断所述目标websocket中是否存在漏洞。
28.为了解决上述技术问题,本技术还提供了一种websocket检测装置,包括存储器,用于存储计算机程序;
29.处理器,用于执行所述计算机程序时实现如所述的websocket检测方法的步骤。
30.为了解决上述技术问题,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述的websocket检测方法的步骤。
31.本发明所提供的websocket检测方法,包括:通过mitmproxy工具拦截目标websocket的流量数据,获取到目标websocket的流量数据后,对流量数据中的标志信息进行修改,并且每修改一个标志信息后获取一次当前执行结果,依据各执行结果判断判断目标websocket中是否存在漏洞。由此可见,本发明提供的技术方案,通过拦截websocket的流量数据,并修改流量数据中的标志信息,获取修改标志信息后的执行结果进而判断websocket中是否存在漏洞,避免了使用人工黑盒进行漏洞检测的低效率,提升检测效率的同时,节约了人力成本。
32.此外,本技术还提供一种websocket检测装置及介质,与上述的websocket检测方法相对应,效果同上。
附图说明
33.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
34.图1为本发明实施例所提供的一种websocket检测方法的流程图;
35.图2为本发明实施例所提供的websocket检测装置的结构图;
36.图3为本发明另一实施例提供的websocket检测装置的结构图。
具体实施方式
37.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
38.本技术的核心是提供一种websocket检测方法、装置及介质,利用mitmproxy工具拦截目标websocket的流量数据,并修改流量数据中的标志信息,每修改一个标志信息获取一个对应的执行结果,依据各执行结果确定websocket中是否存在漏洞,由此避免采用人工
黑盒测试带来的低效率,提高websocket的检测效率。
39.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
40.websocket是一种在单个tcp连接上进行全双工通信的协议,允许服务器主动想客户端推送数据,使得客户端与服务器之间的数据交互变得更加简单。websocket广泛运用与社交聊天,在线教育,智能家居等人们生活的方方面面。为了避免websocket中存在漏洞,且该漏洞被利用以攻击网络,因此对websocket的漏洞检测对于客户端与服务器间的数据交互来说至关重要。目前,通常采用人工黑盒的方式对websocket中的漏洞进行检测,采用该方法进行检测费时费力,且测试效率低。
41.为了提高websocket的漏洞测试效率,本发明提供了一种websocket检测方法,利用mitmproxy工具拦截websocket的流量数据,并修改该流量数据中的标志信息,每修改一个标志信息就获取一个对应的执行结果,最后依据各执行结果确定websocket中是否存在漏洞。
42.图1为本发明实施例所提供的一种websocket检测方法的流程图,如图1所示,
43.s10:拦截目标websocket的流量数据。
44.s11:分别修改流量数据中的各标志信息。
45.s12:每修改一个标志信息获取当前的执行结果。
46.s13:依据各执行结果判断目标websocket中是否存在漏洞。
47.在步骤s10中,通过mitmproxy工具对目标websocket的流量数据进行拦截,在拦截流量数据前,先输入目标统一资源定位系统(uniform resource locator,简称url)至程序中以确定目标websocket,需要说说明的是,对于拦截websocket流量数据的工具本发明不作限定。
48.通过步骤s10获取到目标websocket的流量数据后,分别修改目标websocket流量数据中的各标志信息,其中,标志信息包括消息体,x-forwarded-for头字段和origin头字段。每修改一个消息体就执行并获取一个执行结果,即分别对消息体,x-forwarded-for头字段和origin头字段进行修改,每修改一个就执行一次并获取执行结果。得到各执行结果后,分析各执行结果确定websocket中是否存在漏洞。
49.可以理解的是,当分别修改websocket的消息体,x-forwarded-for头字段和origin头字段并执行得到的各执行结果均验证通过时,则确定websocket中不存在漏洞,否则,任意一个结果为验证不通过时,均可确定websocket中存在漏洞。
50.由于websocket的消息体,x-forwarded-for头字段和origin头字段会存在不同类型的漏洞,不同的漏洞存在不同的攻击方式,因此,分别将消息体,x-forwarded-for头字段和origin头字段修改为各自可能存在的漏洞形式,以及漏洞对应的执行方式所特有的payload信息修改各标志信息后获取各执行结果,依据各执行结果确定websocket中是否存在漏洞。
51.本发明实施例所提供的websocket检测方法,包括:通过mitmproxy工具拦截目标websocket的流量数据,获取到目标websocket的流量数据后,对流量数据中的标志信息进行修改,并且每修改一个标志信息后获取一次当前执行结果,依据各执行结果判断判断目标websocket中是否存在漏洞。由此可见,本发明提供的技术方案,通过拦截websocket的流
量数据,并修改流量数据中的标志信息,获取修改标志信息后的执行结果进而判断websocket中是否存在漏洞,避免了使用人工黑盒进行漏洞检测的低效率,提升检测效率的同时,节约了人力成本。
52.在具体实施例中,websocket的标志信息包括消息体,x-forwarded-for头字段和origin头字段,因此,为了检测websocket中是否存在漏洞时,通过对每个标志信息进行检测,即分别修改消息体,x-forwarded-for头字段和origin头字段的内容,修改后执行验证各执行结果,若修改各标志信息的执行结果均为验证通过,则确定websocket不存在漏洞,否则,确定websocket中存在漏洞。
53.本发明实施例所提供的websocket检测方法,通过分别修改websocket的消息体,x-forwarded-for头字段和origin头字段,并在每修改一个标志信息后获取一个执行结果,根据各执行结果确定websocket中是否存在漏洞,使得在实际测试websocket中减少人工的投入,提高websocket的检测效率。
54.由于websocket的消息体,x-forwarded-for头字段和origin头字段会存在不同类型的漏洞,不同的漏洞存在不同的攻击方式。因此,在修改websocket消息体时,将消息体的内容修改为具有第一类漏洞对应的攻击方式标识的payload,其中,第一类漏洞仅能存在于消息体中,即将消息体对应第一类漏洞的攻击方式所包含的特定标志的payload输入websocket消息体中,修改后执行并获取各执行结果。为了便于理解,下面将举例说明。
55.例如,拦截的目标websocket对应的消息体为:{"message":"hello fish"},需要检测的是目标websocket中是否存在xss攻击,则将包含有xss攻击特有标志的payload输入到消息体中,修改后目标websocket的消息体为:{"message":"《img src=1onerror='alert(1)'》"},执行获取结果,当执行结果显示验证通过时,则确定目标websocket中不包含xss攻击。
56.在修改websocket的x-forwarded-for头字段时,将x-forwarded-for头字段的内容修改为具有第二类漏洞对应的攻击方式标识的payload,其中,第二类漏洞仅能存在于x-forwarded-for头字段中,即将x-forwarded-for对应第二类漏洞的攻击方式所包含的特定标志的payload输入目标websocket的x-forwarded-for中,修改后执行并获取各执行结果。同样为了便于理解,下面将举例说明。
57.例如,拦截的目标websocket对应的x-forwarded-for头字段为:127.0.0.1',需要检测x-forwarded-for头字段中是否存在结构化查询语言(structured query language,简称sql),则对x-forwarded-for头字段输入sql注入特定的payload,例如,127.0.0.1'and 1=1#和127.0.0.1'and 1=2#。修改后执行获取结果,当执行结果显示验证通过时,则确定目标websocket中不包含sql攻击。
58.修改websocket的源(origin)头字段时,修改目标websocket流量数据中origin头字段的内容,例如,将origin头字段的内容修改为www.evil.com,当执行结果为验证通过时,则确定origin头字段中不存在漏洞。
59.需要注意的是,能存在于消息体,x-forwarded-for头字段和origin头字段中的漏洞,及各漏洞对应的攻击方式为多种,且消息体,x-forwarded-for头字段和origin头字段对应的漏洞不同,在实际的应用中,可以对所有的通过修改所有漏洞及对应的攻击方式进行检测以确定目标websocket中是否存在漏洞,也可以依据实际业务需求,对需要的漏洞类
型及攻击方式进行检测,对此本发明不作限定。
60.本发明实施例所提供的websocket检测方法,通过分别修改websocket的消息体,x-forwarded-for头字段和origin头字段,并且每修改一个标志信息后获取一次当前执行结果,依据各执行结果判断判断目标websocket中是否存在漏洞,从而降低人工的投入,提高检测的准确性以及效率。
61.在上述实施例的基础上,分别修改目标websocket的消息体,x-forwarded-for头字段和origin头字段后,每修改一个标志信息就执行获取一个执行结果,最后,依据各执行结果确定目标websocket中是否存在漏洞。当所有的执行结果均为验证通过时,则确定目标websocket中不存在漏洞,否在,确定目标中websocket存在漏洞,此时需要维护人员进行风险排除。
62.可以理解的是,websocket由消息体,x-forwarded-for头字段和origin头字段三部分组成,因此要检测websocket中是否存在漏洞,则需要对消息体,x-forwarded-for头字段和origin头字段可能存在的所有漏洞均进行检测,当消息体,x-forwarded-for头字段和origin头字段中均没有漏洞时,可确定websocket中不存在漏洞。在实际的应用中,可以将所有漏洞均进行检测以确定websocket中是否存在漏洞,也可以依据实际业务需求对特定的几种漏洞进行检测。
63.本发明实施例所提供的websocket检测方法,通过拦截目标websocket的流量数据,并对流量数据中的标志信息进行修改,每修改一个标志信息后获取一次当前执行结果,依据各执行结果判断判断目标websocket中是否存在漏洞,当所有执行结果均为验证通过时,确定目标websocket中不存在漏洞,否则确定目标websocket中存在漏洞,从而避免了使用人工黑盒进行漏洞检测的低效率,及时协助安全人员进行websocket安全风险检测,及时发现风并排除风险,提高websocket的检测效率。
64.在具体实施例中,通过mitmproxy工具拦截目标websocket前,需要先确定需要检测的websocket,即目标websocket。通过输入url至程序中以确定目标websocket,并拦截目标websocket的流量数据,对流量数据中的标志信息进行修改,并且每修改一个标志信息后获取一次当前执行结果,依据各执行结果判断判断目标websocket中是否存在漏洞。
65.本发明实施例所提供的websocket检测方法,通过输入url至程序中确定目标websocket,并通过mitmproxy工具拦截目标websocket的流量数据,获取到目标websocket的流量数据后,对流量数据中的标志信息进行修改,并且每修改一个标志信息后获取一次当前执行结果,依据各执行结果判断判断目标websocket中是否存在漏洞,由此避免使用人工黑盒进行漏洞检测的低效率,提高websocket的检测效率。
66.在上述实施例中,对于websocket检测方法进行了详细描述,本技术还提供websocket检测装置对应的实施例。需要说明的是,本技术从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件结构的角度。
67.图2为本发明实施例所提供的websocket检测装置的结构图,如图2所示,该装置包括:
68.拦截模块10,用于拦截目标websocket的流量数据。
69.修改模块11,用于分别修改流量数据中的各标志信息。
70.获取模块12,用于每修改一个标志信息获取当前的执行结果。
71.判断模块13,于依据各执行结果判断目标websocket中是否存在漏洞。
72.由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
73.本发明实施例所提供的websocket检测装置,包括:通过mitmproxy工具拦截目标websocket的流量数据,获取到目标websocket的流量数据后,对流量数据中的标志信息进行修改,并且每修改一个标志信息后获取一次当前执行结果,依据各执行结果判断判断目标websocket中是否存在漏洞。由此可见,本发明提供的技术方案,通过拦截websocket的流量数据,并修改流量数据中的标志信息,获取修改标志信息后的执行结果进而判断websocket中是否存在漏洞,避免了使用人工黑盒进行漏洞检测的低效率,提升检测效率的同时,节约了人力成本。
74.图3为本发明另一实施例提供的websocket检测装置的结构图,如图3示,websocket检测装置包括:存储器20,用于存储计算机程序;
75.处理器21,用于执行计算机程序时实现如上述实施例所提到的websocket检测方法的步骤。
76.本实施例提供的websocket检测装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
77.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(digital signal processor,简称dsp)、现场可编程门阵列(field-programmable gate array,简称fpga)、可编程逻辑阵列(programmable logic array,简称pla)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,简称cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有图像处理器(graphics processing unit,简称gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(artificial intelligence,简称ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
78.存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的websocket检测方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、unix、linux等。数据203可以包括但不限于websocket检测方法中涉及的相关数据等。
79.在一些实施例中,websocket检测装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
80.本领域技术人员可以理解,图3中示出的结构并不构成对websocket检测装置的限定,可以包括比图示更多或更少的组件。
81.本技术实施例提供的websocket检测装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:websocket检测方法。
82.本发明实施例所提供的websocket检测装置,通过mitmproxy工具拦截目标websocket的流量数据,获取到目标websocket的流量数据后,对流量数据中的标志信息进行修改,并且每修改一个标志信息后获取一次当前执行结果,依据各执行结果判断判断目标websocket中是否存在漏洞。由此,避免使用人工黑盒进行漏洞检测的低效率,提高websocket的检测效率。
83.最后,本技术还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
84.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
85.以上对本技术所提供的一种websocket检测方法、装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
86.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1