CN114765599A - 子域名采集方法、装置 - Google Patents

子域名采集方法、装置 Download PDF

Info

Publication number
CN114765599A
CN114765599A CN202110041649.8A CN202110041649A CN114765599A CN 114765599 A CN114765599 A CN 114765599A CN 202110041649 A CN202110041649 A CN 202110041649A CN 114765599 A CN114765599 A CN 114765599A
Authority
CN
China
Prior art keywords
domain name
sub
response data
page response
root
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.)
Granted
Application number
CN202110041649.8A
Other languages
English (en)
Other versions
CN114765599B (zh
Inventor
唐文韬
甘祥
郑兴
范宇河
郭晶
申军利
彭婧
刘羽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110041649.8A priority Critical patent/CN114765599B/zh
Publication of CN114765599A publication Critical patent/CN114765599A/zh
Application granted granted Critical
Publication of CN114765599B publication Critical patent/CN114765599B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请的实施例提供了一种子域名采集方法、装置。该方法包括:从预设任务队列中获取目标域名,所述目标域名包括根域名;确定与所述目标域名对应的URL地址,以通过对所述URL地址发送第一网络请求,获取与所述第一网络请求对应的页面响应数据;对所述页面响应数据进行解析,以从所述页面响应数据中得到所述根域名的第一子域名;将所述第一子域名存储至预设数据库。本申请实施例的技术方案可以提高对子域名采集的全面性。

Description

子域名采集方法、装置
技术领域
本申请涉及计算机及信息安全技术领域,具体而言,涉及一种子域名采集方法、装置。
背景技术
当前在信息安全监控场景中,例如在企业信息安全的监控场景,为减少监控盲点,需要尽可能的采集企业的域名信息。在现有技术中,通常基于DNS协议枚举查询目标企业域名的子域名,然而,依赖枚举关键词字典丰富度,容易导致域名采集不够全面。基于此,如何能够提高对子域名采集的全面性是亟待解决的技术问题。
发明内容
本申请的实施例提供了一种子域名采集方法、装置、计算机程序产品或计算机程序、计算机可读介质及电子设备,进而至少在一定程度上可以提高对子域名采集的全面性。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种子域名采集方法,所述方法包括:从预设任务队列中获取目标域名,所述目标域名包括根域名;确定与所述目标域名对应的URL地址,以通过对所述URL地址发送第一网络请求,获取与所述第一网络请求对应的页面响应数据;对所述页面响应数据进行解析,以从所述页面响应数据中得到所述根域名的第一子域名;将所述第一子域名存储至预设数据库。
根据本申请实施例的一个方面,提供了一种子域名采集装置,所述装置包括:第一获取单元,被用于从预设任务队列中获取目标域名,所述目标域名包括根域名;确定单元,被用于确定与所述目标域名对应的URL地址,以通过对所述URL地址发送第一网络请求,获取与所述第一网络请求对应的页面响应数据;解析单元,被用于对所述页面响应数据进行解析,以从所述页面响应数据中得到所述根域名的第一子域名;第一存储单元,被用于将所述第一子域名存储至预设数据库。
在本申请的一些实施例中,基于前述方案,所述装置还包括:第二获取单元,被用于所述目标域名还包括第二子域名,在从预设任务队列中获取目标域名之前,获取根域名,并通过预定子域名探测方式,对所述根域名的子域名进行探测,得到所述根域名的第二子域名;第二存储单元,被用于将所述第二子域名添加至所述预设任务队列中,并将所述第二子域名存储至所述预设数据库。
在本申请的一些实施例中,基于前述方案,所述预定子域名探测方式包括如下至少一种:向预定搜索引擎发送子域名搜索请求,所述子域名搜索请求包括所述根域名的关键字,接收所述预定搜索引擎返回的子域名搜索响应,对所述子域名搜索响应进行正则表达式匹配,以匹配出的所述根域名的第二子域名;向本地DNS服务器发送DNS查询命令,所述DNS查询命令中包括所述根域名,接收所述本地DNS服务器返回的DNS查询响应,以在所述DNS查询响应中确定所述根域名的第二子域名;获取常用子域名字典,对所述常用子域名字典中的子域名进行枚举,以得到所述根域名的第二子域名。
在本申请的一些实施例中,基于前述方案,所述装置还包括提取单元,被用于在对所述页面响应数据进行解析之前,在所述页面响应数据中提取同源URL地址,所述同源URL地址为符合所述目标域名同源策略的URL地址;发送单元,被用于通过对所述同源URL地址发送第二网络请求,获取与所述第二网络请求对应的页面响应数据。
在本申请的一些实施例中,基于前述方案,所述提取单元配置为:在获取与所述第二网络请求对应的页面响应数据之后,将与所述第二网络请求对应的页面响应数据作为新的页面响应数据,返回执行在所述页面响应数据中提取同源URL地址的步骤,直至在与所述第二网络请求对应的页面响应数据中不存在未提取过的同源URL地址。
在本申请的一些实施例中,基于前述方案,所述解析单元配置为:从所述页面响应数据中确定代码字符串;按照预设的子域名提取规则,在所述代码字符串中提取所述根域名的互不重复的子域名作为第一子域名。
在本申请的一些实施例中,基于前述方案,所述页面响应数据中包括响应头数据和响应体数据,所述解析单元配置为:从所述响应头数据和所述响应体数据中确定代码字符串。
在本申请的一些实施例中,基于前述方案,所述第一存储单元配置为:在所述预设数据库中不存在与所述第一子域名重复的域名时,将所述第一子域名存储至预设数据库。
在本申请的一些实施例中,基于前述方案,所述第一获取单元配置为:在将所述第一子域名存储至预设数据库之后,将所述第一子域名添加至所述预设任务队列中;将添加至所述预设任务队列中的第一子域名作为新的目标域名,返回执行从预设任务队列中获取目标域名的步骤,直至在所述预设任务队列中不存在目标域名。
根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中所述的子域名采集方法。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的子域名采集方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的子域名采集方法。
在本申请的一些实施例所提供的技术方案中,通过确定并访问与任务队列中根域名所对应的URL地址,获取对应的页面响应数据,并通过对页面响应数据进行解析,可以得到根域名的第一子域名,将所述第一子域名存储至预设数据库。由于通过已知域名的URL地址所对应网络请求获取的页面响应数据中包括有与根域名相关的大量子域名,因此,从页面响应数据中采集根域名的第一子域名可以弥补了传统子域名采集方法的不足,提高对子域名采集的全面性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;
图2示出了根据本申请一个实施例的子域名采集方法的流程图;
图3示出了根据本申请一个实施例的在从预设任务队列中获取目标域名之前的方法流程图;
图4示出了根据本申请一个实施例的在对所述页面响应数据进行解析之前的方法流程图;
图5示出了根据本申请一个实施例的对所述页面响应数据进行解析的细节流程图;
图6示出了根据本申请一个实施例的在将所述第一子域名存储至预设数据库之后的方法流程图;
图7示出了根据本申请一个实施例的子域名采集方法的整体流程图;
图8示出了根据本申请一个实施例的企业子域名采集的场景图;
图9示出了根据本申请一个实施例的企业Web漏洞扫描整合的场景图;
图10示出了根据本申请一个实施例的子域名采集装置的框图;
图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是:在本文中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
需要注意的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的对象在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在图示或描述的那些以外的顺序实施。
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
如图1所示,系统架构可以包括终端设备(如图1中所示智能手机101、平板电脑102和便携式计算机103中的一种或多种,当然也可以是其它具有定位功能的终端设备,例如水表、电表等等)、网络104和服务器105。网络104用以在终端设备和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线通信链路、无线通信链路等等。
在本申请的一个实施例中,可以是服务器105在接收来自终端设备的子域名采集请求之后,从预设任务队列中获取目标域名,其中,所述目标域名包括根域名,然后服务器105确定与所述目标域名对应的URL地址,并通过对所述URL地址发送第一网络请求,获取与所述第一网络请求对应的页面响应数据,最后,服务器105对所述页面响应数据进行解析,从所述页面响应数据中得到所述根域名的第一子域名,并将所述第一子域名存储至预设数据库。
需要说明的是,本申请实施例所提供的子域名采集方法可以由服务器105执行,相应地,子域名采集装置一般设置于服务器105中。但是,在本申请的其它实施例中,终端设备也可以与服务器具有相似的功能,从而执行本申请实施例所提供的子域名采集方案。
还需要说明的是,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此,本申请在此不做限制。
需要解释的是,如上所述的云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展。通过建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图2示出了根据本申请一个实施例的子域名采集方法的流程图,该子域名采集方法可以由具有计算处理功能的设备来执行,比如可以由图1中所示的服务器105来执行。参照图2所示,该子域名采集方法至少包括步骤220至步骤280,详细介绍如下:
在步骤220中,从预设任务队列中获取目标域名,所述目标域名包括根域名。
在本申请中,可以使用Redis服务的List结构来作为预设任务队列。
在本申请中,所述目标域名还可以包括第二子域名,在从预设任务队列中获取目标域名之前,可以首先在预设任务队列中配置已知的根域名和根域名的子域名(即第二子域名)。
在本申请中,所述根域名可以是指企业的根域名,一般是一级域名/顶级域名的二级域名,其根域名中可以包括有一个“.”,比如“a.com”,还比如“b.cn”。
在本申请中,子域名可以是企业根域名的子域名,一般包括两个“.”或者包括一个“.”和一个“/”。比如a.b.com,还比如c.d.cn。需要说明的是,在一些特殊情况下,子域名也可以包括三级域名、四级域名等等,比如a.b.c.com。
在本申请中,从预设任务队列中获取的目标域名可以是根域名,也可以是根域名的子域名。
在本申请的一个实施例中,在预设任务队列中配置已知的根域名和根域名的子域名,可以按照如图3所示的步骤执行。
参见图3,示出了根据本申请一个实施例的在从预设任务队列中获取目标域名之前的方法流程图。具体包括步骤211至212:
在步骤211中,获取根域名,并通过预定子域名探测方式,对所述根域名的子域名进行探测,得到所述根域名的第二子域名。
在步骤212中,将所述第二子域名添加至所述预设任务队列中,并将所述第二子域名存储至所述预设数据库。
在本实施例中,所述预定子域名探测方式包括如下至少一种:
第一种、向预定搜索引擎发送子域名搜索请求,所述子域名搜索请求包括所述根域名的关键字,接收所述预定搜索引擎返回的子域名搜索响应,对所述子域名搜索响应进行正则表达式匹配,以匹配出的所述根域名的第二子域名。
具体的,预定搜索引擎可以是目前已有以及以后可能出现的任何可能的搜索引擎,可以理解的是,由于存在的搜索引擎众多,可以只向其中一个搜索引擎发送子域名搜索请求,也可以向多个不同的搜索引擎发送子域名搜索请求。
假设需要搜索采集根域名a.com的子域名,则该子域名搜索请求中可以包括“a.com”的关键字。然后接收预定搜索引擎返回的子域名搜索响应,对子域名搜索响应进行正则表达式匹配,匹配出根域名的子域名,获得子域名搜索结果。
在向多个搜索引擎发送了子域名搜索请求的情况下,这里的子域名搜索结果,可以是包括多个搜索引擎返回的子域名搜索响应对应的子域名搜索结果,也可以在收到多个搜索引擎返回的子域名搜索响应之后,对各搜索引擎的子域名搜索响应匹配得到的子域名进行整合,获得子域名搜索结果。
第二种、向本地DNS服务器发送DNS查询命令,所述DNS查询命令中包括所述根域名,接收所述本地DNS服务器返回的DNS查询响应,以在所述DNS查询响应中确定所述根域名的第二子域名。
具体的,DNS查询命令,可以是采用任何可能的命令形式,例如要搜索采集根域名为a.com的子域名,则该DNS查询命令的形式可以为nslookup-qt=any a.com命令。其中,本地DNS服务器查询到的所述根域名的子域名,可以是所述本地DNS服务器通过MX记录(邮件路由记录)或者CNAME记录(别名记录)进行DNS域名解析获得的所述根域名的子域名。
第三种、获取常用子域名字典,对所述常用子域名字典中的子域名进行枚举,以得到所述根域名的第二子域名。
具体的,可以获取常用的子域名字典,对所述常用子域名字典中的子域名进行枚举,枚举出所述根域名存在的子域名,获得子域名枚举结果。本领域技术人员应该理解的是,通过枚举的方式,可以对可能存在的子域名进行猜测,例如需要采集根域名a.com的子域名,可以依次尝试b.a.com、c.test.com、d.test.com等等,从而枚举出根域名存在的子域名。
在获取到所述根域名的第二子域名之后,则可以将所述第二子域名添加至所述预设任务队列中,并将所述第二子域名存储至所述预设数据库。
在本申请中,将通过多个维度的子域名获取方式获取的子域名配置在预设任务队列中,并将其存储至预设数据库中,可以初步确定子域名的分布情况,拓宽子域名的来源,并提高对子域名进行采集的全面性。
在步骤240中,确定与所述目标域名对应的URL地址,以通过对所述URL地址发送第一网络请求,获取与所述第一网络请求对应的页面响应数据。
在本申请中,目标域名对应的URL地址,即指目标域名对应的链接。通过对所述链接发送第一网络请求(例如HTTP请求),可以获取对应的页面响应数据。
具体的,所述页面响应数据中可以包括响应头数据和响应体数据(页面内容),在本申请中,响应头数据和响应体数据中均可以包含有关于域名的字段。
在步骤260中,对所述页面响应数据进行解析,以从所述页面响应数据中得到所述根域名的第一子域名。
在本申请的一个实施例中,在对所述页面响应数据进行解析之前,可以执行如图4所示的步骤。
参见图4,示出了根据本申请一个实施例的在对所述页面响应数据进行解析之前的方法流程图。具体包括步骤251至252:
在步骤251中,在所述页面响应数据中提取同源URL地址,所述同源URL地址为符合所述目标域名同源策略的URL地址。
在步骤252中,通过对所述同源URL地址发送第二网络请求,获取与所述第二网络请求对应的页面响应数据。
在本申请中,本领域技术人员应该理解的是,同源策略是指URL地址(链接)的协议,域名,以及端口相同,例如,www.a.com/test/index.html为www.a.com/dir/page.html的同源URL地址。
在本实施例中,在获取与所述第二网络请求对应的页面响应数据之后,可以将与所述第二网络请求对应的页面响应数据作为新的页面响应数据,返回执行在所述页面响应数据中提取同源URL地址的步骤,直至在与所述第二网络请求对应的页面响应数据中不存在未提取过的同源URL地址。
在本申请中,通过循环执行步骤251至252来进一步获取页面响应数据,可以提升获取页面响应数据的效率,丰富页面响应数据的内容,从而进一步提高对子域名采集的全面性。
在本申请的一个实施例中,对所述页面响应数据进行解析,以从所述页面响应数据中得到所述根域名的第一子域名,可以按照如图5所示的步骤执行。
参见图5,示出了根据本申请一个实施例的对所述页面响应数据进行解析的细节流程图。具体包括步骤261至262:
在步骤261中,从所述页面响应数据中确定代码字符串。
在步骤262中,按照预设的子域名提取规则,在所述代码字符串中提取所述根域名的互不重复的子域名作为第一子域名。
由于所述页面响应数据中可以包括响应头数据和响应体数据,基于此,在本实施例中,从所述页面响应数据中确定代码字符串可以是从所述响应头数据和所述响应体数据中确定代码字符串。
在本申请中,可以从响应头数据的Set-Cookie字段值(字符串)中查找其子域名,直到找到最后一个子域名为止,并将结果去重。
在本申请中,可以从响应体数据的代码字符串中根据预置的目标域名查找其子域名,以作为第一子域名,直到找到最后一个子域名为止,并将查找结果去重。
在步骤280中,将所述第一子域名存储至预设数据库。
在本申请的一个实施例中,将所述第一子域名存储至预设数据库,可以是在所述预设数据库中不存在与所述第一子域名重复的域名时,将所述第一子域名存储至预设数据库。
在本申请中,将不与预设数据库中的域名重复的第一子域名存储至预设数据库,可以防止预设数据库中采集的子域名出现冗余,从而节省预设数据库的存储空间。
在本申请的一个实施例中,在将所述第一子域名存储至预设数据库之后,还可以执行如图6所示的步骤。
参见图6,示出了根据本申请一个实施例的在将所述第一子域名存储至预设数据库之后的方法流程图。具体包括步骤291至292:
在步骤291中,将所述第一子域名添加至所述预设任务队列中。
在步骤292中,将添加至所述预设任务队列中的第一子域名作为新的目标域名,返回执行从预设任务队列中获取目标域名的步骤,直至在所述预设任务队列中不存在目标域名。
在本申请中,通过以预设任务队列中最初已知的域名为基础,通过循环迭代的方式执行步骤220至步骤280,使得从各个页面响应数据中爬取所述根域名的子域名,可以最大限度的采集子域名,从而提高对子域名采集的全面性和准确性。
为了使本领域技术人员更好的理解本申请,下面结合图7对本申请中提出的子域名采集方案进行阐述:
参见图7,示出了根据本申请一个实施例的子域名采集方法的整体流程图。具体包括步骤701至710:
在步骤701中,获取被采集子域名对应的目标根域名。
在步骤702中,将目标根域名配置在域名收集任务队列。此外,也可以基于子域名提取规则(例如向预定搜索引擎发送子域名搜索请求的方式、向本地DNS服务器发送DNS查询命令的方式、对所述常用子域名字典中的子域名进行枚举的方式)预先获取目标根域名的子域名,并将子域名收集任务队列。
在步骤703中,将当前配置的目标根域名或或目标根域名的子域名加入并拼接域名开放的Web端口服务根目录对应的URL地址,如常用Web服务端口根目录地址:“http://域名:80/”和“https://域名:443/”。
在步骤704中,对URL地址发出网络请求(例如HTTP请求),获取页面响应数据。
在步骤705中,通过Web响应头抓取和解析模块,使用子域名提取规则中的各个规则进行迭代检索和匹配,提取Web响应头字段(主要是Set-Cookie字段)值中对应的子域名,得到子域名列表。
在步骤706中,通过Web响应体抓取和解析模块,使用子域名提取规则中的各个规则进行迭代检索和匹配,提取中页面字符串中对应的子域名,得到子域名列表。
在步骤707中,通过Web站点页面爬行模块,解析响应体数据(页面内容)中符合当前页面域名同源策略的URL地址,对其进行采集暂存,并执行步骤704,步骤705,步骤706,步骤707,以提升子域名采集效率。
在步骤708中,判断子域名列表中的子域名是否重复。
在步骤709中,若和已采集的子域名重复,则丢弃重复的子域名。
在步骤710中,若和已采集的子域名不重复,则将不重复的子域名存储到本地数据库,并将不重复的子域名添加至域名收集任务队列,循环执行步骤702至步骤710,直到域名采集任务队列中不存在域名,此时子域名采集流程结束。
如上所述的实施例中的子域名信息收集方法,可以应用在任何需要收集子域名信息的应用环境,例如在资产信息的收集、威胁情报的收集、漏洞扫描等等。
其中一个应用环境,可以用于企业资产信息的收集,图8示出了根据本申请一个实施例的企业子域名采集的场景图。对于大型企业的信息安全管理系统,需要收集企业的资产列表(IP、域名、端口、应用、人员等)信息,以便于在出现安全事件时能够第一时间响应。本实施例方案提供的域名信息收集方法,可以很方便地获得企业的子域名分布和人员信息外泄情况,实现资产可控,风险可控,提高安全性。
另一个应用环境,用于Web漏洞的扫描,以提高安全性,图9示出了根据本申请一个实施例的企业Web漏洞扫描整合的场景图。在通过域名信息获得企业的子域名后,如图9所示,Web漏洞扫描器可以通过域名获得企业资产漏洞扫描入口,这样Web漏洞扫描器就可以达到很好的覆盖面,及时扫描所有域名,提升的扫描和安全评估的覆盖率,实现更好的扫描效果,以提高安全性。
如上所述,本实施例中提供的域名信息收集方法及域名信息收集装置,可以应用到需要收集域名信息的终端和服务器,如上述信息安全管理系统所在的终端或服务器、上述Web漏洞服务器等等。
在本申请的一些实施例所提供的技术方案中,通过确定并访问与任务队列中根域名所对应的URL地址,获取对应的页面响应数据,并通过对页面响应数据进行解析,可以得到根域名的第一子域名,将所述第一子域名存储至预设数据库。由于通过已知域名的URL地址所对应网络请求获取的页面响应数据中包括有与根域名相关的大量子域名,因此,从页面响应数据中采集根域名的第一子域名可以弥补了传统子域名采集方法的不足,提高对子域名采集的全面性。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的子域名采集方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的子域名采集方法的实施例。
图10示出了根据本申请的一个实施例的子域名采集装置的框图。
参照图10所示,根据本申请的一个实施例的子域名采集装置1000,包括:第一获取单元1001、确定单元1002、解析单元1003和第一存储单元1004。
其中,第一获取单元1001,被用于从预设任务队列中获取目标域名,所述目标域名包括根域名;确定单元1002,被用于确定与所述目标域名对应的URL地址,以通过对所述URL地址发送第一网络请求,获取与所述第一网络请求对应的页面响应数据;解析单元1003,被用于对所述页面响应数据进行解析,以从所述页面响应数据中得到所述根域名的第一子域名;第一存储单元1004,被用于将所述第一子域名存储至预设数据库。
在本申请的一些实施例中,基于前述方案,所述装置还包括:第二获取单元,被用于所述目标域名还包括第二子域名,在从预设任务队列中获取目标域名之前,获取根域名,并通过预定子域名探测方式,对所述根域名的子域名进行探测,得到所述根域名的第二子域名;第二存储单元,被用于将所述第二子域名添加至所述预设任务队列中,并将所述第二子域名存储至所述预设数据库。
在本申请的一些实施例中,基于前述方案,所述预定子域名探测方式包括如下至少一种:向预定搜索引擎发送子域名搜索请求,所述子域名搜索请求包括所述根域名的关键字,接收所述预定搜索引擎返回的子域名搜索响应,对所述子域名搜索响应进行正则表达式匹配,以匹配出的所述根域名的第二子域名;向本地DNS服务器发送DNS查询命令,所述DNS查询命令中包括所述根域名,接收所述本地DNS服务器返回的DNS查询响应,以在所述DNS查询响应中确定所述根域名的第二子域名;获取常用子域名字典,对所述常用子域名字典中的子域名进行枚举,以得到所述根域名的第二子域名。
在本申请的一些实施例中,基于前述方案,所述装置还包括提取单元,被用于在对所述页面响应数据进行解析之前,在所述页面响应数据中提取同源URL地址,所述同源URL地址为符合所述目标域名同源策略的URL地址;发送单元,被用于通过对所述同源URL地址发送第二网络请求,获取与所述第二网络请求对应的页面响应数据。
在本申请的一些实施例中,基于前述方案,所述提取单元配置为:在获取与所述第二网络请求对应的页面响应数据之后,将与所述第二网络请求对应的页面响应数据作为新的页面响应数据,返回执行在所述页面响应数据中提取同源URL地址的步骤,直至在与所述第二网络请求对应的页面响应数据中不存在未提取过的同源URL地址。
在本申请的一些实施例中,基于前述方案,所述解析单元1003配置为:从所述页面响应数据中确定代码字符串;按照预设的子域名提取规则,在所述代码字符串中提取所述根域名的互不重复的子域名作为第一子域名。
在本申请的一些实施例中,基于前述方案,所述页面响应数据中包括响应头数据和响应体数据,所述解析单元1003配置为:从所述响应头数据和所述响应体数据中确定代码字符串。
在本申请的一些实施例中,基于前述方案,所述第一存储单元1004配置为:在所述预设数据库中不存在与所述第一子域名重复的域名时,将所述第一子域名存储至预设数据库。
在本申请的一些实施例中,基于前述方案,所述第一获取单元1001配置为:在将所述第一子域名存储至预设数据库之后,将所述第一子域名添加至所述预设任务队列中;将添加至所述预设任务队列中的第一子域名作为新的目标域名,返回执行从预设任务队列中获取目标域名的步骤,直至在所述预设任务队列中不存在目标域名。
图11示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图11示出的电子设备的计算机系统1100仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图11所示,计算机系统1100包括中央处理单元(Central Processing Unit,CPU)1101,其可以根据存储在只读存储器(Read-Only Memory,ROM)1102中的程序或者从储存部分1108加载到随机访问存储器(Random Access Memory,RAM)1103中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1103中,还存储有系统操作所需的各种程序和数据。CPU 1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(Input/Output,I/O)接口1105也连接至总线1104。
以下部件连接至I/O接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1107;包括硬盘等的储存部分1108;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入储存部分1108。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(CPU)1101执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中所述的子域名采集方法。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (10)

1.一种子域名采集方法,其特征在于,所述方法包括:
从预设任务队列中获取目标域名,所述目标域名包括根域名;
确定与所述目标域名对应的URL地址,以通过对所述URL地址发送第一网络请求,获取与所述第一网络请求对应的页面响应数据;
对所述页面响应数据进行解析,以从所述页面响应数据中得到所述根域名的第一子域名;
将所述第一子域名存储至预设数据库。
2.根据权利要求1所述的方法,其特征在于,所述目标域名还包括第二子域名,在从预设任务队列中获取目标域名之前,所述方法还包括:
获取根域名,并通过预定子域名探测方式,对所述根域名的子域名进行探测,得到所述根域名的第二子域名;
将所述第二子域名添加至所述预设任务队列中,并将所述第二子域名存储至所述预设数据库。
3.根据权利要求2所述的方法,其特征在于,所述预定子域名探测方式包括如下至少一种:
向预定搜索引擎发送子域名搜索请求,所述子域名搜索请求包括所述根域名的关键字,接收所述预定搜索引擎返回的子域名搜索响应,对所述子域名搜索响应进行正则表达式匹配,以匹配出的所述根域名的第二子域名;
向本地DNS服务器发送DNS查询命令,所述DNS查询命令中包括所述根域名,接收所述本地DNS服务器返回的DNS查询响应,以在所述DNS查询响应中确定所述根域名的第二子域名;
获取常用子域名字典,对所述常用子域名字典中的子域名进行枚举,以得到所述根域名的第二子域名。
4.根据权利要求1所述的方法,其特征在于,在对所述页面响应数据进行解析之前,所述方法还包括:
在所述页面响应数据中提取同源URL地址,所述同源URL地址为符合所述目标域名同源策略的URL地址;
通过对所述同源URL地址发送第二网络请求,获取与所述第二网络请求对应的页面响应数据。
5.根据权利要求4所述的方法,其特征在于,在获取与所述第二网络请求对应的页面响应数据之后,所述方法还包括:
将与所述第二网络请求对应的页面响应数据作为新的页面响应数据,返回执行在所述页面响应数据中提取同源URL地址的步骤,直至在与所述第二网络请求对应的页面响应数据中不存在未提取过的同源URL地址。
6.根据权利要求1所述的方法,其特征在于,所述对所述页面响应数据进行解析,以从所述页面响应数据中得到所述根域名的第一子域名,包括:
从所述页面响应数据中确定代码字符串;
按照预设的子域名提取规则,在所述代码字符串中提取所述根域名的互不重复的子域名作为第一子域名。
7.根据权利要求6所述的方法,其特征在于,所述页面响应数据中包括响应头数据和响应体数据,所述从所述页面响应数据中确定代码字符串,包括:
从所述响应头数据和所述响应体数据中确定代码字符串。
8.根据权利要求1所述的方法,其特征在于,所述将所述第一子域名存储至预设数据库,包括:
在所述预设数据库中不存在与所述第一子域名重复的域名时,将所述第一子域名存储至预设数据库。
9.根据权利要求8所述的方法,其特征在于,在将所述第一子域名存储至预设数据库之后,所述方法还包括:
将所述第一子域名添加至所述预设任务队列中;
将添加至所述预设任务队列中的第一子域名作为新的目标域名,返回执行从预设任务队列中获取目标域名的步骤,直至在所述预设任务队列中不存在目标域名。
10.一种子域名采集装置,其特征在于,所述装置包括:
获取单元,被用于从预设任务队列中获取目标域名,所述目标域名包括根域名;
确定单元,被用于确定与所述目标域名对应的URL地址,以通过对所述URL地址发送第一网络请求,获取与所述第一网络请求对应的页面响应数据;
解析单元,被用于对所述页面响应数据进行解析,以从所述页面响应数据中得到所述根域名的第一子域名;
第一存储单元,被用于将所述第一子域名存储至预设数据库。
CN202110041649.8A 2021-01-13 2021-01-13 子域名采集方法、装置 Active CN114765599B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110041649.8A CN114765599B (zh) 2021-01-13 2021-01-13 子域名采集方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110041649.8A CN114765599B (zh) 2021-01-13 2021-01-13 子域名采集方法、装置

Publications (2)

Publication Number Publication Date
CN114765599A true CN114765599A (zh) 2022-07-19
CN114765599B CN114765599B (zh) 2024-04-05

Family

ID=82363412

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110041649.8A Active CN114765599B (zh) 2021-01-13 2021-01-13 子域名采集方法、装置

Country Status (1)

Country Link
CN (1) CN114765599B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116032885A (zh) * 2023-01-03 2023-04-28 浙江网商银行股份有限公司 域名解析方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103618742A (zh) * 2013-12-09 2014-03-05 北京奇虎科技有限公司 获取子域名的方法和系统以及网站管理员权限验证方法
CN105407186A (zh) * 2015-12-23 2016-03-16 北京奇虎科技有限公司 获取子域名的方法和装置
CN108574742A (zh) * 2017-03-10 2018-09-25 腾讯科技(深圳)有限公司 域名信息收集方法及域名信息收集装置
CN110795434A (zh) * 2019-10-30 2020-02-14 北京邮电大学 一种构建服务属性数据库的方法及装置
CN111432041A (zh) * 2020-02-29 2020-07-17 深圳壹账通智能科技有限公司 域名采集方法、系统、终端及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103618742A (zh) * 2013-12-09 2014-03-05 北京奇虎科技有限公司 获取子域名的方法和系统以及网站管理员权限验证方法
CN105407186A (zh) * 2015-12-23 2016-03-16 北京奇虎科技有限公司 获取子域名的方法和装置
CN108574742A (zh) * 2017-03-10 2018-09-25 腾讯科技(深圳)有限公司 域名信息收集方法及域名信息收集装置
CN110795434A (zh) * 2019-10-30 2020-02-14 北京邮电大学 一种构建服务属性数据库的方法及装置
CN111432041A (zh) * 2020-02-29 2020-07-17 深圳壹账通智能科技有限公司 域名采集方法、系统、终端及计算机可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116032885A (zh) * 2023-01-03 2023-04-28 浙江网商银行股份有限公司 域名解析方法及装置

Also Published As

Publication number Publication date
CN114765599B (zh) 2024-04-05

Similar Documents

Publication Publication Date Title
CN111522922B (zh) 日志信息查询方法、装置、存储介质及计算机设备
CN110569214B (zh) 用于日志文件的索引构建方法、装置及电子设备
US20140181262A1 (en) Use of internet information services logging to collect user information in an asynchronous manner
CN108334641B (zh) 采集用户行为数据的方法、系统、电子设备、存储介质
US20160140344A1 (en) Security information management system and security information management method
CN103888490A (zh) 一种全自动的web客户端人机识别的方法
RU2722693C1 (ru) Способ и система выявления инфраструктуры вредоносной программы или киберзлоумышленника
US20160321254A1 (en) Unsolicited bulk email detection using url tree hashes
CN111435393B (zh) 对象漏洞的检测方法、装置、介质及电子设备
CN112347165B (zh) 日志处理方法、装置及服务器和计算机可读存储介质
RU2701040C1 (ru) Способ и вычислительное устройство для информирования о вредоносных веб-ресурсах
CN110798445A (zh) 公共网关接口测试方法、装置、计算机设备及存储介质
CN110347573B (zh) 应用程序分析方法、装置、电子设备及计算机可读介质
CN111209325B (zh) 业务系统接口识别方法、装置及存储介质
CN109460363B (zh) 自动化测试方法、装置、电子设备及计算机可读介质
CN107766224B (zh) 测试方法和测试装置
CN114765599B (zh) 子域名采集方法、装置
CN110895587A (zh) 用于确定目标用户的方法和装置
CN110069691B (zh) 用于处理点击行为数据的方法和装置
US11768889B1 (en) Evaluating configuration files for uniform resource indicator discovery
CN108959041B (zh) 信息发送的方法、服务器及计算机可读存储介质
CN112416875B (zh) 日志管理方法、装置、计算机设备及存储介质
CN115221936A (zh) 数据库系统中的记录匹配
CN111782428B (zh) 数据调用系统以及方法
CN111611483B (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
GR01 Patent grant
GR01 Patent grant