1.一种基于数据流分析的第三方验证后登录请求伪造漏洞检测方法,其特征在于,所述方法包括:步骤S1、调用第一模块,所述第一模块被配置为执行:获取待测小程序客户端源码;具体包括:收集各类小程序,从而构建待测小程序数据集;使用小程序前端代码反编译工具对待测小程序的前端的wxapkg加密包进行自动化解密解包,以获取待测小程序的前端源码文件;步骤S2、调用第二模块,所述第二模块被配置为执行:根据待测小程序客户端源码,基于数据流分析对第三方验证后登录请求伪造漏洞进行检测;具体包括:采用基于AST的数据流分析方式对每个待测小程序的前端源码文件进行数据流分析;识别第三方验证登录过程中使用的API参数作为数据源,对其中的数据流动进行分析;对待测小程序的客户端和服务端进行交互建模,得到待测小程序的客户端和服务端之间的交互过程图,并执行第三方验证后登录请求伪造漏洞检测;其中,在步骤S2中,由第二模块对第三方验证后登录请求伪造漏洞进行检测;执行第三方验证后登录请求伪造漏洞检测;具体包括:基于交互过程图判断是否存在验证手机号HTTP请求返回明文手机号的情况,是否存在后续请求使用前一请求的响应中的明文手机号作为参数来发送登录请求的情况,如果以上两种情况中存在至少一种情况,则存在第三方验证后登录请求伪造漏洞,将交互过程图和数据流分析结果输出到分析报告中。
2.根据权利要求1所述的一种基于数据流分析的第三方验证后登录请求伪造漏洞检测方法,其特征在于,在步骤S1中,由第一模块获取待测小程序客户端源码;其中:待测小程序客户端源码加密存储在客户端计算机的特定目录中,调用KillWxapkg工具对待测小程序数据集中每个小程序的前端的wxapkg加密包进行解密解包和反编译处理,从而得到待测小程序的前端源码文件,作为待测小程序客户端源码;将每个待测小程序的客户端源码发送给第二模块,以执行后续的漏洞检测。
3.根据权利要求2所述的一种基于数据流分析的第三方验证后登录请求伪造漏洞检测方法,其特征在于,在步骤S2中,由第二模块对第三方验证后登录请求伪造漏洞进行检测;其中,采用基于AST的数据流分析方式对每个待测小程序的前端源码文件进行数据流分析,以识别第三方验证登录过程中使用的API参数作为数据源;具体包括:通过逻辑层和渲染层协同分析进行数据源识别定位,将待测小程序的javascript代码和wxml文件转换成抽象语法树AST;提取javascript代码抽象语法树AST中函数名为getPhoneNumber的函数;若提取成功,则识别对应函数的API参数作为数据源;若提取不成功,则提取wxml文件抽象语法树AST绑定getPhoneNumber API的事件函数名称,根据事件函数名称在javascript代码抽象语法树AST中提取对应函数名称的函数,并识别其API参数作为数据源。
4.根据权利要求3所述的一种基于数据流分析的第三方验证后登录请求伪造漏洞检测方法,其特征在于,在步骤S2中,由第二模块对第三方验证后登录请求伪造漏洞进行检测;其中,对所述数据流动进行分析;具体包括:针对javascript中的文件、对象、函数分别构建对应的文件上下文、对象上下文、函数上下文;将javascript语言中的require函数的文件包含的每个javascript文件作为子文件上下文,提取其定义的所有函数并保存在函数表中;当分析到函数调用时,判断函数表中是否存在同名称的函数声明;若存在,则进入对应函数声明部分并进行过程间调用分析,根据追踪变量在函数调用中的参数位置,确定在函数声明部分要追踪的变量;当分析到变量赋值时,若右侧为追踪变量,则将其左侧赋值的变量增加到追踪变量集合中;当分析到有追踪变量赋值给对应的属性时,将赋值的对象属性继续保持在追踪变量集合中。
5.根据权利要求4所述的一种基于数据流分析的第三方验证后登录请求伪造漏洞检测方法,其特征在于,在步骤S2中,由第二模块对第三方验证后登录请求伪造漏洞进行检测;其中,对待测小程序的客户端和服务端进行交互建模,得到待测小程序的客户端和服务端之间的交互过程图;具体包括:根据小程序javascript代码中HTTP请求函数的特征,对数据流中的函数调用表达式进行分析,识别出HTTP请求处理函数及回调函数,提取HTTP请求参数、请求响应、对请求响应执行的操作,从而构建客户端和服务端之间的交互过程图。
6.一种基于数据流分析的第三方验证后登录请求伪造漏洞检测系统,其特征在于,所述系统包括第一模块和第二模块;其中:所述第一模块被配置为执行:获取待测小程序客户端源码;具体包括:收集各类小程序,从而构建待测小程序数据集;使用小程序前端代码反编译工具对待测小程序的前端的wxapkg加密包进行自动化解密解包,以获取待测小程序的前端源码文件;所述第二模块被配置为执行:根据待测小程序客户端源码,基于数据流分析对第三方验证后登录请求伪造漏洞进行检测;具体包括:采用基于AST的数据流分析方式对每个待测小程序的前端源码文件进行数据流分析;识别第三方验证登录过程中使用的API参数作为数据源,对其中的数据流动进行分析;对待测小程序的客户端和服务端进行交互建模,得到待测小程序的客户端和服务端之间的交互过程图,并执行第三方验证后登录请求伪造漏洞检测;其中,由第二模块对第三方验证后登录请求伪造漏洞进行检测;执行第三方验证后登录请求伪造漏洞检测;具体包括:基于交互过程图判断是否存在验证手机号HTTP请求返回明文手机号的情况,是否存在后续请求使用前一请求的响应中的明文手机号作为参数来发送登录请求的情况,如果以上两种情况中存在至少一种情况,则存在第三方验证后登录请求伪造漏洞,将交互过程图和数据流分析结果输出到分析报告中。
7.根据权利要求6所述的一种基于数据流分析的第三方验证后登录请求伪造漏洞检测系统,其特征在于,由第一模块获取待测小程序客户端源码;其中:待测小程序客户端源码加密存储在客户端计算机的特定目录中,调用KillWxapkg工具对待测小程序数据集中每个小程序的前端的wxapkg加密包进行解密解包和反编译处理,从而得到待测小程序的前端源码文件,作为待测小程序客户端源码;将每个待测小程序的客户端源码发送给第二模块,以执行后续的漏洞检测。
8.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现权利要求1-5任一项所述的一种基于数据流分析的第三方验证后登录请求伪造漏洞检测方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1-5任一项所述的一种基于数据流分析的第三方验证后登录请求伪造漏洞检测方法。