CN108667766B - 文件探测方法及文件探测装置 - Google Patents
文件探测方法及文件探测装置 Download PDFInfo
- Publication number
- CN108667766B CN108667766B CN201710194173.5A CN201710194173A CN108667766B CN 108667766 B CN108667766 B CN 108667766B CN 201710194173 A CN201710194173 A CN 201710194173A CN 108667766 B CN108667766 B CN 108667766B
- Authority
- CN
- China
- Prior art keywords
- target site
- page
- file
- access response
- directory
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Abstract
一种文件探测方法及装置,一个实施例的方法包括:向目标站点发送访问不存在文件/目录的第一访问请求;接收目标站点根据第一访问请求返回的第一访问响应;根据第一访问响应的页面进行适配,确定目标站点的404页面模型;从文件目录字典获取并加载目标站点的敏感文件目录路径;根据加载的敏感文件目录路径,向目标站点发送第二访问请求,第二访问请求包括敏感文件目录路径;接收目标站点根据所述请求返回的第二访问响应;将第二访问响应与目标站点的404页面模型进行匹配,根据匹配结果判断敏感文件目录路径在目标站点是否存在。本实施例方案提高了针对敏感文件和敏感目录的探测的准确率和探测性能,并据此提高了安全性能。
Description
技术领域
本发明涉及信息安全技术领域,特别是涉及一种文件探测方法以及一种文件探测装置。
背景技术
敏感文件指包含敏感信息的文件,这些敏感信息可以是例如服务器配置、服务器密码、网站源代码等信息,敏感目录是指可能存在敏感文件的目录,如果敏感目录、敏感文件的敏感信息被黑客获取到,将会影响到网站的安全。因此,通过对敏感文件进行探测,进而采取一定的安全措施以避免敏感文件中的敏感信息泄露,成为网络信息安全领域中的一个内容。在目前对敏感文件进行探测的技术中,通常通过加载字典获取敏感文件的路径,再基于敏感文件的路径向目标网站发送大量的请求,获得响应后,通过分析响应中包含的状态码(用以表示网页服务器HTTP响应状态的3位数字代码)和网页内容来判断文件和目录是否真实存在,是否可以访问到,进而得出结论。这种探测方式,仅使用HTTP状态码作为判断文件是否存在的依据,误报率高。
发明内容
基于此,有必要提供一种文件探测方法以及一种文件探测装置,以提高针对敏感文件和敏感目录的探测的准确率和探测性能,以提高安全性能。
为达到上述目的,一个实施例中采用以下技术方案:
一种文件探测方法,包括步骤:
向目标站点发送访问不存在文件/目录的第一访问请求;
接收所述目标站点根据所述第一访问请求返回的第一访问响应;
根据所述第一访问响应的页面进行适配,确定所述目标站点的404页面模型;
从文件目录字典获取并加载所述目标站点的敏感文件目录路径;
根据加载的敏感文件目录路径,向所述目标站点发送第二访问请求,所述第二访问请求包括所述敏感文件目录路径;
接收所述目标站点根据所述请求返回的第二访问响应;
将所述第二访问响应与所述目标站点的404页面模型进行匹配,根据匹配结果判断所述敏感文件目录路径在所述目标站点是否存在。
一种文件探测装置,包括:
页面模型确定模块,用于向目标站点发送访问不存在文件/目录的第一访问请求,接收所述目标站点根据所述第一访问请求返回的第一访问响应,并根据所述第一访问响应的页面进行适配,确定所述目标站点的404页面模型;
字典加载模块,用于从文件目录字典获取并加载所述目标站点的敏感文件目录路径;
请求模块,用于根据所述字典加载模块加载的敏感文件目录路径,向所述目标站点发送第二访问请求,所述第二访问请求包括所述敏感文件目录路径,并接收所述目标站点根据所述请求返回的第二访问响应;
匹配模块,用于将所述第二访问响应与所述目标站点的404页面模型进行匹配,根据匹配结果判断所述敏感文件目录路径在所述目标站点是否存在。
根据如上所述的实施例的方案,其在需要对目标站点是否存在敏感文件、敏感目录进行探测时,首先通过向目标站点发送访问不存在文件/目录的第一访问请求,在得到目标站点返回的第一访问响应后进行适配,确定出目标站点的404页面模型,即目标站点对不存在的文件/目录的路径返回的页面的模型,再从文件目录字典获取并加载敏感文件目录路径,并向目标站点发送访问这些敏感文件目录路径的第二访问请求,在接收到据此返回的第二访问响应后,将第二访问响应与目标站点的404页面模型进行匹配,从而判断出敏感文件目录路径在目标站点是否存在。这种文件探测方式,摈弃了仅使用HTTP状态码作为判断文件是否存在的方式,而是在先确定出目标站点对不存在的文件/目录的路径返回的404页面模型,然后基于该404页面模型对敏感文件目录路径是否存在进行判断,从而提高了针对敏感文件和敏感目录的探测的准确率和探测性能,并据此提高了安全性能。
附图说明
图1是一个本实施例方案的工作环境的示意图;
图2是一个实施例的服务器的组成结构的示意图;
图3是一个实施例中的文件探测方法的流程示意图;
图4是一个具体示例中进行文件探测的流程示意图;
图5是一个具体示例中生成文件目录字典的流程示意图;
图6是一个实施例中的文件探测装置的组成结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
图1示出了本发明一个实施例中的工作环境示意图,如图1所示,其工作环境涉及终端101以及服务器102,终端101与服务器102可以通过网络进行通信。终端101可以通过网络从其他服务器102探测获得敏感文件和敏感目录的信息,服务器102,例如安全服务器、漏洞扫描服务器,也可以通过网络从其他服务器102探测获得敏感文件和敏感目录的信息。
以服务器进行文件探测为例,图2中示出了一个实施例中服务器102的组成结构示意图。如图2所示,服务器包括通过系统总线连接的处理器、供电模块、存储介质、内存和通信接口。其中,服务器的存储介质存储有操作系统、数据库和一种文件探测装置,该文件探测装置用于实现一种文件探测方法。该处理器用于提供计算和控制能力,支撑整个服务器的运行。服务器中的内存为存储介质中的文件识别装置运行提供环境,通信接口用于与终端101以及其他服务器102进行网络通信。本领域技术人员可以理解,图2中示出的结构,仅仅是与实施例方案相关的部分结构的框图,并不构成对本实施例方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
图3中示出了一个实施例中的文件探测方法的流程示意图,如图3所示,该实施例中的方法包括:
步骤S301:向目标站点发送访问不存在文件/目录的第一访问请求;
步骤S302:接收所述目标站点根据所述第一访问请求返回的第一访问响应;
步骤S303:根据所述第一访问响应的页面进行适配,确定所述目标站点的404页面模型;
步骤S304:从文件目录字典获取并加载所述目标站点的敏感文件目录路径;
步骤S305:根据加载的敏感文件目录路径,向所述目标站点发送第二访问请求,所述第二访问请求包括所述敏感文件目录路径;
步骤S306:接收所述目标站点根据所述请求返回的第二访问响应;
步骤S307:将所述第二访问响应与所述目标站点的404页面模型进行匹配,根据匹配结果判断所述敏感文件目录路径在所述目标站点是否存在。
根据如上所述的实施例的方案,其在需要对目标站点是否存在敏感文件、敏感目录进行探测时,首先通过向目标站点发送访问不存在文件/目录的第一访问请求,在得到目标站点返回的第一访问响应后进行适配,确定出目标站点的404页面模型,即目标站点对不存在的文件/目录的路径返回的页面的模型,再从文件目录字典获取并加载敏感文件目录路径,并向目标站点发送访问这些敏感文件目录路径的第二访问请求,在接收到据此返回的第二访问响应后,将第二访问响应与目标站点的404页面模型进行匹配,从而判断出敏感文件目录路径在目标站点是否存在。这种文件探测方式,摈弃了仅使用HTTP状态码作为判断文件是否存在的方式,而是在先确定出目标站点对不存在的文件/目录的路径返回的404页面模型,然后基于该404页面模型对敏感文件目录路径是否存在进行判断,从而提高了针对敏感文件和敏感目录的探测的准确率和探测性能,并据此提高了安全性能。
上述实施例方案中提及的文件目录字典,可以是采用目前已有的文件目录字典。在本实施例方案中,该文件目录字典可以通过下述方式生成:
收集目标站点信息和服务器环境信息,所述目标站点信息包括站点的域名、站点子域名、关键字,所述服务器环境信息包括:服务器语言类型、HTTP响应指纹以及页面链接后缀类型;
根据收集的目标站点信息和服务器环境信息,生成所述文件目录字典。
从而可以结合目标站点的域名、子域名、关键字以及服务器的相关信息确定出一个综合性的文件目录字典,且该文件目录字典是结合目标站点的信息以及服务器的信息生成,从而基于该文件目录字典加载的敏感文件目录路径更准确。
在一个实施例中,上述加载的敏感文件目录路径,为与所述目标站点的服务器语言类型对应的敏感文件目录路径。其中,目标站点的服务器语言类型根据所述第一访问响应确定。从而可以基于服务器语言类型,只加载与服务器语言类型对应的敏感文件目录路径,而无需加载文件目录字典中与服务器语言类型不相匹配的敏感文件目录路径,以提高加载的敏感文件目录路径的准确性,而且可以据此提高文件探测的效率。
其中,上述根据加载的敏感文件目录路径向目标站点发送第二访问请求时,可以获得当前网络状态,根据当前网络状态确定向所述目标站点发送所述第二访问请求的速率。从而可以根据网络状态自适应调整发送第二访问请求的速率,可以更好地应对网络状态不稳定的情况。
在上述步骤S303中确定404页面模型时,一个应用示例中可以采用下述方式进行:通过计算各所述第一访问响应的页面的页面文本相似度、统计各所述第一访问响应的页面的状态码,确定所述404页面模型。
在上述步骤S301中发送第一访问请求时,可以是向每个不存在文件/目录发动一定次数的第一访问请求,以核实确定该不存在文件/目录每次返回的是否为相同的页面。具体可以是:对同一个不存在文件/目录,向所述目标站点发送预定次数的访问该不存在文件/目录的所述第一访问请求;在该不存在文件/目录的各第一访问请求对应的第一访问响应中存在不同的状态码时,结束向目标站点发送第一访问请求的过程。在同一个不存在文件/目录针对各第一访问请求返回的各第一访问响应中存在不同的状态码时,说明网站访问不稳定,因而先行推出,以避免获得不准确的访问结果。
进一步地,在一个实施例中还可以设置有预设字符串,该字符串可以作为黑名单,在第一访问响应中包含该预设字符串时,说明出现一些特殊情况。从而,在上述步骤S302接收到第一访问响应后,上述步骤S303可以是在所述第一访问响应的页面不包括预设字符串时,再根据所述第一访问响应的页面进行适配。
进一步地,在一个实施例中,还可以在上述第一访问响应的页面为404页面、且各第一访问响应的404页面不同时,暂存各第一访问响应的404页面的源代码。在各第一访问响应的404页面不同时,说明该目标站点返回的404页面是定制的404页面,因此,通过暂存各第一访问响应的404页面的源代码,可以以此为基础判断文件/目录是否存在。例如,在具体应用示例中,404页面模型也可以包含该暂存的各第一访问响应的404页面的源代码。
其中,在一个示例中,可以在上述第一访问响应的页面不是404页面、且页面的源码长度大于或等于预定源码长度时,计算所述第一访问响应的页面与暂存的各404页面的相似度(本实施例中称为第一相似度),并根据第一相似度确定对应的不存在文件/目录在所述目标站点是否存在。
在另一个示例中,可以在上述第一访问响应的页面不是404页面、且页面的源码长度大于或等于预定源码长度时,根据该第一访问响应对应的不存在文件/目录生成随机路径,并比较该第一访问响应对应的不存在文件/目录与该随机路径的第二相似度,并根据第二相似度确定对应的不存在文件/目录在所述目标站点是否存在。
如上所述,上述实施例提供的文件探测方法,能够根据目标站点的域名、关键字等信息生成智能的文件目录字典,而且提前判定目标站点的服务器类型,加载服务器类型对应的敏感文件目录路径,以提高效率。此外,还通过请求获取了目标站点不存在文件/目录返回的响应,从而可以据此自动适配出定制404页面,得到404页面模型,通过404页面模型进行匹配判定的方式,相比简单的采用状态码进行判定的方式,可以有效地降低误报率。
据此,图4中示出了一个具体示例中进行文件探测的流程示意图,结合图4所示,具体应用中进行对敏感文件、敏感目录进行探测时,首先需要建立文件目录字典,图5示出了生成文件目录字典的流程示意图。
结合图4、图5所示,在生成文件目录字典时,可以根据目标站点生成定制化的文件目录字典,由于不同目标站点(网站)会有其独特的特征,使用通用字典可能无法覆盖到所有可能的组合,同时也会存在许多不必要的请求,因此,通过生成定制化字典,从而可以在进行文件探测时,可以使得探测过程更加精确,进而据此提高文件探测的效率和准确率。
具体实现时,可首先收集目标站点信息和服务器环境信息,这里的目标站点信息包括站点的域名、子域名、关键字等信息,服务器环境信息可以包括服务器语言类型、HTTP响应指纹以及页面链接后缀类型等信息,这里的服务器语言类型可以包括服务器语言类型、HTTP响应指纹以及页面链接后缀类型等信息的一种或多种。这里的服务器类型,可以是指目标站点的服务器的web容器/语言,这里的WEB语言可以是例如ASP、PHP、JSP、.NET等等。
随后,即可根据收集的目标站点信息和服务器环境信息,生成所述文件目录字典。在具体结合收集到的目标站点信息和服务器环境信息生成文件目录字典时,可以采用任何可能的方式生成,例如,可以通过对上述收集到的信息进行遍历并进行排列组合从而生成文件目录字典。结合图5所示,一个具体示例中生成文件目录字典方式可以采用下述方式进行。
首先遍历常见文件后缀名及目标站点环境对应后缀名;
然后遍历上述收集到的域名、子域名、关键字等目标站点信息;
随后将域名、子域名、关键字等信息与常见文件后缀、目标站点环境对应后缀进行排列组合并进行拼接,得到初始文件目录字典。
此时,若域名、子域名、关键字等目标站点信息未遍历完成,则返回遍历上述收集到的域名、子域名、关键字等目标站点信息。若对若对域名、子域名、关键字等目标站点信息,则进一步遍历常见敏感文件目录字典,将初始文件目录字典与常见敏感文件目录字典拼接组合,获得拼接组合后的初始文件目录字典。
此时,若常见文件后缀名及目标站点环境对应后缀名未遍历完成,则返回遍历上述遍历常见文件后缀名及目标站点环境对应后缀名的步骤,否则直接将上述拼接组合后的初始文件目录字典作为本实施例中得到的文件目录字典。
具体的拼接组合过程,以一个具体应用示例为例,假设目标站点(目标系统)的域名为:%domain%,子域名为:%subdomain%,关键字为:%keyword%,web容器/语言为文件后缀为:%suffix%,敏感目录名为:%dict%,敏感文件名为:%file%,常见备份文件名为:%bak%,常见年份为:%year%。
从而生成的定制化字典组合为:
%dicts%+'/'+%files%+'/'+%suffix%+'.'+%bak%
其中:%dicts%为%dict%、%domain%、%subdomain%、%keyword%、%year%的排列组合;
%files%为%file%、%domain%、%subdomain%、%keyword%、%year%的排列组合。
上述生成的文件目录字典,可以是一个总字典,包括上述多有的敏感文件目录路径。在另一种实现方式中,可以在文件目录字典中,还可以包括有多个子字典,其中每种服务器环境类型对应一个子字典,例如,php服务器环境类型对应一个子字典,asp服务器环境类型对应一个子字典,jsp服务器环境类型对应一个子字典,可以理解,对于没有明确区分服务器环境类型的敏感文件目录路径,可以是包含在每个子字典中,或者是包含在另外一个单独的子字典中。
从而通过生成定制化的文件目录字典,在后面的文件探测过程中,可以通过自适应的方式,只加载与目标站点的服务器类型对应的敏感文件目录字典,例如,针对php环境的站点,只加载后缀为php的敏感文件目录路径,或者只加载php服务器环境类型对应的子字典中的敏感文件目录路径(在存在通用敏感文件目录路径对应的子字典的情况下,还包括给子字典中的敏感文件目录路径);类似地,针对asp环境的站点,只加载后缀为asp的敏感文件目录路径,或者只加载asp服务器环境类型对应的子字典中的敏感文件目录路径;针对jsp环境的站点,只加载后缀为jsp的敏感文件目录路径,或者只加载jsp服务器环境类型对应的子字典中的敏感文件目录路径。
结合图4所示,还可以通过多次访问目标站点不存在的文件/目录,以得到该目标站点的404页面模型。
具体实现时,可以首先向目标站点发送访问不存在文件/目录的访问请求(本实施例中称为第一访问请求),可以理解,在第一访问请求中包含有请求访问的该不存在文件/目录的路径,该不存在文件/目录是指任何网站都不能存在的目录、文件。从而,通过向目标站点发送访问不存在文件/目录的请求,可以收集到访问目标站点不存在的目录、文件时,目标站点会返回什么样的状态码、什么样的内容,以便于判断目标站点的404页面。
其中,针对每一个相同的不存在文件/目录,可以发动预定次数的第一访问请求,以核实该目标站点在接收到访问同一个不存在文件/目录时是否有相同的响应,可有助于分析判断目标站点的网络状态。该预定次数可以结合实际需要进行设定,例如3-10次等。
在接收到目标站点根据第一访问请求返回的第一访问响应后,即可结合第一访问响应进行分析。
在一个示例中,如前所述,在针对同一个不存在文件/目录发送了多次第一访问请求的情况下,若针对该同一个不存在文件/目录返回的各第一访问响应中存在不同的状态码(例如其中一个第一访问响应中的状态码与另一个第一访问响应中的状态码不同),说明对该目标站点的访问不是很稳定,可以自动退出,结束向目标站点发送第一访问请求的过程。
另一方面,还设置有预设字符串,该字符串可以作为黑名单,在第一访问响应中包含该预设字符串时,则可以无需对该第一访问响应的页面进行匹配,以跳过一些特殊情况下的不必要的匹配过程,例如访问目标站点的任何url都跳转到登录页面等。
进一步地,在一个示例中,可以在上述第一访问响应的页面为404页面、且各第一访问响应的404页面不同时,暂存各第一访问响应的404页面的源代码。在各第一访问响应的404页面不同时,说明该目标站点返回的404页面是定制的404页面,因此,通过暂存各第一访问响应的404页面的源代码,可以以此为基础判断文件/目录是否存在。在具体应用示例中,后续确定404页面模型时,也可以根据该暂存的各第一访问响应的404页面的源代码进行确定。
另一方面,在一个示例中,可以在上述第一访问响应的页面不是404页面(例如返回的状态为200)、且页面的源码长度大于或等于预定源码长度(例如256)时,可以认为检测到疑似存在路径,并计算所述第一访问响应的页面与暂存的各404页面的相似度(本实施例中称为第一相似度),并根据第一相似度确定对应的不存在文件/目录在所述目标站点是否存在。
另一方面,还可以在上述第一访问响应的页面不是404页面(例如返回的状态为200)、且页面的源码长度大于或等于预定源码长度(例如256)时,即认为检测到疑似存在路径时,比较该第一访问响应对应的不存在文件/目录与该随机路径的第二相似度,并根据第二相似度确定对应的不存在文件/目录在所述目标站点是否存在,从而以进行更全面的扫描和检测。其中,上述计算第一相似度、第二相似度的方式,可以采用任何可能的计算相似度的方式进行。
随后,即可针对获得的各第一访问响应的页面进行适配,确定所述目标站点的404页面模型。在一个示例中,可以将各第一访问响应的页面的内容和状态码与爆破请求做对比,然后根据页面文本相似度、状态码统计模型,判断出目标网站的404页面,为后面的扫描降低误报率。
例如,假设不存在文件/目录为/aaaaabbbbbaaaaa,在访问预定次数后得到了第一访问响应的页面中的状态码和内容后,如果状态码为404,则可将404页面模型确定为状态码404,如果状态码不为404,则可将404页面模型确定为返回页面的源码内容。
在目标站点的404页面模型已确定的情况下,则可以从文件目录字典获取并加载所述目标站点的敏感文件目录路径,并将加载的敏感文件目录路径以递归爆破的形式发送给目标站点,以目标站点的敏感文件目录路径的探测。具体可以是:根据加载的敏感文件目录路径,向所述目标站点发送第二访问请求,所述第二访问请求包括所述敏感文件目录路径;接收所述目标站点根据所述请求返回的第二访问响应;将所述第二访问响应与所述目标站点的404页面模型进行匹配,根据匹配结果判断所述敏感文件目录路径在所述目标站点是否存在。其中,这里的敏感文件目录路径,可以包括敏感文件的路径、敏感目录的路径、基于敏感目录确定的敏感文件的路径的各种方式。
可以理解,递归包括即是通过递归枚举的方式对敏感文件目录路径进行探测,例如,假设敏感文件目录字典包括目录字典a、b以及文件字典1.conf,2.comf,3.conf,则递归爆破的顺序可以为:a/1.conf、a/2.conf、a/3.conf、b/1.conf、b/2.conf、b/3.conf、a/b/1.conf、a/b/2.conf、a/b/3.conf、b/a/1.conf、/b/a/2.conf、/b/a/3.conf。考虑到网络环境、网站配置等原因的影响,还可以通过的网络状态进行监测,并基于监测到的网络状态调整发送第二访问请求的速率。此外,还可以通过多进程方式发送第二访问请求,以满足不同的网络环境和服务器环境的需求。
其中,在一个应用示例中,在将所述第二访问响应与所述目标站点的404页面模型进行匹配,如果上述生成的404页面模型为状态码404,则可以通过第二访问响应中的状态码是否为404判断访问的敏感文件目录路径是否存在。而如果上述生成的404页面模型为返回的页面源码内容,则可以通过第二访问响应中的页面的源码内容与404页面模型的源码内容是否相似判断访问的敏感文件目录路径是否存在。例如,在计算得到的第二访问响应中的页面的源码内容与404页面模型的源码内容的相似度大于或者等于预定相似度阈值时,可以判定访问的敏感文件目录路径存在,否则判定不存在。具体的计算页面相似度的方式,可以采用以后的任何计算页面相似度的方式进行。
进一步地,在一个示例中,还可以在目标站点存在文件目录指示文件(robots.txt文件)时,还可以解析并提取出该文件目录指示文件中的目录结构,并将目录结构添加到文件目录字典中或者直接针对该目录结构发送第二访问请求,从而可以自动递归扫描到的子目录/文件,大大提高文件探测的覆盖度。其中,该文件目录指示文件可以是直接扫描得到,也可以通过文件探测的方式得到,在上述第二访问响应中包含有文件目录指示文件的信息时,自动解析并提取出该文件目录指示文件中的目录结构,并解析出的目录结构发送第二访问请求,以实现自动递归扫描,提高文件探测的覆盖度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性的计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
图6示出了一个实施例中的文件探测装置的结构示意图,如图6所示,该实施例中的装置包括:
页面模型确定模块601,用于向目标站点发送访问不存在文件/目录的第一访问请求,接收所述目标站点根据所述第一访问请求返回的第一访问响应,并根据所述第一访问响应的页面进行适配,确定所述目标站点的404页面模型;
字典加载模块602,用于从文件目录字典获取并加载所述目标站点的敏感文件目录路径;
请求模块603,用于根据所述字典加载模块加载的敏感文件目录路径,向所述目标站点发送第二访问请求,所述第二访问请求包括所述敏感文件目录路径,并接收所述目标站点根据所述请求返回的第二访问响应;
匹配模块604,用于将所述第二访问响应与所述目标站点的404页面模型进行匹配,根据匹配结果判断所述敏感文件目录路径在所述目标站点是否存在。
根据如上所述的实施例的方案,其在需要对目标站点是否存在敏感文件、敏感目录进行探测时,首先通过向目标站点发送访问不存在文件/目录的第一访问请求,在得到目标站点返回的第一访问响应后进行适配,确定出目标站点的404页面模型,即目标站点对不存在的文件/目录的路径返回的页面的模型,再从文件目录字典获取并加载敏感文件目录路径,并向目标站点发送访问这些敏感文件目录路径的第二访问请求,在接收到据此返回的第二访问响应后,将第二访问响应与目标站点的404页面模型进行匹配,从而判断出敏感文件目录路径在目标站点是否存在。这种文件探测方式,摈弃了仅使用HTTP状态码作为判断文件是否存在的方式,而是在先确定出目标站点对不存在的文件/目录的路径返回的404页面模型,然后基于该404页面模型对敏感文件目录路径是否存在进行判断,从而提高了针对敏感文件和敏感目录的探测的准确率和探测性能,并据此提高了安全性能。
上述实施例方案中提及的文件目录字典,可以是采用目前已有的文件目录字典。在本实施例方案中也可以自行生成该文件目录字典。据此,如图6所示,本实施例中的装置还可以包括:
字典生成模块605,用于收集目标站点信息和服务器环境信息,所述目标站点信息包括站点的域名、站点子域名、关键字,所述服务器环境信息包括:服务器语言类型、HTTP响应指纹以及页面链接后缀类型;并根据收集的目标站点信息和服务器环境信息,生成所述文件目录字典。
从而可以结合目标站点的域名、子域名、关键字以及服务器的相关信息确定出一个综合性的文件目录字典,且该文件目录字典是结合目标站点的信息以及服务器的信息生成,从而基于该文件目录字典加载的敏感文件目录路径更准确。
在一个实施例中,上述加载的敏感文件目录路径,为与所述目标站点的服务器语言类型对应的敏感文件目录路径。其中,目标站点的服务器语言类型根据所述第一访问响应确定。从而可以基于服务器语言类型,只加载与服务器语言类型对应的敏感文件目录路径,而无需加载文件目录字典中与服务器语言类型不相匹配的敏感文件目录路径,以提高加载的敏感文件目录路径的准确性,而且可以据此提高文件探测的效率。
其中,上述请求模块根据加载的敏感文件目录路径向目标站点发送第二访问请求时,可以获得当前网络状态,根据当前网络状态确定向所述目标站点发送所述第二访问请求的速率。从而可以根据网络状态自适应调整发送第二访问请求的速率,可以更好地应对网络状态不稳定的情况。
一个应用示例中,上述页面模型确定模块601,通过计算各所述第一访问响应的页面的页面文本相似度、统计各所述第一访问响应的页面的状态码,确定所述404页面模型。
进一步地,上述页面模型确定模块601,还可以对同一个不存在文件/目录,向所述目标站点发送预定次数的访问该不存在文件/目录的所述第一访问请求;并在该不存在文件/目录的各第一访问请求对应的第一访问响应中存在不同的状态码时,结束向目标站点发送第一访问请求的过程。从而向每个不存在文件/目录发动一定次数的第一访问请求,以核实确定该不存在文件/目录每次返回的是否为相同的页面。在同一个不存在文件/目录针对各第一访问请求返回的各第一访问响应中存在不同的状态码时,说明网站访问不稳定,因而先行推出,以避免获得不准确的访问结果。
进一步地,在一个实施例中还可以设置有预设字符串,该字符串可以作为黑名单,上述页面模型确定模块601,可以在接收所述第一访问响应之后,在所述第一访问响应的页面不包括预设字符串时,根据所述第一访问响应的页面进行适配。在第一访问响应中包含该预设字符串时,说明出现一些特殊情况,例如每次访问都返回登录页面等,从而避免因特殊情况导致的不准确的情况。
进一步地,在一个实施例中,上述页面模型确定模块601,还用于在所述第一访问响应的页面为404页面、且各第一访问响应的404页面不同时,暂存各第一访问响应的404页面的源代码。在各第一访问响应的404页面不同时,说明该目标站点返回的404页面是定制的404页面,因此,通过暂存各第一访问响应的404页面的源代码,可以以此为基础判断文件/目录是否存在。例如,在具体应用示例中,404页面模型也可以包含该暂存的各第一访问响应的404页面的源代码。
上述页面模型确定模块601,还可以在所述第一访问响应的页面不是404页面、且页面的源码长度大于或等于预定源码长度时,计算所述第一访问响应的页面与暂存的各404页面的第一相似度,并根据第一相似度确定对应的不存在文件/目录在所述目标站点是否存在。
此外,上述页面模型确定模块,601,还可以在所述第一访问响应的页面不是404页面、且页面的源码长度大于或等于预定源码长度时,根据该第一访问响应对应的不存在文件/目录生成随机路径,并比较该第一访问响应对应的不存在文件/目录与该随机路径的第二相似度,并根据第二相似度确定对应的不存在文件/目录在所述目标站点是否存在。
如上所述的各实施例中的文件探测方法及文件探测装置,可以应用到任何需要对敏感文件/敏感目录进行探测的技术场景,例如进行WEB漏洞扫描以及通过爬虫爬取获得文件目录结构等。
在进行WEB漏洞扫描时,如上所述的实施例中的方法可在Web漏洞扫描器上执行,如上所述的实施例中的装置可设置在Web漏洞扫描器上。在具体进行Web漏洞扫描时,在给定目标网站的根域名后,结合上述文件目录字典进行文件探测,能够发现目标网站隐藏的文件、目录,从而可以提高漏洞扫描的效果,这是因为这些隐藏的文件和目录往往是容易出现漏洞的地方。此外,在web漏洞扫描的信息收集阶段,通过上述实施例中的方案探测目标网站的敏感文件和敏感目录,可以让web漏洞扫描器能够更好的了解网站目录结构,从而增加了扫描的覆盖面,提高漏洞扫描的效果。
在爬虫系统进行爬取时,如上所述的实施例中的方法可在爬取系统所在的终端或服务器上执行,如上所述的实施例中的装置可设置在爬取系统所在的终端或服务器上。爬虫系统的作用之一是获取网站的目录结构和内容,常规的爬虫系统仅仅根据网页可见的内容进行爬取。通过如上所述的实施例中的方案,增强了爬虫系统“看见”的能力,可以探测出更多的目录,让爬虫对目标网站更加了解,使结果更加丰富、完整,从而获得更好的爬取结果。
可见,将上述本实施例的方案应用到Web漏洞扫描器、爬虫系统等场景,可以增强web漏洞扫描器、爬虫系统等对敏感文件和敏感目录的探测能力,使敏感文件泄漏可以被及时发现,降低了企业的互联网安全风险。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种文件探测方法,其特征在于,包括步骤:
向目标站点发送访问不存在文件/目录的第一访问请求;
接收所述目标站点根据所述第一访问请求返回的第一访问响应;
根据所述第一访问响应的页面进行适配,确定所述目标站点的404页面模型;
从文件目录字典获取并加载所述目标站点的敏感文件目录路径;
根据加载的敏感文件目录路径,向所述目标站点发送第二访问请求,所述第二访问请求包括所述敏感文件目录路径;
接收所述目标站点根据所述请求返回的第二访问响应;
将所述第二访问响应与所述目标站点的404页面模型进行匹配,根据匹配结果判断所述敏感文件目录路径在所述目标站点是否存在。
2.根据权利要求1所述的文件探测方法,其特征在于,所述文件目录字典通过下述方式生成:
收集目标站点信息和服务器环境信息,所述目标站点信息包括站点的域名、站点子域名、关键字,所述服务器环境信息包括:服务器语言类型、HTTP响应指纹以及页面链接后缀类型;
根据收集的目标站点信息和服务器环境信息,生成所述文件目录字典。
3.根据权利要求1所述的文件探测方法,其特征在于,包括下述两项中的至少一项:
加载的所述敏感文件目录路径,为与所述目标站点的服务器语言类型对应的敏感文件目录路径;所述目标站点的服务器语言类型根据所述第一访问响应确定;
根据当前网络状态确定向所述目标站点发送所述第二访问请求的速率。
4.根据权利要求1所述的文件探测方法,其特征在于,包括下述各项中的至少一项:
第一项:通过计算各所述第一访问响应的页面的页面文本相似度、统计各所述第一访问响应的页面的状态码,确定所述404页面模型;
第二项:对同一个不存在文件/目录,向所述目标站点发送预定次数的访问该不存在文件/目录的所述第一访问请求;在该不存在文件/目录的各第一访问请求对应的第一访问响应中存在不同的状态码时,结束向目标站点发送第一访问请求的过程;
第三项:在接收所述第一访问响应之后,在所述第一访问响应的页面不包括预设字符串时,根据所述第一访问响应的页面进行适配;所述预设字符串为黑名单字符串;
第四项:在所述第一访问响应的页面为404页面、且各第一访问响应的404页面不同时,暂存各第一访问响应的404页面的源代码。
5.根据权利要求4所述的文件探测方法,其特征在于,包括下述两项中的至少一项:
在所述第一访问响应的页面不是404页面、且页面的源码长度大于或等于预定源码长度时,计算所述第一访问响应的页面与暂存的各404页面的第一相似度,并根据第一相似度确定对应的不存在文件/目录在所述目标站点是否存在;
在所述第一访问响应的页面不是404页面、且页面的源码长度大于或等于预定源码长度时,根据该第一访问响应对应的不存在文件/目录生成随机路径,并比较该第一访问响应对应的不存在文件/目录与该随机路径的第二相似度,并根据第二相似度确定对应的不存在文件/目录在所述目标站点是否存在。
6.一种文件探测装置,其特征在于,包括:
页面模型确定模块,用于向目标站点发送访问不存在文件/目录的第一访问请求,接收所述目标站点根据所述第一访问请求返回的第一访问响应,并根据所述第一访问响应的页面进行适配,确定所述目标站点的404页面模型;
字典加载模块,用于从文件目录字典获取并加载所述目标站点的敏感文件目录路径;
请求模块,用于根据所述字典加载模块加载的敏感文件目录路径,向所述目标站点发送第二访问请求,所述第二访问请求包括所述敏感文件目录路径,并接收所述目标站点根据所述请求返回的第二访问响应;
匹配模块,用于将所述第二访问响应与所述目标站点的404页面模型进行匹配,根据匹配结果判断所述敏感文件目录路径在所述目标站点是否存在。
7.根据权利要求6所述的文件探测装置,其特征在于,还包括:
字典生成模块,用于收集目标站点信息和服务器环境信息,所述目标站点信息包括站点的域名、站点子域名、关键字,所述服务器环境信息包括:服务器语言类型、HTTP响应指纹以及页面链接后缀类型;并根据收集的目标站点信息和服务器环境信息,生成所述文件目录字典。
8.根据权利要求6所述的文件探测装置,其特征在于,包括下述两项中的至少一项:
加载的所述敏感文件目录路径,为与所述目标站点的服务器语言类型对应的敏感文件目录路径;所述字典加载模块还根据所述第一访问响应确定所述目标站点的服务器语言类型;
所述请求模块根据当前网络状态确定向所述目标站点发送所述第二访问请求的速率。
9.根据权利要求6所述的文件探测装置,其特征在于,包括下述各项中的至少一项:
第一项:所述页面模型确定模块,通过计算各所述第一访问响应的页面的页面文本相似度、统计各所述第一访问响应的页面的状态码,确定所述404页面模型;
第二项:对同一个不存在文件/目录,所述页面模型确定模块,还用于向所述目标站点发送预定次数的访问该不存在文件/目录的所述第一访问请求;并在该不存在文件/目录的各第一访问请求对应的第一访问响应中存在不同的状态码时,结束向目标站点发送第一访问请求的过程;
第三项:所述页面模型确定模块,用于在接收所述第一访问响应之后,在所述第一访问响应的页面不包括预设字符串时,根据所述第一访问响应的页面进行适配;
第四项:所述页面模型确定模块,还用于在所述第一访问响应的页面为404页面、且各第一访问响应的404页面不同时,暂存各第一访问响应的404页面的源代码。
10.根据权利要求9所述的文件探测装置,其特征在于,包括下述两项中的至少一项:
所述页面模型确定模块,还用于在所述第一访问响应的页面不是404页面、且页面的源码长度大于或等于预定源码长度时,计算所述第一访问响应的页面与暂存的各404页面的第一相似度,并根据第一相似度确定对应的不存在文件/目录在所述目标站点是否存在;
所述页面模型确定模块,还用于在所述第一访问响应的页面不是404页面、且页面的源码长度大于或等于预定源码长度时,根据该第一访问响应对应的不存在文件/目录生成随机路径,并比较该第一访问响应对应的不存在文件/目录与该随机路径的第二相似度,并根据第二相似度确定对应的不存在文件/目录在所述目标站点是否存在。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710194173.5A CN108667766B (zh) | 2017-03-28 | 2017-03-28 | 文件探测方法及文件探测装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710194173.5A CN108667766B (zh) | 2017-03-28 | 2017-03-28 | 文件探测方法及文件探测装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108667766A CN108667766A (zh) | 2018-10-16 |
CN108667766B true CN108667766B (zh) | 2020-08-14 |
Family
ID=63785748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710194173.5A Active CN108667766B (zh) | 2017-03-28 | 2017-03-28 | 文件探测方法及文件探测装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108667766B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110929185B (zh) * | 2019-10-15 | 2023-11-24 | 中国平安人寿保险股份有限公司 | 网站目录检测方法、装置、计算机设备及计算机存储介质 |
CN111723400A (zh) * | 2020-06-16 | 2020-09-29 | 杭州安恒信息技术股份有限公司 | 一种js敏感信息泄露检测方法、装置、设备及介质 |
CN112560032A (zh) * | 2020-12-03 | 2021-03-26 | 星优选有限公司 | 一种文件泄漏监测方法、系统及设备 |
CN112733188B (zh) * | 2021-01-13 | 2023-09-22 | 航天晨光股份有限公司 | 一种敏感文件管理方法 |
CN115208789B (zh) * | 2022-07-14 | 2023-06-09 | 上海斗象信息科技有限公司 | 目录爆破行为的确定方法、装置、电子设备及存储介质 |
CN115577328B (zh) * | 2022-10-25 | 2023-08-01 | 长沙源小印科技有限公司 | 软件侵权取证方法、系统、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102790760A (zh) * | 2012-05-31 | 2012-11-21 | 清华大学 | 安全网盘系统中一种基于目录树的数据同步方法 |
CN104484609A (zh) * | 2014-12-23 | 2015-04-01 | 北京奇虎科技有限公司 | 网站漏洞检测方法和系统 |
CN106411855A (zh) * | 2016-09-06 | 2017-02-15 | 北京邮电大学 | 一种脆弱性目录查找方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130093806A (ko) * | 2012-01-10 | 2013-08-23 | 한국전자통신연구원 | 클라우드 컴퓨팅 환경에서의 개인 정보 유출 알림 시스템 및 방법 |
-
2017
- 2017-03-28 CN CN201710194173.5A patent/CN108667766B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102790760A (zh) * | 2012-05-31 | 2012-11-21 | 清华大学 | 安全网盘系统中一种基于目录树的数据同步方法 |
CN104484609A (zh) * | 2014-12-23 | 2015-04-01 | 北京奇虎科技有限公司 | 网站漏洞检测方法和系统 |
CN106411855A (zh) * | 2016-09-06 | 2017-02-15 | 北京邮电大学 | 一种脆弱性目录查找方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108667766A (zh) | 2018-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108667766B (zh) | 文件探测方法及文件探测装置 | |
CN110324311B (zh) | 漏洞检测的方法、装置、计算机设备和存储介质 | |
CN109768992B (zh) | 网页恶意扫描处理方法及装置、终端设备、可读存储介质 | |
CN103297394B (zh) | 网站安全检测方法和装置 | |
CN107896219B (zh) | 一种网站脆弱性的检测方法、系统及相关装置 | |
CN110888838B (zh) | 基于对象存储的请求处理方法、装置、设备及存储介质 | |
CN109948334B (zh) | 一种漏洞检测方法、系统及电子设备和存储介质 | |
CN108632219B (zh) | 一种网站漏洞检测方法、检测服务器、系统及存储介质 | |
US8307276B2 (en) | Distributed content verification and indexing | |
KR100968126B1 (ko) | 웹쉘 탐지 시스템 및 웹쉘 탐지 방법 | |
CN108256322B (zh) | 安全测试方法、装置、计算机设备和存储介质 | |
CN104881603A (zh) | 网页重定向漏洞检测方法及装置 | |
CN108900554B (zh) | Http协议资产检测方法、系统、设备及计算机介质 | |
CN111008405A (zh) | 一种基于文件Hash的网站指纹识别方法 | |
KR20080044145A (ko) | 웹 로그 상호연관분석을 이용한 웹 애플리케이션 공격의침입 탐지 시스템 및 방법 | |
CN111125718A (zh) | 越权漏洞的检测方法、装置、设备及存储介质 | |
CN104657659A (zh) | 一种存储跨站攻击脚本漏洞检测方法、装置及系统 | |
KR20180074774A (ko) | 악의 웹 사이트 식별 방법, 장치 및 컴퓨터 기억매체 | |
CN113055399A (zh) | 注入攻击的攻击成功检测方法、系统及相关装置 | |
CN113114680A (zh) | 用于文件上传漏洞的检测方法和检测装置 | |
CN106603572B (zh) | 一种基于探针的漏洞检测方法及其装置 | |
CN107786529B (zh) | 网站的检测方法、装置及系统 | |
CN104375935A (zh) | Sql注入攻击的测试方法和装置 | |
CN108804501B (zh) | 一种检测有效信息的方法及装置 | |
CN110457900B (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 |