一种基于机器学习的后台路径爆破方法与流程

文档序号:12887213阅读:1012来源:国知局
一种基于机器学习的后台路径爆破方法与流程

本发明属于信息技术领域,具体涉及一种基于机器学习的后台路径爆破方法。



背景技术:

现有技术在进行渗透测试时,往往经过长时间的对网站进行渗透测试之后,却因为无法找到后台登录界面而止步于无法利用已获取的用户或管理员信息。

现有的后台扫描技术主要是基于多线程、大字典的扫描器。如现有的后台扫描工具御剑、椰树等都是基于固定的大字典及多线程进行扫描。由于现有的工具都是基于大字典进行编写的,所以仅对于大多数安全意识较差的网站有用,无法对安全等级较高的网站造成威胁,无法检测出其真正的敏感目录与后台界面。



技术实现要素:

本发明针对上述问题,提供一种基于机器学习的后台路径爆破方法,能够提升爆破网站后台的效率和成功率。

本发明采用的技术方案如下:

一种基于机器学习的后台路径爆破方法,其步骤包括:

1)爬取带有后台特征的普通网站的url路径,生成普通后台字典;

2)对普通后台字典和现有的普通非后台字典中的url路径进行向量化;

3)通过分类算法对得到的向量化后的url路径进行训练;

4)爬取目标网站的页面,得到目标网站的所有url路径的集合,将具有目标网站特征的url路径与步骤1)得到的普通后台字典中具有普通后台特征的url路径相结合,生成包含目标网站特征的后台字典;

5)将步骤4)生成的包含目标网站特征的后台字典输入步骤3)训练好的分类算法以进行识别分类,将根据分类结果得到的后台路径集合作为最优字典;

6)利用最优字典,采用多线程爆破技术实现对目标网站的后台路径的爆破。

进一步地,步骤2)进行向量化时,对有后台特征的的url进行加权处理,对没有后台特征的url进行降权处理,最终将url转换成权重矩阵。

进一步地,步骤3)利用所述权重矩阵作为训练集进行分类算法的训练。

进一步地,步骤4)将具有目标网站特征的词与具有普通后台特征的词进行随机组合,生成包含目标网站特征的后台字典。

进一步地,步骤5)进行识别分类时,将得到的既符合网站命名规则又具有后台路径特征的url路径加入后台路径集合,形成最优字典。

进一步地,步骤6)采用传统多线程爆破技术,根据返回包的状态值进行判断,最终实现后台路径爆破。

本发明的关键点是:1.采用tf-idf等向量化算法对目录关键词进行加权,实现文本的向量化,从而进行分类算法的训练与识别。2.应用于爆破后台路径及敏感目录。

与现有技术相比,本发明的有益效果如下:

本发明利用机器学习的特点,可以有针对性地生成爆破字典,提升爆破网站后台的效率和成功率。本发明方法可以用于信息安全领域,对已授权项目进行渗透测试时应用本方法可以增加渗透成功率。所述渗透测试是指在一方授权的情况下,另一方对其指定范围进行测试,尝试获取对方敏感信息或者得到对方的一定权限,用以检测其网站或产品的安全性;渗透人员在不同的位置(比如从内网、从外网等位置)利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。

附图说明

图1.基于机器学习的后台路径爆破方法的流程图。

图2.权重矩阵示意图。

图3.通过svm算法进行训练的示意图。

具体实施方式

下面通过具体实施例和附图,对本发明做进一步说明。

本发明的核心构思是:利用机器学习对单个网站的路径命名规则进行分析,寻求最优的爆破字典。

图1为本发明的基于机器学习的后台路径爆破方法流程图,各步骤具体描述如下:

1、爬取目标网站的所有url路径。

可使用python编写爬虫,针对目标域名进行页面的爬取,使用beautifulsoup库匹配其链接,达到获取整站目录的目的。然后使用爬虫对已经爬取到的链接再次爬取,可调整挖掘深度以完善整站目录的完整性。然后对爬取到的路径去重,得到一个所有url的集合。

本实施例中该步骤是通过python爬虫进行实现的。通过python的beautifulsoup库或者正则表达式对href进行匹配(href是链接属性),通过实现广度优先算法及设置爬取深度实现对全站的匹配。进行去重时,通过查看当前路径是否存在于已经爬取到的路径列表中来有选择地增加到列表中。

2、爬取带有后台特征的普通网站路径,生成普通后台字典。

通过爬虫获取普通网站的标题中具有后台管理字样的url(uniformresourcelocator,统一资源定位符),生成一个普通后台字典。如通过百度搜索intitle:后台,搜索结果中的第一个为http://www.demlution.com/account/store_login/,点开链接网页标题为后台管理系统。

该步骤生成的普通后台字典用于与普通非后台路径字典(即图1中的“普通非后台字典”)进行向量化,作为后文步骤5中svm算法的训练集。图1中的“普通非后台字典”可以采用现有的字典。也可以将网上流传的敏感目录的大型字典去掉其中包含的后台目录,剩下的就是普通非后台字典。如御剑扫描器,在配置文件中包含dir字典,将其中的后台目录剔除加入到普通后台字典,即可生成普通非后台字典。

