CN116150765B - 一种基于api依赖的模糊变异方法及装置 - Google Patents
一种基于api依赖的模糊变异方法及装置 Download PDFInfo
- Publication number
- CN116150765B CN116150765B CN202310182340.XA CN202310182340A CN116150765B CN 116150765 B CN116150765 B CN 116150765B CN 202310182340 A CN202310182340 A CN 202310182340A CN 116150765 B CN116150765 B CN 116150765B
- Authority
- CN
- China
- Prior art keywords
- interface
- parameter
- dependency
- api
- mutation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000035772 mutation Effects 0.000 claims abstract description 69
- 230000001419 dependent effect Effects 0.000 claims description 60
- 235000014510 cooky Nutrition 0.000 claims description 52
- 238000012986 modification Methods 0.000 claims description 16
- 230000004048 modification Effects 0.000 claims description 16
- 238000007493 shaping process Methods 0.000 claims description 13
- 238000002347 injection Methods 0.000 claims description 11
- 239000007924 injection Substances 0.000 claims description 11
- 238000012360 testing method Methods 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 238000006467 substitution reaction Methods 0.000 claims description 5
- 239000008186 active pharmaceutical agent Substances 0.000 claims 14
- 238000010586 diagram Methods 0.000 description 6
- 239000000243 solution Substances 0.000 description 3
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种基于API依赖的模糊变异方法及装置,包括:在API扫描任务中对接口进行依赖关系配置,新增接口间的依赖关系,生成接口依赖关系图;检测所述API扫描任务中的接口是否存在所述依赖关系,若不存在所述依赖关系,则对所述接口直接进行变异,若存在依赖关系,则按照所述依赖关系配置的顺序根据预设规则对接口参数进行变异。本发明提供的基于API依赖的模糊变异方法及装置,通过生成接口依赖关系图对接口参数进行变异,显著提高了入参变异的有效性。
Description
技术领域
本发明实施例涉及模糊测试技术领域,特别是涉及一种基于API依赖的模糊变异方法及装置。
背景技术
模糊测试是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。目前对登录接口、增加接口、修改接口以及删除接口进行模糊测试时,参数之间互不重叠,参数不符合业务场景,请求的有效性降低,导致测试效率不高。
因此,有必要提供一种基于API依赖的模糊变异方法及装置,可以有效解决上述问题。
发明内容
本发明提供一种基于API依赖的模糊变异方法及装置,通过生成接口依赖关系图对接口参数进行变异,显著提高了入参变异的有效性。
本发明实施例提供一种基于API依赖的模糊变异方法,包括:
在API扫描任务中对接口进行依赖关系配置,新增接口间的依赖关系,生成接口依赖关系图;
检测所述API扫描任务中的接口是否存在所述依赖关系,若不存在所述依赖关系,则对所述接口直接进行变异,若存在依赖关系,则按照所述依赖关系配置的顺序根据预设规则对接口参数进行变异。
优选地,所述接口参数包括请求头、请求体和请求参数,所述依赖关系配置包括是否变异、标签。
优选地,所述在API扫描任务中对接口进行依赖关系配置,新增接口间的依赖包括:
设置父节点接口和子节点接口依赖的参数,若所述子节点接口的入参数值来源于所述父节点接口或环境变量,则所述入参为所述子节点接口的依赖参数。
优选地,所述若存在依赖关系,则按照所述依赖关系配置的顺序根据预设规则对参数进行变异包括:
所述接口参数包括依赖参数和非依赖参数,所述预设规则包括第一变异规则和第二变异规则;
按照所述第一变异规则对所述依赖参数和所述非依赖参数进行变异包括对所述依赖参数进行变异,对所述非依赖参数不进行变异;
按照所述第二变异规则对所述依赖参数和所述非依赖参数进行变异包括对所述依赖参数不进行变异,对所述非依赖参数进行变异。
优选地,所述接口参数的类型包括字符串类型、整形类型、浮点类型、列表类型、布尔类型;
当所述接口参数的类型为字符串类型时,通过字典对所述接口参数进行变异,所述字典包括命令注入语句、特殊符号、格式化字符串、超长字符串、空字符、十六进制字符串中的一个或多个;
当所述接口参数的类型为整形类型时,对所述接口参数的整形边界值、正负数、0、特殊字符串、字节流中的一个或多个进行变异;
当所述接口参数的类型为浮点类型时,对所述接口参数的浮点边界值、随机浮点数、特殊字符串中的一个或多个进行变异;
当所述接口参数的类型为列表类型时,对所述接口参数的异常列表组合进行变异;
当所述接口参数的类型为布尔类型时,对所述接口参数的模板注入进行变异。
优选地,所述存在依赖关系包括管理员登录接口分别是创建用户接口、修改用户接口的父节点接口,所述创建用户接口是所述修改用户接口的父节点接口;
所述管理员登录接口用于提供第一依赖参数,作为所述创建用户接口和所述修改用户接口的身份认证参数;
所述创建用户接口用获取所述第一依赖参数,为所述修改用户接口提供第二依赖参数;
所述修改用户接口获取所述第一依赖参数和所述第二依赖参数。
优选地,所述检测所述API扫描任务中的接口是否存在所述依赖关系之前还包括:
根据身份认证请求头、替换规则、Cookie的有效时间以及Cookie的获取路径得到Cookie更新机制;
根据所述Cookie的有效时间判断当前Cookie的有效性,若所述当前Cookie已失效,则启用所述Cookie更新机制以获取最新的Cookie值。
优选地,所述检测所述API扫描任务中的接口是否存在所述依赖关系包括读取所述接口依赖关系图,生成依赖关系配置并存储;
启动kubernetes平台后,后端控制器读取所述依赖关系配置并解析依赖参数的数值;
按照所述依赖关系配置的顺序,依次对每个接口创造一个相应的容器执行变异任务;
所述创造一个相应的容器执行变异任务包括初始化依赖关系配置、初始化模糊测试配置、初始化变异引擎。
优选地,采用树结构将所述父节点接口和所述子节点接口的依赖关系配置和接口参数进行存储。
本发明实施例还提供一种基于API依赖的模糊变异装置,包括:
接口依赖关系图生成模块,其用于在API扫描任务中对接口进行依赖关系配置,新增接口间的依赖关系,生成接口依赖关系图;
接口参数变异模块,其用于检测所述API扫描任务中的接口是否存在所述依赖关系,若不存在所述依赖关系,则对所述接口直接进行变异,若存在依赖关系,则按照所述依赖关系配置的顺序根据预设规则对接口参数进行变异。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
本发明实施例的基于API依赖的模糊变异方法及装置,在API扫描任务中对接口进行依赖关系配置,新增接口间的依赖关系,生成接口依赖关系图;检测所述API扫描任务中的接口是否存在所述依赖关系,若不存在所述依赖关系,则对所述接口直接进行变异,若存在依赖关系,则按照所述依赖关系配置的顺序根据预设规则对接口参数进行变异,通过生成接口依赖关系图对接口参数进行变异,显著提高了入参变异的有效性;
进一步地,所述接口参数的类型包括字符串类型、整形类型、浮点类型、列表类型、布尔类型;当所述接口参数的类型为字符串类型时,通过字典对所述接口参数进行变异,所述字典包括命令注入语句、特殊符号、格式化字符串、超长字符串、空字符、十六进制字符串中的一个或多个;当所述接口参数的类型为整形类型时,对所述接口参数的整形边界值、正负数、0、特殊字符串、字节流中的一个或多个进行变异;当所述接口参数的类型为浮点类型时,对所述接口参数的浮点边界值、随机浮点数、特殊字符串中的一个或多个进行变异;当所述接口参数的类型为列表类型时,对所述接口参数的异常列表组合进行变异;当所述接口参数的类型为布尔类型时,对所述接口参数的模板注入进行变异,支持对不同的接口参数的类型进行针对性的变异;
进一步地,根据身份认证请求头、替换规则、Cookie的有效时间以及Cookie的获取路径得到Cookie更新机制;根据所述Cookie的有效时间判断当前Cookie的有效性,若所述当前Cookie已失效,则启用所述Cookie更新机制以获取最新的Cookie值,从而避免每次检测所述API扫描任务中的接口前手动输入最新的Cookie值。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的一个实施例提供的基于API依赖的模糊变异方法的流程示意图;
图2为本发明的一个实施例提供的基于API依赖的模糊变异方法的接口间依赖关系示意图;
图3为本发明的一个实施例提供的基于API依赖的模糊变异方法的系统框架图;
图4为本发明的另一个实施例提供的基于API依赖的模糊变异方法的流程示意图;
图5为本发明的一个实施例提供的基于API依赖的模糊变异装置的模块示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
基于现有技术存在的问题,一种基于API依赖的模糊变异方法及装置,通过生成接口依赖关系图对接口参数进行变异,显著提高了入参变异的有效性。
图1为本发明的一个实施例提供的基于API依赖的模糊变异方法的流程示意图。现在参看图1,本发明实施例提供一种基于API依赖的模糊变异方法,包括:
步骤S101:在API扫描任务中对接口进行依赖关系配置,新增接口间的依赖关系,生成接口依赖关系图;
步骤S102:检测所述API扫描任务中的接口是否存在所述依赖关系,若不存在所述依赖关系,则对所述接口直接进行变异,若存在依赖关系,则按照所述依赖关系配置的顺序根据预设规则对接口参数进行变异。
具体地,所述在API扫描任务中对接口进行依赖关系配置,新增接口间的依赖关系,生成接口依赖关系图包括先测试登录接口,然后测试增加接口、修改接口,最后测试删除接口,按照业务操作的逻辑顺序对接口进行测试,让参数更符合实际业务。
在一些实施例中,所述接口参数包括请求头、请求体和请求参数,所述依赖关系配置包括是否变异、标签。具体地,标签是指接口的类型,包括:新增接口、删除接口、修改接口、查询接口。
在一些实施例中,所述在API扫描任务中对接口进行依赖关系配置,新增接口间的依赖包括:
设置父节点接口和子节点接口依赖的参数,若所述子节点接口的入参数值来源于所述父节点接口或环境变量,则所述入参为所述子节点接口的依赖参数。入参是指接口请求所需要的变量参数,环境变量具体是指某个变量参数,例如设置一个环境变量a=1,那么其他接口用到a这个参数,那么关联后入参数值都为1。
在一些实施例中,所述若存在依赖关系,则按照所述依赖关系配置的顺序根据预设规则对参数进行变异包括:
所述接口参数包括依赖参数和非依赖参数,所述预设规则包括第一变异规则和第二变异规则;
按照所述第一变异规则对所述依赖参数和所述非依赖参数进行变异包括对所述依赖参数进行变异,对所述非依赖参数不进行变异;
按照所述第二变异规则对所述依赖参数和所述非依赖参数进行变异包括对所述依赖参数不进行变异,对所述非依赖参数进行变异。
序号 | fuzzable | is_dependency | 第一变异规则 | 第二变异规则 |
1 | true | true | 依赖参数变异 | 依赖参数不变异 |
2 | true | false | 非依赖参数不变异 | 非依赖参数变异 |
3 | false | true | 均不变异 | 均不变异 |
4 | false | false | 均不变异 | 均不变异 |
表1
具体地,如何进行依赖关系配置参见表1,设置value值是否变异:fuzzable,false表示均不变异,true表示根据规则进行变异。是否为依赖参数:is_dependency,true表示此参数为依赖参数,false表示此参数为非依赖参数。
在一些实施例中,所述接口参数的类型包括字符串类型、整形类型、浮点类型、列表类型、布尔类型;
当所述接口参数的类型为字符串类型时,通过字典对所述接口参数进行变异,所述字典包括命令注入语句、特殊符号、格式化字符串、超长字符串、空字符、十六进制字符串中的一个或多个;
当所述接口参数的类型为整形类型时,对所述接口参数的整形边界值、正负数、0、特殊字符串、字节流中的一个或多个进行变异;
当所述接口参数的类型为浮点类型时,对所述接口参数的浮点边界值、随机浮点数、特殊字符串中的一个或多个进行变异;
当所述接口参数的类型为列表类型时,对所述接口参数的异常列表组合进行变异;
当所述接口参数的类型为布尔类型时,对所述接口参数的模板注入进行变异。
以下为针对字符串变异的具体变异方法的示例:
边界整型值:整型值上溢、下溢、符号溢出等。
字符串重复:堆栈溢出等。
字段分隔符:将非字母数字字符如空格、制表符等随机地包含到模糊测试字符串中。
格式化字符串:最好选择"%s"、"%n"等包含到字符串中。
字符转换和翻译:特别关注对扩展字符的处理。
目录遍历:在URL中附加"../"之类的符号将导致攻击者访问未授权的目录。命令注入:向"exec()"、"system()"之类的API调用传递未经过滤的用户数据。
图2为本发明的一个实施例提供的基于API依赖的模糊变异方法的接口间依赖关系示意图。现在参看图2,在一些实施例中,所述存在依赖关系包括管理员登录接口分别是创建用户接口、修改用户接口的父节点接口,所述创建用户接口是所述修改用户接口的父节点接口;
所述管理员登录接口用于提供第一依赖参数,作为所述创建用户接口和所述修改用户接口的身份认证参数;
所述创建用户接口用获取所述第一依赖参数,为所述修改用户接口提供第二依赖参数;
所述修改用户接口获取所述第一依赖参数和所述第二依赖参数。
具体地,将虚拟起点作为初始节点,管理员登录接口用于提供第一依赖参数token(令牌),作为创建用户接口和修改用户接口的身份认证参数,创建用户接口用于获取管理员登录接口提供的第一依赖参数token,为修改用户接口提供第二依赖参数id(identification,标识),修改用户接口用于获取管理员登录接口提供的第一依赖参数token和创建用户接口提供的第二依赖参数id,id用于作为唯一身份认证。
图3为本发明的一个实施例提供的基于API依赖的模糊变异方法的系统框架图。现在参看图3,在一些实施例中,所述检测所述API扫描任务中的接口是否存在所述依赖关系包括读取所述接口依赖关系图,生成依赖关系配置并存储;
启动kubernetes(简称k8s)平台后,后端控制器读取所述依赖关系配置并解析依赖参数的数值;
按照所述依赖关系配置的顺序,依次对每个接口创造一个相应的容器执行变异任务;
所述创造一个相应的容器执行变异任务包括初始化依赖关系配置、初始化模糊测试配置、初始化变异引擎。
在一些实施例中,采用树结构将所述父节点接口和所述子节点接口的依赖关系配置和接口参数进行存储。
具体地,针对各种复杂的业务场景,请求体的value存在多层嵌套的情况,采用树结构进行存储可以有效解决该问题。
如表1所示,设置value值是否变异:false表示均不变异,true表示根据规则进行变异。对于以下的请求体,示例如下:
上述请求体会解析为如下结构:
对于以下的节点,示例如下:
Node(tag=root,identifier=root,data=None)
Node(tag=name,identifier=name,data=<__main__.BodyNode object at0x7f7b98a69b50>)
Node(tag=url,identifier=url,data=<__main__.BodyNode object at0x7f7b98a69cd0>)
Node(tag=cookies,identifier=cookies,data=<__main__.BodyNode objectat 0x7f7b98a69d60>)
Node(tag=import_assets,identifier=import_assets,data=<__main__.BodyNode object at 0x7f7b98a69df0>)
Node(tag=start_now,identifier=start_now,data=<__main__.BodyNodeobject at 0x7f7b98a69e80>)
Node(tag=enable_poc,identifier=enable_poc,data=<__main__.BodyNodeobject at 0x7f7b98a69f10>)
Node(tag=cookie_tag,identifier=cookie_tag,data=<__main__.BodyNodeobject at 0x7f7b98a69fa0>)
Node(tag=task,identifier=task,data=<__main__.BodyNode object at0x7f7b98a73070>)
Node(tag=cookie_tag1,identifier=cookie_tag1,data=<__main__.BodyNode object at 0x7f7b98a73100>)
Node(tag=task1,identifier=task1,data=<__main__.BodyNode object at0x7f7b98a73190>)
Node(tag=task2,identifier=task2,data=<__main__.BodyNode object at0x7f7b98a73220>)
Node(tag=task3,identifier=task3,data=<__main__.BodyNode object at0x7f7b98a732b0>)
上述树节点的每个node的结构如下:
图4为本发明的另一个实施例提供的基于API依赖的模糊变异方法的流程示意图。现在参看图4,本发明实施例提供一种基于API依赖的模糊变异方法,包括:
步骤S401:根据身份认证请求头、替换规则、Cookie的有效时间以及Cookie的获取路径得到Cookie更新机制;
步骤S402:根据所述Cookie的有效时间判断当前Cookie的有效性,若所述当前Cookie已失效,则启用所述Cookie更新机制以获取最新的Cookie值;
步骤S403:在API扫描任务中对接口进行依赖关系配置,新增接口间的依赖关系,生成接口依赖关系图;
步骤S404:检测所述API扫描任务中的接口是否存在所述依赖关系,若不存在所述依赖关系,则对所述接口直接进行变异,若存在依赖关系,则按照所述依赖关系配置的顺序根据预设规则对接口参数进行变异。
具体地,在步骤S401中,身份认证请求头包括Cookie、token,替换规则包括在token的value值前增加固定字符串,Cookie的获取路径包括登录接口、用户名和密码,本领域技术人员可以根据经验设置Cookie的有效时间,在此不再赘述。
在步骤S402中,判断当前Cookie的有效性,假设执行API扫描任务需要1小时,则以上次Cookie更新时间和当前时间比较,差值大于3小时或剩余有效时间不足1小时,则启用Cookie更新机制以获取最新的Cookie值,避免了每次执行API扫描任务前需要手动输入最新的Cookie值。
图5为本发明的一个实施例提供的基于API依赖的模糊变异装置的模块示意图。现在参看图5,本发明实施例还提供一种基于API依赖的模糊变异装置,包括:
接口依赖关系图生成模块51,其用于在API扫描任务中对接口进行依赖关系配置,新增接口间的依赖关系,生成接口依赖关系图;
接口参数变异模块52,其用于检测所述API扫描任务中的接口是否存在所述依赖关系,若不存在所述依赖关系,则对所述接口直接进行变异,若存在依赖关系,则按照所述依赖关系配置的顺序根据预设规则对接口参数进行变异。
综上所述,本发明实施例的基于API依赖的模糊变异方法及装置,在API扫描任务中对接口进行依赖关系配置,新增接口间的依赖关系,生成接口依赖关系图;检测所述API扫描任务中的接口是否存在所述依赖关系,若不存在所述依赖关系,则对所述接口直接进行变异,若存在依赖关系,则按照所述依赖关系配置的顺序根据预设规则对接口参数进行变异,通过生成接口依赖关系图对接口参数进行变异,显著提高了入参变异的有效性;
进一步地,所述接口参数的类型包括字符串类型、整形类型、浮点类型、列表类型、布尔类型;当所述接口参数的类型为字符串类型时,通过字典对所述接口参数进行变异,所述字典包括命令注入语句、特殊符号、格式化字符串、超长字符串、空字符、十六进制字符串中的一个或多个;当所述接口参数的类型为整形类型时,对所述接口参数的整形边界值、正负数、0、特殊字符串、字节流中的一个或多个进行变异;当所述接口参数的类型为浮点类型时,对所述接口参数的浮点边界值、随机浮点数、特殊字符串中的一个或多个进行变异;当所述接口参数的类型为列表类型时,对所述接口参数的异常列表组合进行变异;当所述接口参数的类型为布尔类型时,对所述接口参数的模板注入进行变异,支持对不同的接口参数的类型进行针对性的变异;
进一步地,根据身份认证请求头、替换规则、Cookie的有效时间以及Cookie的获取路径得到Cookie更新机制;根据所述Cookie的有效时间判断当前Cookie的有效性,若所述当前Cookie已失效,则启用所述Cookie更新机制以获取最新的Cookie值,从而避免每次检测所述API扫描任务中的接口前手动输入最新的Cookie值。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种基于API依赖的模糊变异方法,其特征在于,包括:
在API扫描任务中对接口进行依赖关系配置,新增接口间的依赖关系,生成接口依赖关系图;
检测所述API扫描任务中的接口是否存在所述依赖关系,若不存在所述依赖关系,则对所述接口直接进行变异,若存在依赖关系,则按照所述依赖关系配置的顺序根据预设规则对接口参数进行变异;
所述若存在依赖关系,则按照所述依赖关系配置的顺序根据预设规则对参数进行变异包括:
所述接口参数包括依赖参数和非依赖参数,所述预设规则包括第一变异规则和第二变异规则;
按照所述第一变异规则对所述依赖参数和所述非依赖参数进行变异包括对所述依赖参数进行变异,对所述非依赖参数不进行变异;
按照所述第二变异规则对所述依赖参数和所述非依赖参数进行变异包括对所述依赖参数不进行变异,对所述非依赖参数进行变异。
2.根据权利要求1所述的基于API依赖的模糊变异方法,其特征在于,所述接口参数包括请求头、请求体和请求参数,所述依赖关系配置包括是否变异、标签。
3.根据权利要求1所述的基于API依赖的模糊变异方法,其特征在于,所述在API扫描任务中对接口进行依赖关系配置,新增接口间的依赖包括:
设置父节点接口和子节点接口依赖的参数,若所述子节点接口的入参数值来源于所述父节点接口或环境变量,则所述入参为所述子节点接口的依赖参数。
4.根据权利要求1所述的基于API依赖的模糊变异方法,其特征在于,所述接口参数的类型包括字符串类型、整形类型、浮点类型、列表类型、布尔类型;
当所述接口参数的类型为字符串类型时,通过字典对所述接口参数进行变异,所述字典包括命令注入语句、特殊符号、格式化字符串、超长字符串、空字符、十六进制字符串中的一个或多个;
当所述接口参数的类型为整形类型时,对所述接口参数的整形边界值、正负数、0、特殊字符串、字节流中的一个或多个进行变异;
当所述接口参数的类型为浮点类型时,对所述接口参数的浮点边界值、随机浮点数、特殊字符串中的一个或多个进行变异;
当所述接口参数的类型为列表类型时,对所述接口参数的异常列表组合进行变异;
当所述接口参数的类型为布尔类型时,对所述接口参数的模板注入进行变异。
5.根据权利要求1所述的基于API依赖的模糊变异方法,其特征在于,所述存在依赖关系包括管理员登录接口分别是创建用户接口、修改用户接口的父节点接口,所述创建用户接口是所述修改用户接口的父节点接口;
所述管理员登录接口用于提供第一依赖参数,作为所述创建用户接口和所述修改用户接口的身份认证参数;
所述创建用户接口用获取所述第一依赖参数,为所述修改用户接口提供第二依赖参数;
所述修改用户接口获取所述第一依赖参数和所述第二依赖参数。
6.根据权利要求1所述的基于API依赖的模糊变异方法,其特征在于,所述检测所述API扫描任务中的接口是否存在所述依赖关系之前还包括:
根据身份认证请求头、替换规则、Cookie的有效时间以及Cookie的获取路径得到Cookie更新机制;
根据所述Cookie的有效时间判断当前Cookie的有效性,若所述当前Cookie已失效,则启用所述Cookie更新机制以获取最新的Cookie值。
7.根据权利要求1所述的基于API依赖的模糊变异方法,其特征在于,所述检测所述API扫描任务中的接口是否存在所述依赖关系包括读取所述接口依赖关系图,生成依赖关系配置并存储;
启动kubernetes平台后,后端控制器读取所述依赖关系配置并解析依赖参数的数值;
按照所述依赖关系配置的顺序,依次对每个接口创造一个相应的容器执行变异任务;
所述创造一个相应的容器执行变异任务包括初始化依赖关系配置、初始化模糊测试配置、初始化变异引擎。
8.根据权利要求3所述的基于API依赖的模糊变异方法,其特征在于,采用树结构将所述父节点接口和所述子节点接口的依赖关系配置和接口参数进行存储。
9.一种基于API依赖的模糊变异装置,其特征在于,包括:
接口依赖关系图生成模块,其用于在API扫描任务中对接口进行依赖关系配置,新增接口间的依赖关系,生成接口依赖关系图;
接口参数变异模块,其用于检测所述API扫描任务中的接口是否存在所述依赖关系,若不存在所述依赖关系,则对所述接口直接进行变异,若存在依赖关系,则按照所述依赖关系配置的顺序根据预设规则对接口参数进行变异;
所述若存在依赖关系,则按照所述依赖关系配置的顺序根据预设规则对参数进行变异包括:
所述接口参数包括依赖参数和非依赖参数,所述预设规则包括第一变异规则和第二变异规则;
按照所述第一变异规则对所述依赖参数和所述非依赖参数进行变异包括对所述依赖参数进行变异,对所述非依赖参数不进行变异;
按照所述第二变异规则对所述依赖参数和所述非依赖参数进行变异包括对所述依赖参数不进行变异,对所述非依赖参数进行变异。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310182340.XA CN116150765B (zh) | 2023-02-28 | 2023-02-28 | 一种基于api依赖的模糊变异方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310182340.XA CN116150765B (zh) | 2023-02-28 | 2023-02-28 | 一种基于api依赖的模糊变异方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116150765A CN116150765A (zh) | 2023-05-23 |
CN116150765B true CN116150765B (zh) | 2023-08-04 |
Family
ID=86340648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310182340.XA Active CN116150765B (zh) | 2023-02-28 | 2023-02-28 | 一种基于api依赖的模糊变异方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116150765B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235716B (zh) * | 2023-11-14 | 2024-02-13 | 之江实验室 | 一种ooxml文档模板注入攻击的未知威胁防御方法及装置 |
CN118467391A (zh) * | 2024-06-14 | 2024-08-09 | 上海安般信息科技有限公司 | 一种基于api依赖自动采集的接口测试方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563742A (zh) * | 2020-05-11 | 2020-08-21 | 西安邮电大学 | 智能合约交易顺序依赖漏洞变异模糊测试方法 |
CN112559367A (zh) * | 2020-12-23 | 2021-03-26 | 南京大学 | 基于系统调用依赖图的内核模糊测试用例生成方法 |
WO2021212661A1 (zh) * | 2020-04-23 | 2021-10-28 | 平安科技(深圳)有限公司 | 运行系统构建方法、装置、电子设备及存储介质 |
CN115687119A (zh) * | 2022-10-31 | 2023-02-03 | 上海安般信息科技有限公司 | 一种基于生成和变异方式的接口模糊测试系统 |
-
2023
- 2023-02-28 CN CN202310182340.XA patent/CN116150765B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021212661A1 (zh) * | 2020-04-23 | 2021-10-28 | 平安科技(深圳)有限公司 | 运行系统构建方法、装置、电子设备及存储介质 |
CN111563742A (zh) * | 2020-05-11 | 2020-08-21 | 西安邮电大学 | 智能合约交易顺序依赖漏洞变异模糊测试方法 |
CN112559367A (zh) * | 2020-12-23 | 2021-03-26 | 南京大学 | 基于系统调用依赖图的内核模糊测试用例生成方法 |
CN115687119A (zh) * | 2022-10-31 | 2023-02-03 | 上海安般信息科技有限公司 | 一种基于生成和变异方式的接口模糊测试系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116150765A (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116150765B (zh) | 一种基于api依赖的模糊变异方法及装置 | |
US11038917B2 (en) | System and methods for building statistical models of malicious elements of web pages | |
Crussell et al. | Andarwin: Scalable detection of android application clones based on semantics | |
CN102722585B (zh) | 浏览器类型识别方法、装置及系统 | |
Naik et al. | Cyberthreat Hunting-Part 1: triaging ransomware using fuzzy hashing, import hashing and YARA rules | |
CN112989348B (zh) | 攻击检测方法、模型训练方法、装置、服务器及存储介质 | |
CN110704816B (zh) | 接口破解的识别方法、装置、设备及存储介质 | |
CN104036187A (zh) | 计算机病毒类型确定方法及其系统 | |
RU2701040C1 (ru) | Способ и вычислительное устройство для информирования о вредоносных веб-ресурсах | |
CN112073374B (zh) | 信息拦截方法、装置及设备 | |
CN107623693B (zh) | 域名解析防护方法及装置、系统、计算设备、存储介质 | |
US9600644B2 (en) | Method, a computer program and apparatus for analyzing symbols in a computer | |
CN112751804B (zh) | 一种仿冒域名的识别方法、装置和设备 | |
US11550910B2 (en) | Creating generic rules in a high dimensional sparse feature space using negative feedback | |
CN117081801A (zh) | 网站的内容管理系统的指纹识别方法、装置及介质 | |
CN111737695A (zh) | 白名单优化方法、装置、设备与计算机可读存储介质 | |
EP3306511B1 (en) | System and methods of detecting malicious elements of web pages | |
CN112765588B (zh) | 一种身份识别方法、装置、电子设备及存储介质 | |
EP3293661A1 (en) | System and method for detecting anomalous elements of web pages | |
CN112686029A (zh) | 用于数据库审计系统的sql新语句识别方法及装置 | |
CN113839940A (zh) | 基于url模式树的防御方法、装置、电子设备和可读存储介质 | |
CN112800185B (zh) | 移动终端中界面结点的匹配文本生成、匹配方法及装置 | |
CN113032784B (zh) | 一种威胁处置方法、威胁处置工具和计算机可读介质 | |
WO2023042379A1 (ja) | 攻撃分析支援装置、攻撃分析支援方法、及びコンピュータ読み取り可能な記録媒体 | |
US20240121267A1 (en) | Inline malicious url detection with hierarchical structure patterns |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A Fuzzy Mutation Method and Device Based on API Dependency Granted publication date: 20230804 Pledgee: Industrial Commercial Bank of China Ltd. Shanghai Zhangjiang science and Technology Branch Pledgor: Shanghai Anban Information Technology Co.,Ltd. Registration number: Y2024980039802 |