CN116226866A - web应用框架漏洞检测方法、装置及计算机设备 - Google Patents
web应用框架漏洞检测方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN116226866A CN116226866A CN202310181498.5A CN202310181498A CN116226866A CN 116226866 A CN116226866 A CN 116226866A CN 202310181498 A CN202310181498 A CN 202310181498A CN 116226866 A CN116226866 A CN 116226866A
- Authority
- CN
- China
- Prior art keywords
- information
- name
- frame
- web application
- vulnerability
- 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.)
- Pending
Links
Images
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
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
本申请涉及一种web应用框架漏洞检测方法、装置及计算机设备。所述方法包括:根据服务器中目标web应用的程序的导入函数,获取以所述程序运行的第一进程的第一进程名称和框架版本信息;获取所述服务器中至少一个web应用所对应的第二进程的第二进程名称和所述第二进程的路径信息;将所述第一进程名称和所述第二进程名称进行比较,在所述第一进程名称和所述第二进程名称相同的情况下,基于所述第一进程的框架版本信息和所述第二进程的路径信息,确定所述目标web应用的框架漏洞信息。本申请实施例提供的web应用框架漏洞检测方法便于迅速定位框架位置并进行及时修复,能够在发现漏洞的第一时间减小或避免漏洞造成的损失,有效提高了框架漏洞的修复效率。
Description
技术领域
本申请涉及计算机安全技术领域,特别是涉及一种web应用框架漏洞检测方法、装置及计算机设备。
背景技术
随着计算机技术和网络技术的迅速发展,web2.0、网络社交等一系列新型互联网产品也随之诞生,基于web环境的互联网应用也越来越广泛,在企业信息化的过程中有越来越多的应用在web平台上进行架设。
然而web业务的迅速发展使得web安全威胁也愈加凸显。恶意攻击者利用网站操作系统的漏洞和web服务程序的0day漏洞等得到web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。web框架在web应用开发的过程中应用范围较广、覆盖面较大,因此web应用框架漏洞会较大程度上影响web应用,所以web应用框架的安全一直是恶意攻击者关注的重点。
在web应用安全的相关技术中,通常使用爬虫获取网页信息并进行解析后确定框架漏洞。然而相关技术确定的框架漏洞信息仅包含漏洞本身的信息,难以在产生漏洞的设备或系统中迅速定位漏洞框架位置并进行及时修复,也难以在发现漏洞的第一时间减小或避免漏洞造成的损失,因此框架漏洞修复效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高漏洞修复效率的web应用框架漏洞检测方法、装置及计算机设备。
第一方面,本申请提供了一种web应用框架漏洞检测方法。所述方法包括:
根据服务器中目标web应用的程序的导入函数,获取以所述程序运行的第一进程的第一进程名称和框架版本信息;
获取所述服务器中至少一个web应用所对应的第二进程的第二进程名称和所述第二进程的路径信息;
将所述第一进程名称和所述第二进程名称进行比较,在所述第一进程名称和所述第二进程名称相同的情况下,基于所述第一进程的框架版本信息和所述第二进程的路径信息,确定所述目标web应用的框架漏洞信息。
在其中一个实施例中,所述根据服务器中目标web应用的程序的导入函数,获取以所述程序运行的第一进程的第一进程名称包括:
基于钩子函数劫持所述导入函数,得到所述导入函数的导入对象名称及第一进程名称,其中,所述导入对象名称包括类名、函数名或框架名称中的任意一种;
基于所述导入对象名称确定框架版本信息。
在其中一个实施例中,所述基于所述导入对象名称确定框架版本信息包括:
判断框架名称信息库中是否存在所述导入对象名称,其中,所述框架名称信息库基于所述目标web应用对应程序语言的框架名称构建得到;
若存在,则确定所述导入对象名称为框架名称,并基于所述框架名称确定框架版本信息。
在其中一个实施例中,所述基于所述框架名称确定框架版本信息包括:
基于所述框架名称确定框架的存储位置信息;
基于所述框架的存储位置信息确定所述框架版本信息。
在其中一个实施例中,所述基于所述框架名称确定框架的存储位置信息包括:
基于所述框架名称确定目录数据库中的框架存储目录信息,所述目录数据库包括当前运行所述目标web应用的程序进程目录、所述目标web应用的程序导入目录、静态链接库目录、第三方模块安装目录中的至少一个;
基于所述框架存储目录信息确定所述框架的存储位置信息。
在其中一个实施例中,所述获取所述服务器中至少一个web应用所对应的第二进程的第二进程名称包括:
获取进程信息虚拟文件目录中当前运行程序的进程号信息;
确定对应于所述进程号信息的进程名称作为所述第二进程名称。
在其中一个实施例中,所述基于所述第一进程的框架版本信息和所述第二进程的路径信息,确定所述目标web应用的框架漏洞信息还包括:
获取所述目标web应用的框架漏洞对应的程序参数信息,所述程序参数信息包括用户信息和端口信息;
基于所述第一进程的框架版本信息、所述第二进程的路径信息和所述程序参数信息确定目标web应用的框架漏洞信息,所述目标web应用的框架漏洞信息包括漏洞路径信息、漏洞用户信息和漏洞端口信息。
在其中一个实施例中,在所述基于所述第一进程的框架版本信息、所述第二进程的路径信息和所述程序参数信息确定web应用框架漏洞信息之后,还包括:
基于所述目标web应用的框架漏洞信息确定漏洞来源信息和漏洞修复信息,所述漏洞来源信息包括服务器信息和/或端口信息;
基于所述漏洞来源信息和漏洞修复信息修复所述目标web应用的框架漏洞。
第二方面,本申请还提供了一种web应用框架漏洞检测装置。所述装置包括:
框架版本信息确定模块,用于根据服务器中目标web应用的程序的导入函数,获取以所述程序运行的第一进程的第一进程名称和框架版本信息;
路径信息确定模块,用于获取所述服务器中至少一个web应用所对应的第二进程的第二进程名称和所述第二进程的路径信息;
框架漏洞信息确定模块,用于将所述第一进程名称和所述第二进程名称进行比较,在所述第一进程名称和所述第二进程名称相同的情况下,基于所述第一进程的框架版本信息和所述第二进程的路径信息,确定所述目标web应用的框架漏洞信息。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行上述第一方面中任意一项所述的web应用框架漏洞检测方法的步骤。
上述web应用框架漏洞检测方法、装置及计算机设备,通过根据服务器中目标web应用的程序的导入函数获取以所述程序运行的第一进程的第一进程名称和框架版本信息,以及所述服务器中至少一个web应用所对应的第二进程的第二进程名称和所述第二进程的路径信息,并在所述第一进程名称和所述第二进程名称相同的情况下,基于所述第一进程的框架版本信息和所述第二进程的路径信息,确定所述目标web应用的框架漏洞信息。本申请实施例提供的web应用框架漏洞检测方法,一方面在第一进程名称和所述第二进程名称相同的情况下确定web应用框架漏洞信息,可以准确、及时地检测当前运行的进程所调用的框架漏洞信息,而并不会对已安装但未使用的框架进行检测,因此有效提高了漏洞检测的有效性,一定程度上节省了运算资源,提高了漏洞检测结果的准确性和有效性。另一方面,基于框架版本信息和路径信息确定web应用框架漏洞信息,使得web应用框架漏洞信息中包括框架的路径信息,便于迅速定位框架位置并进行及时修复,能够在发现漏洞的第一时间减小或避免漏洞造成的损失,有效提高了框架漏洞的修复效率。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为一个实施例中web应用框架漏洞检测方法的应用环境图;
图2为一个实施例中web应用框架漏洞检测方法的流程示意图;
图3为一个实施例中web应用框架漏洞检测系统的结构示意图;
图4为一个实施例中web应用框架漏洞检测装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
以下所使用的术语“模块”、“单元”等为可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以硬件来实现,但是软件,或者软件和硬件的组合的实现也是可能并被构想的。
本申请实施例提供的web应用框架漏洞检测方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。根据服务器104中目标web应用的程序的导入函数,获取以该程序运行的第一进程的第一进程名称和框架版本信息,以及获取服务器104中至少一个web应用所对应的第二进程的第二进程名称和第二进程的路径信息。服务器104将第一进程名称和第二进程名称进行比较,在第一进程名称和第二进程名称相同的情况下,基于第一进程的框架版本信息和第二进程的路径信息,确定目标web应用的框架漏洞信息。在其他实施例中,在服务器104确定第一进程的第一进程名称和框架版本信息和第二进程的第二进程名称和所述第二进程的路径信息之后,也可以将上述信息发送至终端102,由终端102比较第一进程名称和第二进程名称,并在第一进程名称和所述第二进程名称相同的情况下基于第一进程的框架版本信息和第二进程的路径信息确定目标web应用的框架漏洞信息。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
随着计算机技术和网络技术的迅速发展,web2.0、网络社交等一系列新型互联网产品也随之诞生,基于web环境的互联网应用也越来越广泛,在企业信息化的过程中有越来越多的应用在web平台上进行架设。然而web业务的迅速发展使得web安全威胁也愈加凸显。恶意攻击者利用网站操作系统的漏洞和web服务程序的0day漏洞等得到web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。web框架在web应用开发的过程中应用范围较广、覆盖面较大,因此web应用框架漏洞会较大程度上影响web应用,所以web应用框架的安全一直是恶意攻击者关注的重点。
在web应用安全的相关技术中,通常使用爬虫获取网页信息并进行解析后确定框架漏洞。然而相关技术确定的框架漏洞信息仅包含漏洞本身的信息,难以在产生漏洞的设备或系统中迅速定位漏洞框架位置并进行及时修复,也难以在发现漏洞的第一时间减小或避免漏洞造成的损失,因此框架漏洞修复效率较低。此外,通过爬虫获取漏洞信息的方式只能针对网站,对于应用程序、组件等则无法进行漏洞检测,因此在网络条件较差、禁止使用爬虫或者网页信息中不包含框架信息的应用场景中将无法获取网页信息进行漏洞检测。再者,爬虫获取网页信息确定漏洞信息的方式只能确定服务器中存在漏洞的组件,而难以确定存在漏洞的进程信息,也就难以对存在漏洞的框架进行定位,也难以确认框架是否运行,难以保证检测结果的有效性。另外,相关技术中还存在通过全盘扫描的方式检测框架漏洞的方法,该技术检测效率较低,且难以确认与框架信息对应的进程信息,同样难以确认框架是否运行,也难以保证检测结果的有效性。
基于此,本申请实施例中,如图2所示,提供了一种web应用框架漏洞检测方法,以该方法应用于图1中的应用场景为例进行说明,包括以下步骤:
S201:根据服务器中目标web应用的程序的导入函数,获取以所述程序运行的第一进程的第一进程名称和框架版本信息。
本申请实施例中,所述目标web应用的程序包括通过web访问的应用程序,具体而言,web应用的程序包括基于编程语言编码并通过web浏览器呈现服务器中程序执行结果的计算机软件应用程序,所述编程语言可以包括HTML、PHP、Python、ASP等。web应用可以包括聊天室、论坛、搜索平台等。web应用的程序在运行时通常会使用导入函数导入具体的框架、类和接口,根据所述导入函数可以获取所述web应用的程序运行的第一进程的第一进程名称和框架版本信息。
本申请实施例中所述框架包括构成一类特定软件可复用设计的一组相互协作的类,框架定义了web应用的整体结构、类和对象的分割、各部分的主要责任、类和对象的协作方式以及控制流程,能够使web应用的开发过程具有工程性、简便性和稳定性。相应的,基于框架开发的web应用的程序也可能存在漏洞,不同的框架版本对应不同的漏洞信息,因此获取web应用框架的版本信息即可高效地获取框架的漏洞信息以及相应的修复信息对漏洞进行修复。
本申请实施例中,所述服务器中目标web应用的程序的导入函数可以包括基于目标编程语言编码运行的web应用的程序的导入函数。所述目标编程语言可以包括HTML、PHP、Python、ASP等。可以理解的,各目标编程语言中包括相应的导入函数,根据目标编程语言编码运行的web应用的程序的导入函数获取的第一进程名称,包括以该目标编程语言运行的进程的名称。例如,在一个具体实施例中,web应用的程序相应的目标编程语言为Python,则导入函数为import函数,根据import函数获取的web应用的程序运行的第一进程为执行Python编程语言的进程,相应的,第一进程名称为执行Python编程语言进程的名称。
本申请实施例中,根据服务器中目标web应用的程序的导入函数,获取以所述程序运行的第一进程的第一进程名称和框架版本信息可以包括,获取所述导入函数的参数信息,基于所述参数信息确定所述程序运行的第一进程的第一进程名称和框架版本信息,其中所述参数信息包括导入对象名称和加载进程信息。加载进程信息包括第一进程名称。在一些实施例中,导入对象名称包括类名、函数名或框架名称中的任意一种。获取导入对象名称后,可以判断所述导入对象名称是否存在于框架名称信息库中,若存在则确定所述导入对象名称为框架名称。所述框架名称信息库基于所述目标web应用对应编程语言的框架名称构建得到。本申请实施例可以基于钩子函数劫持所述导入函数获取所述第一进程名称和框架版本信息。在其他实施例中,也可以基于与钩子函数功能相似的软件或函数获取所述第一进程名称和框架版本信息。
S203:获取所述服务器中至少一个web应用所对应的第二进程的第二进程名称和所述第二进程的路径信息。
本申请实施例中,一个web应用在运行时会产生至少一个对应的第二进程。获取所述第二进程的第二进程名称和所述第二进程的路径信息可以包括,获取所述服务器的操作系统信息,基于所述操作系统信息获取所述第二进程名称和所述第二进程的路径信息。可以理解的,搭载不同操作系统的服务器中应使用相应的方式获取web应用所对应的第二进程的第二进程名称和所述第二进程的路径信息。在一些具体实施例中,若所述服务器的操作系统为Windows系统,则可以通过任务管理器或任务命令行程序获取web应用所对应的第二进程的第二进程名称和所述第二进程的路径信息。在另一些实施例中,若所述服务器的操作系统为Linux系统,则可以通过ps命令或top命令获取web应用所对应的第二进程的第二进程名称和所述第二进程的路径信息,若需要获取所述第二进程的路径信息为绝对路径信息时,还可以基于proc目录下的进程文件夹获取所述第二进程的第二进程名称和所述第二进程的路径信息。
S205:将所述第一进程名称和所述第二进程名称进行比较,在所述第一进程名称和所述第二进程名称相同的情况下,基于所述第一进程的框架版本信息和所述第二进程的路径信息,确定所述目标web应用的框架漏洞信息。
本申请实施例中,服务器中目标web应用的程序运行的第一进程和所述服务器中至少一个web应用所对应的第二进程均为服务器当前运行的进程。将所述第一进程名称和所述第二进程名称进行比较,若所述第一进程名称和所述第二进程名称相同,则表示所述第一进程和所述第二进程指向同一目标进程,将第一进程与第二进程关联后,可以基于步骤S201中获取的所述第一进程的框架版本信息和步骤S203中获取的所述第二进程的路径信息确定所述目标web应用的框架漏洞信息。可以理解的,所述目标web应用的框架漏洞信息中包括漏洞路径信息,基于所述漏洞信息可以确定漏洞发生的服务器信息及框架位置信息,进而可以在漏洞发生时基于漏洞信息迅速定位框架位置并及时进行修复。
本申请实施例提供的web应用框架漏洞检测方法,通过根据服务器中目标web应用的程序的导入函数获取以所述程序运行的第一进程的第一进程名称和框架版本信息,以及所述服务器中至少一个web应用所对应的第二进程的第二进程名称和所述第二进程的路径信息,并在所述第一进程名称和所述第二进程名称相同的情况下,基于所述第一进程的框架版本信息和所述第二进程的路径信息,确定所述目标web应用的框架漏洞信息。本申请实施例提供的web应用框架漏洞检测方法,一方面在第一进程名称和所述第二进程名称相同的情况下确定web应用框架漏洞信息,可以准确、及时地检测当前运行的进程所调用的框架漏洞信息,而并不会对已安装但未使用的框架进行检测,因此有效提高了漏洞检测的有效性,一定程度上节省了运算资源,提高了漏洞检测结果的准确性和有效性。另一方面,基于框架版本信息和路径信息确定web应用框架漏洞信息,使得web应用框架漏洞信息中包括框架的路径信息,便于迅速定位框架位置并进行及时修复,能够在发现漏洞的第一时间减小或避免漏洞造成的损失,有效提高了框架漏洞的修复效率。
本申请实施例中,步骤S201中所述根据服务器中目标web应用的程序的导入函数,获取以所述程序运行的第一进程的第一进程名称包括:
S301:基于钩子函数劫持所述导入函数,得到所述导入函数的导入对象名称及第一进程名称,其中,所述导入对象名称包括类名、函数名或框架名称中的任意一种。
S302:基于所述导入对象名称确定框架版本信息。
本申请实施例中,通过设置钩子函数劫持导入函数,可以在导入函数被运行前或运行后获取得到所述导入函数的导入对象名称及第一进程名称。所述导入对象名称包括类名、函数名或框架名称中的任意一种,其中,所述类名、函数名或框架名称为web应用对应的编程语言的程序中加载的类名、函数名或框架名称。在一些实施例中,若web应用对应的编程语言为Python,则所述导入函数为import函数。基于钩子函数劫持所述导入函数,得到所述导入函数的导入对象名称及第一进程名称可以包括,基于钩子函数劫持所述导入函数对应的底层函数动态获取导入对象名称及第一进程名称。其中,导入函数import函数对应的底层函数可以包括importlib.import_module()。基于所述导入对象名称确定框架版本信息可以包括,判断所述导入对象名称是否为框架名称,若是则基于所述对象名称确定框架版本信息。本申请实施例中可以通过排除类名、函数名的方式确定导入对象名称是否为框架名称,还可以通过将导入对象名称与框架名称信息库进行匹配确定导入对象名称是否为框架名称。
本申请实施例中通过设置钩子函数获取导入对象名称及第一进程名称,进而基于所述导入对象名称确定框架版本信息,由于钩子函数获取到的框架一定为当前运行的框架,因此有效避免了获取到的框架中包含已安装但未使用的框架,有效提高了框架漏洞检测的有效性,且一定程度上节省了运算资源。
本申请实施例中,步骤S302中所述基于所述导入对象名称确定框架版本信息包括:
S401:判断框架名称信息库中是否存在所述导入对象名称,其中,所述框架名称信息库基于所述目标web应用对应编程语言的框架名称构建得到。
S403:若存在,则确定所述导入对象名称为框架名称,并基于所述框架名称确定框架版本信息。
本申请实施例中,所述框架名称信息库基于所述目标web应用对应编程语言的框架名称构建得到,包括常用框架名称及其相应的框架信息。将导入对象名称与框架名称信息库进行匹配,判断框架名称信息库中是否存在所述导入对象名称,若存在,则确定所述导入对象名称为框架名称,并基于所述框架名称确定框架版本信息。本申请实施例中,针对于目标web应用而言,常用框架数量较少,因此基于框架名称信息库可以有效确认所述导入对象名称是否为框架名称,若所述导入对象名称为类名或函数名可以进行及时排除,提高了漏洞检测的效率。
本申请实施例中,所述基于所述框架名称确定框架版本信息包括:
S501:基于所述框架名称确定框架的存储位置信息。
S503:基于所述框架的存储位置信息确定所述框架版本信息。
本申请实施例中,确定所述框架名称后,可以以所述框架名称为关键字在目标存储位置中进行搜索,得到所述框架的存储位置信息。获取所述存储位置信息后,基于所述框架的存储位置信息可以获取所述框架的详细信息,进而得到所述框架版本信息。
本申请实施例中,所述基于所述框架名称确定框架的存储位置信息包括:
S601:基于所述框架名称确定目录数据库中的框架存储目录信息,所述目录数据库包括当前运行所述目标web应用的程序进程目录、所述目标web应用的程序导入目录、静态链接库目录、第三方模块安装目录中的至少一个。
S603:基于所述框架存储目录信息确定所述框架的存储位置信息。
本申请实施例中,所述目录数据库包括所述框架对应的存储目录信息,基于所述框架名称可以确定目录数据库中的框架存储目录信息,框架的存储信息包含在所述框架存储目录信息中,因此可以基于所述框架存储目录信息确定所述框架的存储位置信息。本申请实施例中,目录数据库包括当前运行所述目标web应用的程序进程目录、所述目标web应用的程序导入目录、静态链接库目录、第三方模块安装目录中的至少一个。
在一些具体实施例中,若所述web应用对应的编程语言为Python,则基于所述框架名称确定框架的存储位置信息包括,通过import导入函数基于框架名称在目录数据库中查找框架的存储目录信息,所述目录数据库包括目标web应用的程序进程所在目录、$PYTHONPATH(目标web应用的程序导入目录)、Lib库目录(静态链接库目录)、site-package(Python包)第三方模块路径中的至少一个。通过遍历上述目录数据库后确定与所述框架名称匹配的框架存储目录信息,再进一步基于所述框架名称和所述框架存储目录信息得到框架存储位置信息,进而确定框架版本信息。
本申请实施例中,所述获取所述服务器中至少一个web应用所对应的第二进程的第二进程名称包括:
S701:获取进程信息虚拟文件目录中当前运行程序的进程号信息。
S703:确定对应于所述进程号信息的进程名称作为所述第二进程名称。
本申请实施例中,所述进程信息虚拟文件目录中包括当前运行的web应用对应的进程信息。获取进程信息虚拟文件目录中当前运行程序的进程号信息,并确定对应于所述进程号信息的进程名称作为所述第二进程名称。在一些实施例中,获取所述服务器中至少一个web应用所对应的第二进程的第二进程名称包括,遍历进程信息虚拟文件目录/proc/目录得到当前运行程序的进程号信息,基于所述进程号信息遍历进程号目录/proc/进程号/中对应于所述进程号信息的进程名称作为所述第二进程名称。
为更精准、及时地溯源漏洞产生位置,更及时修复漏洞或减小漏洞造成的损失,本申请实施例中,所述基于所述第一进程的框架版本信息和所述第二进程的路径信息,确定所述目标web应用的框架漏洞信息还包括:
S801:获取所述目标web应用的框架漏洞对应的程序参数信息,所述程序参数信息包括用户信息和端口信息。
S901:基于所述第一进程的框架版本信息、所述第二进程的路径信息和所述程序参数信息确定目标web应用的框架漏洞信息,所述目标web应用的框架漏洞信息包括漏洞路径信息、漏洞用户信息和漏洞端口信息。
本申请实施例中,获取所述目标web应用的框架漏洞对应的程序参数信息包括,获取所述服务器中至少一个web应用所对应的第二进程的进程参数信息,将所述第一进程名称和所述第二进程名称进行比较,在所述第一进程名称和所述第二进程名称相同的情况下,将所述进程参数信息作为所述目标web应用的框架漏洞对应的程序参数信息。所述程序参数信息包括用户信息和端口信息。本申请实施例中,基于所述第一进程的框架版本信息、所述第二进程的路径信息和所述程序参数信息确定目标web应用的框架漏洞信息,所述目标web应用的框架漏洞信息包括漏洞路径信息、漏洞用户信息和漏洞端口信息。本申请实施例中,确定的框架漏洞信息中,漏洞路径信息、漏洞用户信息和漏洞端口信息可以在框架漏洞产生时迅速定位到漏洞对应的服务器、进程、端口,提高漏洞修复效率和及时率。
本申请实施例中,在所述基于所述第一进程的框架版本信息、所述第二进程的路径信息和所述程序参数信息确定web应用框架漏洞信息之后,还包括:
S901:基于所述目标web应用的框架漏洞信息确定漏洞来源信息和漏洞修复信息,所述漏洞来源信息包括服务器信息和/或端口信息。
S903:基于所述漏洞来源信息和漏洞修复信息修复所述目标web应用的框架漏洞。
本申请实施例中,基于所述目标web应用的框架漏洞信息可以确定漏洞来源信息和漏洞修复信息。所述漏洞来源信息包括服务器信息和/或端口信息。所述漏洞修复信息包括基于框架版本信息确定的该版本中相应漏洞的修复信息。基于所述漏洞来源信息和漏洞修复信息修复所述目标web应用的框架漏洞可以包括,基于所述漏洞来源信息定位漏洞对应的服务器、进程、端口后,基于漏洞修复信息对所述目标web应用的框架漏洞进行修复。
本申请实施例一方面可以通过实时获取第一进程和第二进程相关信息,及时检测出当前运行web应用的程序中出现的框架漏洞,另一方面还可以在漏洞产生时第一时间溯源漏洞产生的位置,并通过获取漏洞版本信息确定漏洞修复信息,及时、高效地修复如0day漏洞等框架漏洞。
本申请一个具体的实施例中,如图3所示为web应用框架漏洞检测系统的结构示意图。web应用程序中设置相互连接的劫持模块和信息发送模块,用于劫持import导入函数对应的底层函数得到框架名称信息并发送至信息发送模块,信息发送模块用于将所述框架名称信息发送至框架采集系统中。框架采集系统包括分别与关联分析模块连接的接收劫持信息模块、采集系统程序信息模块和提取框架路径模块,所述接收劫持信息模块还与所述信息发送模块连接,所述提取框架路径模块还与提取框架版本模块连接。其中,所述接收劫持信息模块用于接收所述劫持模块劫持到的框架名称信息。所述采集系统程序信息模块用于采集服务器上程序进程信息。所述关联分析模块用于将劫持到的框架名称信息和采集到的程序进程信息进行关联分析,确定框架的进程的详细信息。所述提取框架路径模块用于根据框架名称信息、进程的详细信息提取框架应用路径信息、框架安装路径信息。所述提取框架版本模块用于根据所述框架安装路径信息进一步提取框架的版本信息。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的web应用框架漏洞检测方法的web应用框架漏洞检测装置1100。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个web应用框架漏洞检测装置1100实施例中的具体限定可以参见上文中对于web应用框架漏洞检测方法的限定,在此不再赘述。
在一个实施例中,如图4所示,提供了一种web应用框架漏洞检测装置1100,包括:
框架版本信息确定模块1101,用于根据服务器中目标web应用的程序的导入函数,获取以所述程序运行的第一进程的第一进程名称和框架版本信息;
路径信息确定模块1102,用于获取所述服务器中至少一个web应用所对应的第二进程的第二进程名称和所述第二进程的路径信息;
框架漏洞信息确定模块1103,用于将所述第一进程名称和所述第二进程名称进行比较,在所述第一进程名称和所述第二进程名称相同的情况下,基于所述第一进程的框架版本信息和所述第二进程的路径信息,确定所述目标web应用的框架漏洞信息。
上述web应用框架漏洞检测装置1100中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现上述任一实施例所述的web应用框架漏洞检测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例所述的web应用框架漏洞检测方法。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述的web应用框架漏洞检测方法。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种web应用框架漏洞检测方法,其特征在于,所述方法包括:
根据服务器中目标web应用的程序的导入函数,获取以所述程序运行的第一进程的第一进程名称和框架版本信息;
获取所述服务器中至少一个web应用所对应的第二进程的第二进程名称和所述第二进程的路径信息;
将所述第一进程名称和所述第二进程名称进行比较,在所述第一进程名称和所述第二进程名称相同的情况下,基于所述第一进程的框架版本信息和所述第二进程的路径信息,确定所述目标web应用的框架漏洞信息。
2.根据权利要求1所述的方法,其特征在于,所述根据服务器中目标web应用的程序的导入函数,获取以所述程序运行的第一进程的第一进程名称包括:
基于钩子函数劫持所述导入函数,得到所述导入函数的导入对象名称及第一进程名称,其中,所述导入对象名称包括类名、函数名或框架名称中的任意一种;
基于所述导入对象名称确定框架版本信息。
3.根据权利要求2所述的方法,其特征在于,所述基于所述导入对象名称确定框架版本信息包括:
判断框架名称信息库中是否存在所述导入对象名称,其中,所述框架名称信息库基于所述目标web应用对应程序语言的框架名称构建得到;
若存在,则确定所述导入对象名称为框架名称,并基于所述框架名称确定框架版本信息。
4.根据权利要求3所述的方法,其特征在于,所述基于所述框架名称确定框架版本信息包括:
基于所述框架名称确定框架的存储位置信息;
基于所述框架的存储位置信息确定所述框架版本信息。
5.根据权利要求4所述的方法,其特征在于,所述基于所述框架名称确定框架的存储位置信息包括:
基于所述框架名称确定目录数据库中的框架存储目录信息,所述目录数据库包括当前运行所述目标web应用的程序进程目录、所述目标web应用的程序导入目录、静态链接库目录、第三方模块安装目录中的至少一个;
基于所述框架存储目录信息确定所述框架的存储位置信息。
6.根据权利要求1所述的方法,其特征在于,所述获取所述服务器中至少一个web应用所对应的第二进程的第二进程名称包括:
获取进程信息虚拟文件目录中当前运行程序的进程号信息;
确定对应于所述进程号信息的进程名称作为所述第二进程名称。
7.根据权利要求1所述的方法,其特征在于,所述基于所述第一进程的框架版本信息和所述第二进程的路径信息,确定所述目标web应用的框架漏洞信息还包括:
获取所述目标web应用的框架漏洞对应的程序参数信息,所述程序参数信息包括用户信息和端口信息;
基于所述第一进程的框架版本信息、所述第二进程的路径信息和所述程序参数信息确定目标web应用的框架漏洞信息,所述目标web应用的框架漏洞信息包括漏洞路径信息、漏洞用户信息和漏洞端口信息。
8.根据权利要求7所述的方法,其特征在于,在所述基于所述第一进程的框架版本信息、所述第二进程的路径信息和所述程序参数信息确定web应用框架漏洞信息之后,还包括:
基于所述目标web应用的框架漏洞信息确定漏洞来源信息和漏洞修复信息,所述漏洞来源信息包括服务器信息和/或端口信息;
基于所述漏洞来源信息和漏洞修复信息修复所述目标web应用的框架漏洞。
9.一种web应用框架漏洞检测装置,其特征在于,所述装置包括:
框架版本信息确定模块,用于根据服务器中目标web应用的程序的导入函数,获取以所述程序运行的第一进程的第一进程名称和框架版本信息;
路径信息确定模块,用于获取所述服务器中至少一个web应用所对应的第二进程的第二进程名称和所述第二进程的路径信息;
框架漏洞信息确定模块,用于将所述第一进程名称和所述第二进程名称进行比较,在所述第一进程名称和所述第二进程名称相同的情况下,基于所述第一进程的框架版本信息和所述第二进程的路径信息,确定所述目标web应用的框架漏洞信息。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310181498.5A CN116226866A (zh) | 2023-02-23 | 2023-02-23 | web应用框架漏洞检测方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310181498.5A CN116226866A (zh) | 2023-02-23 | 2023-02-23 | web应用框架漏洞检测方法、装置及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116226866A true CN116226866A (zh) | 2023-06-06 |
Family
ID=86580206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310181498.5A Pending CN116226866A (zh) | 2023-02-23 | 2023-02-23 | web应用框架漏洞检测方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116226866A (zh) |
-
2023
- 2023-02-23 CN CN202310181498.5A patent/CN116226866A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107852412B (zh) | 用于网络钓鱼和品牌保护的系统和方法、计算机可读介质 | |
US8793506B2 (en) | Mechanism for facilitating encryption-free integrity protection of storage data at computing systems | |
US9177129B2 (en) | Devices, systems, and methods for monitoring and asserting trust level using persistent trust log | |
CN104866770B (zh) | 敏感数据扫描方法和系统 | |
CN110474900B (zh) | 一种游戏协议测试方法及装置 | |
US11580294B2 (en) | Techniques for web framework detection | |
US20180124109A1 (en) | Techniques for classifying a web page based upon functions used to render the web page | |
CN104115117A (zh) | 用于安全性测试的单元测试的自动合成 | |
CN108418797B (zh) | 网页访问方法、装置、计算机设备和存储介质 | |
CN112491602A (zh) | 行为数据的监控方法、装置、计算机设备及介质 | |
US9021596B2 (en) | Correcting workflow security vulnerabilities via static analysis and virtual patching | |
CN110677506B (zh) | 网络访问方法、装置、计算机设备及存储介质 | |
CN106502707B (zh) | 代码生成方法及装置 | |
CN108228611B (zh) | 单据信息抄写方法和装置 | |
CN116226866A (zh) | web应用框架漏洞检测方法、装置及计算机设备 | |
CN115017436A (zh) | 应用程序的数据交互方法、装置、计算机设备和存储介质 | |
CN113986921A (zh) | 一种黑名单查询方法、系统、电子设备及存储介质 | |
CN114357032A (zh) | 一种数据质量监控方法、装置、电子设备及存储介质 | |
CN113297028A (zh) | 一种脚本执行方法、装置、计算机设备及存储介质 | |
CN107644043B (zh) | 网银快捷导航设置方法及系统 | |
CN113867975B (zh) | 一种命令行的快速响应方法、装置和计算机设备 | |
CN116932139A (zh) | 容器镜像检测方法、系统和计算机设备 | |
CN116432229A (zh) | 浏览器防截屏方法、装置、计算机设备、介质和程序产品 | |
CN114117371A (zh) | 访问权限检测方法、装置、计算机设备和存储介质 | |
CN117439769A (zh) | 页面访问方法、装置、计算机设备和存储介质 |
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 |