3、通过tf-idf算法对普通后台字典和普通非后台字典进行向量化。

tf-idf(termfrequency–inversedocumentfrequency)是一种用于信息检索与数据挖掘的常用加权技术。在一份给定的文件里,词频(termfrequency,tf)指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被正规化,以防止它偏向长的文件(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否)。逆向文件频率(inversedocumentfrequency,idf)是一个词语普遍重要性的度量。某一特定词语的idf,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。

某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的tf-idf。因此,可使用tf-idf将文本向量化,对有后台特征的的url加权,对没有后台特征的url降权处理,最终将url转换成权重矩阵,如图2所示。其中,非零数值表示该值所对应的词词频较高,权重不为0;零值表示该值所对应的词出现次数极少,权重为0。

4、通过将目标网站特征路径与普通后台特征路径相结合,生成包含目标网站特征的后台字典(待分类的后台字典)。

该步骤将步骤1爬取到的具有目标网站特征的词与步骤2中“普通后台字典”中的常用的具有后台特征的词进行随机组合(拼接),生成的后台路径集合即为包含目标网站特征的后台字典。该后台字典包含了目标网站特征,需要进行后文步骤5中的分类处理,才能寻得适合的后台路径。而前文步骤2所获得的“普通后台字典”则是带有普遍后台特征的字典,是后文步骤5中用来使机器学习到后台特征的训练集。

具体的,具有目标网站特征的词是指具有目标网站特征的url中的各个部分,比如在http://www.gd-info.gov.cn/shtml/guangdong/sqsjk/njk/gdnj/这个url中,shtml、guangdong、sqsjk、njk、gdnj等都是具有网站特征的词,通过步骤2爬取整站的方法得到这些url,然后通过分割的方法得到这些词。

具体的,具有后台特征的词是指各种网站后台管理界面的url中通有的一些词,比如admin、login、manager、account等,通过下载后台字典和爬取带有后台特征的url得到这些词。

5、通过svm算法进行训练,然后对后台字典进行分类,寻求最优字典。

该步骤分为训练阶段和分类阶段,分别说明如下:

1)训练阶段

将向量化之后的路径进行分类前的学习算法训练,即将步骤3中由普通后台字典和普通非后台字典产生的权重矩阵作为训练集。

svm(supportvectormachine,支持向量机)是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析。图3为通过svm算法进行训练的示意图,其中将未训练的数据集用散点表示出来。三个坐标轴中,0-12为12组数据,0-300000为每组的数据数量,0-1为数据所占权重,即三个坐标轴的单位分别定义为组、个、权重。纵向为数据被算法所赋予的权重。大部分点权重极低没有显示出来,因为如果要显示就会形成一个非常密集的点组成的面,显示出的那些点为权重较高的数据。通过svm的学习算法,可以找出最优的分界面,如图中a所示,称为最优超平面,使得数据集能够被明显得分为两部分,一部分是具有后台特征的上层点,另一部分是具有普遍网站特性的下层点。之所以要寻求最优超平面,是为了分类的时候能更明确,更符合特征地进行分类。

2)分类阶段

将步骤4生成的包含目标网站特征的后台字典输入svm算法进行识别分类(在输入之前同样需要进行向量化),得到符合条件的路径,即既符合网站命名规则又具有后台路径特征的路径。将分类之后的结果加入高概率的后台路径集合,形成最优字典。

6、利用最优字典,采用传统多线程爆破技术,根据返回包的状态值进行判断,最终实现后台路径爆破。

该步骤利用传统多线程爆破技术,根据返回包的状态值进行判断,如果返回包状态值为200,500等则表明该路径存在,如若返回包状态值为404,302等则说明该路径不存在,进行下一个路径的测试。

本发明方法可以用于信息安全领域,对已授权项目进行渗透测试时应用本方法可以增加渗透成功率。当接到一个授权进行高级渗透测试的项目时,首先要进行的是信息收集,然后进行预渗透,初步判断该网站的功能及可能存在的漏洞。如果能够发现一个网站的后台,那么就有两条路可以走,一是爆破弱口令进入后台,二是寻找注入点,通过注入获取到后台管理员的账号与密码登录后台,然后才能进行下一步的渗透测试。如果不能发现后台,那么就只能通过服务器端的漏洞尝试进行渗透测试,即使发现了注入点也无法成功进入后台进行深度的渗透,只能获取到部分数据就止步了。找到网站后台在渗透测试中是比较重要的一个步骤,为了使渗透测试顺利进行下去,可以通过本发明的方法进行后台的发现。

采用本发明的方法对若干网站进行了测试,测试结果发现,当通过传统扫描器,无法找到该网站真实后台地址时,采用本发明的方法,通过生成后台字典,进行爆破后台,能够成功找到后台地址。

本发明的上述实施例中采用的tf-idf算法,可以由n-gram、vsm等方法替代来进行文本的向量化;上述实施例中采用的svm分类算法,也可以被同类型的其它分类算法代替,如决策树、贝叶斯、人工神经网络等算法等。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1