一种漏洞前端功能点定位方法和系统

文档序号:1952974 发布日期:2021-12-10 浏览:20次 >En<

阅读说明:本技术 一种漏洞前端功能点定位方法和系统 (Vulnerability front-end function point positioning method and system ) 是由 陈路 于 2021-09-26 设计创作,主要内容包括:本发明公开了一种漏洞前端功能点定位方法和系统,所述方法包括如下步骤:在web前端浏览器页面安装漏洞定位插件,所述漏洞定位插件监听用户浏览器点击事件、URL跳转事件、表单输入事件;记录上述事件所对应的value值和事件触发的坐标;获取用户操作记录和并生成或获取所述用户操作记录相关的截图,获取用户请求中的URL;将所述用户请求中的URL作为键名key,并将所述用户操作记录和用户操作记录相关截图作为键值value生成用于漏洞定位的键值对;将所述键值对发送给服务器分类存储,执行DAST或IAST漏洞检测,从服务器中定位到漏洞对应的用户操作和用户操作记录相关的截图。(The invention discloses a vulnerability front-end function point positioning method and a vulnerability front-end function point positioning system, wherein the method comprises the following steps: installing a vulnerability positioning plug-in on a web front-end browser page, wherein the vulnerability positioning plug-in monitors a user browser click event, a URL (uniform resource locator) skip event and a form input event; recording a value corresponding to the event and a coordinate triggered by the event; acquiring a user operation record and generating or acquiring a screenshot related to the user operation record, and acquiring a URL (uniform resource locator) in a user request; using the URL in the user request as a key name key, and using the user operation record and the screenshot related to the user operation record as a key value to generate a key value pair for vulnerability location; and sending the key value pairs to a server for classified storage, executing DAST or IAST vulnerability detection, and positioning user operation corresponding to the vulnerability and a screenshot related to the user operation record from the server.)

一种漏洞前端功能点定位方法和系统

技术领域

本发明涉及网络漏洞检测技术领域,特别涉及一种漏洞前端功能点定位方法和系统。

背景技术

现有技术中,漏洞的检测有IAST(交互式应用安全测试)和DAST(动态应用安全测试,黑盒),上述漏洞检测方法可以自动化检测应用中的漏洞,但DAST和IAST一般只会上报漏洞的URL和数据流,对于前后端分离的应用,根据URL和数据流很难找到漏洞对应的前端功能点位置,造成漏洞复现困难,目前业界暂无此问题的解决方案。

发明内容

本发明其中一个发明目的在于提供一种漏洞前端功能点定位方法和系统,所述方法和系统基于浏览器漏洞定位插件实现对前端功能点的漏洞定位,所述漏洞定位插件可以实现前端漏洞的快速定位修复。

本发明另一个发明目的在于提供一种漏洞前端功能点定位方法和系统,所述方法和系统采用键值对的方式以对应用户请求URL作为键名,并将对应用户操作记录的截图作为键值生成键值对数据,传输到服务器进行查询,从而可以实现快速定位查询。

本发明另一个发明目的在于提供一种漏洞前端功能点定位方法和系统,所述方法和系统采用分类存储的方式,将持无需持久化存储的用户操作数据、截图、URL等数据保存于Redis数据库中,将对应的漏洞数据写入到mysql数据库中实现分类的持久化存储,从而一方面可以降低数据的存储压力,另一方面保障漏洞的持续监测。

为了实现至少一个上述发明目的,本发明进一步提供一种漏洞前端功能点定位方法,所述方法包括如下步骤:

在web前端浏览器页面安装漏洞定位插件,所述漏洞定位插件监听用户浏览器点击事件、URL跳转事件、表单输入事件;

记录上述事件所对应的value值和事件触发的坐标;

获取用户操作记录和并生成或获取所述用户操作记录相关的截图,获取用户请求中的URL;

将所述用户请求中的URL作为键名key,并将所述用户操作记录和用户操作记录相关截图作为键值value生成用于漏洞定位的键值对;

将所述键值对发送给服务器分类存储,执行DAST或IAST漏洞检测,从服务器中定位到漏洞对应的用户操作和用户操作记录相关的截图。

根据本发明其中一个较佳实施例,在完成所述键值对key-value的构建后,生成所述键值对key-value的map,并将所述map序列化为json格式的字符串发送给服务器。

根据本发明另一个较佳实施例,所述服务器在获取所述json格式的字符串后,将所述json格式的字符串进行反序列化解析,获取解析还原后的键值对key-value的map,并将所述键值对key-value的map保存于Redis数据库中。

根据本发明另一个较佳实施例,执行所述DAST或IAST漏洞检测后,获取漏洞对应的URL,并根据URL对应的key查询定位保存的用户操作记录和用户操作记录相关的截图。

根据本发明另一个较佳实施例,当完成漏洞检测定位前端功能点后,将检测到的漏洞所对应的用户操作和用户操作记录相关的截图写入到mysql数据库中进行持久化存储。

根据本发明另一个较佳实施例,完成漏洞检测定位前端功能点后,将所述用户操作和用户操作记录相关的截图传输到web前端页面进行可视化显示。

