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

技术编号:39492374 阅读:8 留言:0更新日期:2023-11-24 11:14
本发明专利技术公开了一种基于脚本断点与浏览器自动化的漏洞验证方法,属于网络检测领域,通过步骤:预设准备

【技术实现步骤摘要】
一种基于脚本断点与浏览器自动化的漏洞验证方法


[0001]本专利技术属于网络检测领域,具体涉及一种基于脚本断点与浏览器自动化的漏洞验证方法


技术介绍

[0002]针对网站应用的漏洞检测通常经过向目标发送特定的
HTTP
请求包并通过对返回包的内容进行特征检测来完成判断工作

然而,随着安全技术对抗的升级,现代的网站应用为了对抗漏洞检测或者来自攻击者对业务流程的分析

重放等行为,通常会对数据包进行一定程度的编码或加密处理

这些处理过程通常使用
javascript
语言进行编写,并且通常使用压缩混淆技术对脚本进行处理

这给漏洞验证开发人员来带来了极大的挑战,一方面需要从
javascript
文件中提取相关的编码或加密算法,另一方面由于漏洞验证脚本通常使用
python、golang

yaml
等进行编写,使得需要将相关的算法通常这些语言进行重新编写,当加密算法较为复杂时将使得此项工作变得难以完成

为了应对这一问题,知名漏洞验证框架
nuclei
通过支持无头浏览器自动化来解决此类问题

基于此项技术,漏洞验证人员无需关系
javascript
文件中的算法实现,只需模拟人工操作浏览器界面的流程,对网页进行输入

点击等操作行为,从而完成测试过程
r/>[0003]但是基于无头浏览器自动化的方案依然无法完整的解决上述问题,这是因为模拟人工操作浏览器界面的流程,通常只能进行正常的输入行为,例如:在填写银行卡号的位置通常只能模拟填写银行卡号,当填写不合法内容时,由于前端文件的限制,通常无法进行输入,导致测试流程无法进行

因此,基于无头浏览器自动化的技术更加适用于常规的软件功能完整性测试,而对于需要构造畸形输入

异常输入等漏洞验证测试时,则也存在不足


技术实现思路

[0004]针对现有技术中存在的浏览器自动化流程通常无法实现异常或畸形的数据输入,浏览器自动化流程设置断点复杂,对请求数据包进行编码

对网站应用的漏洞验证脚本进行开发及编写的工作效率较低的问题,本专利技术提出了一种基于脚本断点与浏览器自动化的漏洞验证方法

[0005]为实现上述目的本专利技术所采用的技术方案是提供一种基于脚本断点与浏览器自动化的漏洞验证方法,包括如下步骤:
S1
预设准备:提前准备如下数据:待设置断点的代码
C1、
触发断点后执行的代码
C2、
浏览器自动化操作集合 ;
S2
数据提取:启动浏览器并加载目标网站,提取加载网站中所有使用
javascript
语言编写的脚本,形成脚本集合;
S3
压缩文件:在脚本集合中,对代码
C1
进行压缩;
S4
判断还原:对脚本集合进行与
S3
压缩文件步骤中相同的压缩操作,进而判断脚本集合内是否含有代码
C1
,如若含有则对代码
C1
在脚本集合中的断点位置信息进行记录和
还原,如若不含有则继续执行压缩操作;
S5
设置断点:若在脚本集合中找到了代码
C1
,则通过断点位置信息,设置断点;
S6
触发断点:浏览器自动化操作集合在被执行的过程中,若触发了设置断点步骤中设置的断点,则执行代码
C2
,并将该执行过程的返回值保存于结果
K1

S7
循环执行:循环执行浏览器自动化操作集合,直至浏览器自动化操作集合中的所有操作都被执行完;
S8
结束流程 :对结果
K1
进行判断,流程结束

[0006]较优的,
S1
预设准备步骤中的待设置断点的代码
C1
是用户为了进行漏洞分析而设置的代码,由
javascript
语言撰写而成

[0007]较优的,
S1
预设准备步骤中的触发断点后执行的代码
C2
用于构造出畸形的输入内容以及改变后续执行流程

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

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

[0010]较优的,
S3
压缩文件步骤,是通过删除需要设置断点的代码中的空白符

缩进符以及换行符完成的

[0011]较优的,
S4
判断还原步骤中的断点位置信息包括以下信息
:
脚本编号

所在行

所在列

[0012]较优的,
S6
触发断点步骤中的结果
K1
,用于浏览器自动化执行数据的后续执行过程,以及后续的漏洞验证结果判断过程

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

[0014]较优的,所述
S4
判断还原步骤,是通过对
S2
数据提取步骤中形成的脚本集合中的每一个脚本进行与
S3
压缩文件步骤中同样的压缩操作,来判断是否包含代码
C1


[0015]较优的,通过浏览器自动化完成后续的请求操作,绕过传统的经由发送
HTTP
数据包进行漏洞验证这一过程中需要大量分析

提取并转写编码或加密算法的工作,提高了对请求数据包进行编码

对网站应用的漏洞验证脚本进行开发及编写的工作效率

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

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

[0018]相比现有技术,本专利技术的技术方案具有如下优点
/
有益效果:
1.
可以在浏览器自动化流程中,通过设置断点

在断点处执行自定义文件的方式实现异常

畸形的数据输入,目前的浏览器自动化流程无法实现该功能
。<本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,包括如下步骤:
S1
预设准备:提前准备如下数据:待设置断点的代码
C1、
触发断点后执行的代码
C2、
浏览器自动化操作集合;
S2
数据提取:启动浏览器并加载目标网站,提取加载网站中所有使用
javascript
语言编写的脚本,形成脚本集合;
S3
压缩文件:在脚本集合中,对代码
C1
进行压缩;
S4
判断还原:对脚本集合进行与
S3
压缩文件步骤中相同的压缩操作,进而判断脚本集合内是否含有代码
C1
,如若含有则对代码
C1
在脚本集合中的断点位置信息进行记录和还原,如若不含有则继续执行压缩操作;
S5
设置断点:若在脚本集合中找到了代码
C1
,则通过断点位置信息,设置断点;
S6
触发断点:浏览器自动化操作集合在被执行的过程中,若触发了设置断点步骤中设置的断点,则执行代码
C2
,并将该执行过程的返回值保存于结果
K1

S7
循环执行:循环执行浏览器自动化操作集合,直至浏览器自动化操作集合中的所有操作都被执行完;
S8
结束流程 :对结果
K1
进行判断,流程结束
。2.
根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述
S1
预设准备步骤中的待设置断点的代码
C1
是用户为了进行漏洞分析而设置的代码,由
javascript
语言撰写而成
。3.
根据权利要求1所述的一种基于脚本断点与浏览器自动化的漏洞验证方法,其特征在于,所述
S1
预设准备步骤中的触发断点后执行的代码
C2
用于构造出畸形的输...

【专利技术属性】
技术研发人员:童永鳌张瑞冬朱鹏李维薛显涛王海洋
申请(专利权)人:成都无糖信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1