一种基于脚本断点与浏览器自动化的漏洞验证方法与流程

文档序号:36101902发布日期:2023-11-21 16:43阅读:50来源:国知局
一种基于脚本断点与浏览器自动化的漏洞验证方法与流程

本发明属于网络检测领域,具体涉及一种基于脚本断点与浏览器自动化的漏洞验证方法。


背景技术:

1、针对网站应用的漏洞检测通常经过向目标发送特定的http请求包并通过对返回包的内容进行特征检测来完成判断工作。然而,随着安全技术对抗的升级,现代的网站应用为了对抗漏洞检测或者来自攻击者对业务流程的分析、重放等行为,通常会对数据包进行一定程度的编码或加密处理。这些处理过程通常使用javascript语言进行编写,并且通常使用压缩混淆技术对脚本进行处理。这给漏洞验证开发人员来带来了极大的挑战,一方面需要从javascript文件中提取相关的编码或加密算法,另一方面由于漏洞验证脚本通常使用python、golang与yaml等进行编写,使得需要将相关的算法通常这些语言进行重新编写,当加密算法较为复杂时将使得此项工作变得难以完成。为了应对这一问题,知名漏洞验证框架nuclei通过支持无头浏览器自动化来解决此类问题。基于此项技术,漏洞验证人员无需关系javascript文件中的算法实现,只需模拟人工操作浏览器界面的流程,对网页进行输入、点击等操作行为,从而完成测试过程。

2、但是基于无头浏览器自动化的方案依然无法完整的解决上述问题,这是因为模拟人工操作浏览器界面的流程,通常只能进行正常的输入行为,例如:在填写银行卡号的位置通常只能模拟填写银行卡号,当填写不合法内容时,由于前端文件的限制,通常无法进行输入,导致测试流程无法进行。因此,基于无头浏览器自动化的技术更加适用于常规的软件功能完整性测试,而对于需要构造畸形输入、异常输入等漏洞验证测试时,则也存在不足。


技术实现思路

1、针对现有技术中存在的浏览器自动化流程通常无法实现异常或畸形的数据输入,浏览器自动化流程设置断点复杂,对请求数据包进行编码、对网站应用的漏洞验证脚本进行开发及编写的工作效率较低的问题,本发明提出了一种基于脚本断点与浏览器自动化的漏洞验证方法。

2、为实现上述目的本发明所采用的技术方案是提供一种基于脚本断点与浏览器自动化的漏洞验证方法,包括如下步骤:

3、s1预设准备:提前准备如下数据:待设置断点的代码c1、触发断点后执行的代码c2、浏览器自动化操作集合 ;

4、s2数据提取:启动浏览器并加载目标网站,提取加载网站中所有使用javascript语言编写的脚本,形成脚本集合;

5、s3压缩文件:在脚本集合中,对代码c1进行压缩;

6、s4判断还原:对脚本集合进行与s3压缩文件步骤中相同的压缩操作,进而判断脚本集合内是否含有代码c1,如若含有则对代码c1在脚本集合中的断点位置信息进行记录和还原,如若不含有则继续执行压缩操作;

7、s5设置断点:若在脚本集合中找到了代码c1,则通过断点位置信息,设置断点;

8、s6触发断点:浏览器自动化操作集合在被执行的过程中,若触发了设置断点步骤中设置的断点,则执行代码c2,并将该执行过程的返回值保存于结果k1;

9、s7循环执行:循环执行浏览器自动化操作集合,直至浏览器自动化操作集合中的所有操作都被执行完;

10、s8结束流程 :对结果k1进行判断,流程结束。

11、较优的,s1预设准备步骤中的待设置断点的代码c1是用户为了进行漏洞分析而设置的代码,由javascript语言撰写而成。

12、较优的,s1预设准备步骤中的触发断点后执行的代码c2用于构造出畸形的输入内容以及改变后续执行流程。

13、较优的,s1预设准备步骤中的浏览器自动化操作集合用于指引浏览器在目标网页进行自动化操作。

14、较优的,s2数据提取步骤中的脚本集合中的脚本包括外部远程服务器的脚本以及目标网站中内嵌嵌入的脚本。