根据本发明另一个较佳实施例,所述用户请求中URL的获取方法包括:在html加载时,在js中通过hook将ajax替换XMLHttpRequest.prototype.open函数,并通过hook将fetch替换window.fetch函数,捕获用户请求后解析获取的用户请求数据中的URL。

根据本发明另一个较佳实施例,所述用户操作记录相关截图的生成方法包括:

当用户执行操作时,所述漏洞定位插件获取用户操作事件;

采用html2canvas框架对整个body生成canvas元素;

获取用户的点击坐标,根据所述点击坐标在canvas元素对应点击位置进行标记;

根据标记结果生成对应的截图。

为了实现至少一个上述目的,本发明进一步提供一种漏洞前端功能点定位系统,所述系统执行上述一种漏洞前端功能点定位方法。

本发明进一步提供一种计算可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被处理器执行上述一种漏洞前端功能点定位方法。

附图说明

图1显示的是本发明一种漏洞前端功能点定位方法的流程示意图。

具体实施方式

以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本发明的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本发明的精神和范围的其他技术方案。

可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。

请参考图1显示的本发明一种漏洞前端功能点定位方法的流程示意图,所述方法包括如下步骤:首先需要监听用户操作行为,所述用户操作行为包括但不仅限于浏览器点击事件、URL跳转事件、表单输入事件。本发明中采用漏洞定位插件仅限上述事件的监听,需要说明的是,本发明所述的漏洞定位插件安装于web前端的浏览器中,并支持包括Chrome、Firefox、Edge等主流浏览器的插件。所述漏洞定位插件在监听用户操作行为后,获取用户操作行为对应请求中的URL,以及获取用户操作行为和生成并获取用户操作行为相关的截图,进一步将上述请求中的URL作为键名key,并将上述用户操作行为和用户操作行为相关的截图作为键值vaule,生成键值对key-vaule数据,所述键值对key-vaule数据保存于服务器,通过查询所述键值对的key可以定位到对应的用户操作行为和用户操作行为相关的截图,在检测到漏洞时可以实现漏洞所对应的前端浏览器所对应的功能点。

具体的,所述漏洞定位插件通过jquery插件实时监听前端用户浏览器的浏览器点击事件、URL跳转事件、表单输入事件的用户操作行为,并记录所述用户操作行为对应事件的value值,以及触发事件的坐标位置。在所述前端用户浏览器根据用户操作生成用户操作请求数据,所述漏洞定位插件捕获所述用户操作请求数据,并解析所述用户操作请求数据中的URL。其中所述用户操作请求数据的捕获方法包括如下步骤:

在html加载过程中,通过hook功能在js中替换ajax和fetch执行函数实现,其中所述ajax执行函数通过hook替换html中的XMLHttpRequest.prototype.open函数,而fetch执行函数则通过hook替换window.fetch函数,上述函数的替换可以实现对前端浏览器所发出的请求数据的捕获。

所述漏洞定位插件在捕获所述用户操作请求数据后,解析请求中的URL和用于操作行为,并生成用户操作行为相关的截图,所述截图的生成方法包括如下步骤:

通过html2canvas框架对整个body生成canvas元素,并根据用户操作行为获取的坐标数据在所述canvas元素中的对应点击位置进行标记,生成点击位置的截图,并执行canvas.toDataURL('image/'+"jpg")方法,以获取截图的base64编码数据,用以存储和发送。

所述漏洞定位插件在获取用户操作为和用户操作为相关截图后,将所述用户操作为和用户操作为相关截图作为键值vaule,并将用户操作请求中对应的URL作为key值建立键值对key-vaule,进一步生成所述键值对key-vaule的map,并将所述map序列化为json字符串,并将json字符串发送给服务器,所述服务器将接收到的json字符串进行反序列化,解析还原为键值对key-vaule的map,并将还原的map保存于Redis数据库中。

进一步的,采用现有技术中的DAST或IAST漏洞检测方法对所述用户操作行为进行漏洞检测,获取存在漏洞的URL,在服务器端通过所述URL获取对应的键名key,并进一步根据该键名key去查找对应键值vaule的用户操作行为和用户操作行为相关截图,从而实现漏洞在浏览器前端功能点的定位。在获取对应漏洞在前端浏览器的用户操作行为相关截图后,将所述截图传输给前端浏览器,并可视化显示相关截图。需要说明的是上述DAST或IAST漏洞检测方法是现有技术,本发明不再对具体的漏洞检测方法进行详细描述。

由于漏洞检测可能存在大量的数据,因此为了缓解存储压力,本发明采用分类存储的方式降低前端浏览器的存储压力,其中服务器在获取到key-vaule的map时,将所述map缓存到Redis数据库,所述Redis数据库存储数据量大、数据存储格式、持久化存储需求低的所有键值对key-vaule的map数据,当经过所述DAST或IAST漏洞检测后,将存在漏洞的对应的URL、用户操作行为和对应截图保存于持久化的mysql数据库中,实现分类保存记录缓解存储压力的技术效果。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线段、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线段的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线段、电线段、光缆、RF等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明,本发明的目的已经完整并有效地实现,本发明的功能及结构原理已在实施例中展示和说明,在没有背离所述原理下,本发明的实施方式可以有任何变形或修改。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:接口开发方法、零代码引擎和零代码数据接口开发系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!