15、较优的,s3压缩文件步骤,是通过删除需要设置断点的代码中的空白符、缩进符以及换行符完成的。

16、较优的,s4判断还原步骤中的断点位置信息包括以下信息:脚本编号、所在行、所在列。

17、较优的,s6触发断点步骤中的结果k1,用于浏览器自动化执行数据的后续执行过程,以及后续的漏洞验证结果判断过程。

18、较优的,s6触发断点步骤,浏览器在执行浏览器自动化操作集合的过程中,通过触发断点来修改用户的输入内容,构建异常或畸形的数据。

19、较优的,所述s4判断还原步骤,是通过对s2数据提取步骤中形成的脚本集合中的每一个脚本进行与s3压缩文件步骤中同样的压缩操作,来判断是否包含代码c1的。

20、较优的,通过浏览器自动化完成后续的请求操作,绕过传统的经由发送http数据包进行漏洞验证这一过程中需要大量分析、提取并转写编码或加密算法的工作,提高了对请求数据包进行编码、对网站应用的漏洞验证脚本进行开发及编写的工作效率。

21、较优的,在浏览器自动化测试流程开始前和开始后查找并设置断点,可以解决需要在网页中动态加载的脚本中设置断点的问题。

22、较优的,通过原始文件片段自动从网站加载的所有脚本中查找并设置断点,简化断点设置过程。

23、相比现有技术,本发明的技术方案具有如下优点/有益效果:

24、1.可以在浏览器自动化流程中,通过设置断点、在断点处执行自定义文件的方式实现异常、畸形的数据输入,目前的浏览器自动化流程无法实现该功能。

25、2.可通过用户自定义的文件片段自动化查找断点位置并设置断点,极大简化了断点设置流程,避免了常规方案需要硬性指定断点所在的行号和列号带来的通用性问题。

26、3. 对于需要基于浏览器自动化的方式进行应用漏洞验证的场景,绕过了发送http数据包进行漏洞验证这一需要大量分析、提取并转写加密算法的过程,在此工况下本方案进行漏洞验证脚本开发及编写的效率更高。



技术特征:

1.一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述s1预设准备步骤中的待设置断点的代码c1是用户为了进行漏洞分析而设置的代码,由javascript语言撰写而成。

3.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述s1预设准备步骤中的触发断点后执行的代码c2用于构造出畸形的输入内容以及改变后续执行流程。

4.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述s1预设准备步骤中的浏览器自动化操作集合用于指引浏览器在目标网页进行自动化操作。

5.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述s2数据提取步骤中的脚本集合中的脚本包括外部远程服务器的脚本以及目标网站中内嵌嵌入的脚本。

6.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述s3压缩文件步骤,是通过删除需要设置断点的代码中的空白符、缩进符以及换行符完成的。

7.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述s4判断还原步骤中的断点位置信息包括以下信息:脚本编号、所在行、所在列。

8.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述s6触发断点步骤中的结果k1,用于浏览器自动化执行数据的后续执行过程,以及后续的漏洞验证结果判断过程。

9.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述s6触发断点步骤,浏览器在执行浏览器自动化操作集合的过程中,通过触发断点来修改用户的输入内容,构建异常或畸形的数据。

10.根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述s4判断还原步骤,是通过对s2数据提取步骤中形成的脚本集合中的每一个脚本进行与s3压缩文件步骤中同样的压缩操作,来判断是否包含代码c1的。


技术总结
本发明公开了一种基于脚本断点与浏览器自动化的漏洞验证方法,属于网络检测领域,通过步骤:预设准备、数据提取、压缩文件、判断还原、设置断点、触发断点、循环执行、结束流程,使验证人员得以完成构造异常、畸形的数据输入,解决了浏览器自动化不足的缺点,提高了对请求数据包进行编码、对网站应用的漏洞验证脚本进行开发及编写的工作效率。

技术研发人员:童永鳌,张瑞冬,朱鹏,李维,薛显涛,王海洋
受保护的技术使用者:成都无糖信息技术有限公司
技术研发日:
技术公布日:2024/1/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1