一种面向javaweb服务的漏洞扫描系统及方法技术方案

技术编号:34483293 阅读:18 留言:0更新日期:2022-08-10 09:00
本发明专利技术提供了一种面向java web服务的漏洞扫描系统及方法,涉及漏洞扫描技术领域;所述扫描系统包括资产收集模块、指纹识别模块、框架漏洞扫描模块和基础漏洞扫描模块,基于该扫描系统实现的扫描方法在对于URL处理上对于非该目标资产和无效链接进行URL去除处理,提高扫描速率;在资产收集模块在常见搜索框登录框出对于输入参数进行收集整理;在目录扫描之前会处理收集到的URL资产的子目录,提高目录扫描模块的发现率;之后的SQL注入模块会对于WAF进行识别绕过处理,该方法简单集成了常见java开发模板漏洞的漏洞库。java开发模板漏洞的漏洞库。java开发模板漏洞的漏洞库。

【技术实现步骤摘要】
一种面向java web服务的漏洞扫描系统及方法


[0001]本专利技术涉及漏洞扫描
,尤其涉及一种面向java web服务的漏洞扫描系统及方法。

技术介绍

[0002]随着互联网的高速发展,互联网成为了联结所有人信息的交汇点。人们越来越习惯在互联网上完成各种业务功能,很多的金融公司,政府机构,私人企业的业务通过各种web系统进行交互处理,为人民提高更加方便快捷的服务。同时,网络安全形势也越来越严峻,网络攻击事件频繁,用户个人隐私大量泄露,对于企业和个人造成很大影响。做好网络安全防护越来越重要。
[0003]做好网络安全防护一般需要企业了解自身暴露资产,完整的对于企业的暴力资产做渗透测试、漏洞扫描。针对安全漏洞企业需要安排开发人员进行修复之后再进行漏洞验证等等。而其中的财力人力的开销是巨大的,对于中小型企业来讲负担较大。而漏洞扫描器可以很好的较低中小型企业的压力,漏洞扫描器操作简单,运行速率快,耗时短,可以协助安全人员更快更高效的完成系统安全评估。
[0004]在现在已知的技术中,扫描器没有具体针对不同java框架进行区分扫描,扫描不够灵活,扫描速率慢。对于URL资产处理较为复杂,一些静态文件和无效链接无需进行漏洞探测。整体扫描较为单一不够灵活,目录扫描方面只对于输入站点的子目录进行扫描,但是目标资产可能存在多级目录。框架识别不够精细,常见java开发模板漏洞没有完善的漏洞库。

技术实现思路

[0005]本专利技术的目的在于提供一种面向java web服务的漏洞扫描系统及方法,从而解决现有技术中存在的前述问题。
[0006]为了实现上述目的,本专利技术采用的技术方案如下:
[0007]一种面向java web服务的漏洞扫描系统,包括资产收集模块、指纹识别模块、框架漏洞扫描模块和基础漏洞扫描模块,所述资产收集模块会根据输入的目标站点收集该站点URL信息以及站点子目录信息,所述指纹识别模块针对java框架的指纹识别,通过查找几个常见的位置来确定当前框架类型,所述框架漏洞扫描模块用于在所述指纹扫描模块判断出框架类型后进入该框架进行漏洞扫描,收集常见java框架漏洞;所述基础漏洞扫描模块包括目录扫描子模块、XSS漏洞扫描子模块和SQL注入漏洞扫描子模块,所述目标扫描子模块用于扫描目标资产URL的子目录;所述XSS漏洞扫描子模块用于扫描爬虫获取的所有URL是否存在xss漏洞;所述SQL注入漏洞扫描子模块用于确定SQL注入模块是否有用户恶意构造的数据库命令进入数据库中执行。
[0008]优选的,所述资产收集模块采用广度优先爬虫策略爬取全站URL,优先爬取重要性和关联度较高的链接,使用python的BeautifulSoup模块,获取所有带href属性的a标签,把
a标签中的href属性提取出来,去除重复链接,如果提取出来的非目标资产那么去除,如果是非http开头的则带上资产根目录,通过此处理好的链接加入未访问列表,已经爬虫过后的链接加入已访问列表;取出未访问列表里面的URL按照爬虫步骤再次进行爬虫,爬虫完毕将爬虫结果放入一个文件中方便之后的指纹识别模块、框架漏洞扫描模块和基础漏洞扫描模块进行调用。
[0009]优选的,所述指纹识别模块通过查找几个常见的位置来确定当前框架类型,包括HTTP头,http响应头的server,X

Powered

By和cookies,具体包括以下步骤:
[0010]首先获取响应包里面的HTTP头信息,接着确认里面是否有Server,X

Jenkins,X

Powered

By,Powered by这些HTTP头,如果存在那么直接获取对应的java框架信息。
[0011]优选的,所述SQL注入漏洞扫描子模块通过SQL注入模块注入测试语句和不同测试语句的响应包的区别进行漏洞判断,具体包括:
[0012]B1,首先进行waf判断,尝试使用含有特殊字符的URL访问被注入的网站(受攻击的网站),判断是否存在waf,若存在,则判断是否能绕过waf,若能绕过,则修改测试语句,尝试绕过payload后进入步骤B2;若不能绕过,则直接进入步骤B2;
[0013]B2,测试SQL注入模块有报错注入、布尔盲注和延时盲注,采用常用SQL注入中的报错注入、联合查询语句进行测试,比较不同测试响应判断是否存在漏洞,若存在漏洞,则直接输出测试结果后,再测试布尔盲注和延时盲注;否则,直接测试布尔盲注和延时盲注。
[0014]优选的,所述使用含有特殊字符的URL访问,判断是否存在waf具体包括:使用含有特殊字符的URL访问,出现响应403,500或者响应含有banned,fierwall之类的关键词;
[0015]步骤B2包括:采用报错注入、布尔盲注和延时盲注作为SQL基础测试,其中,所述报错注入采用枚举口令以暴力测试的方式注入,获得正确口令;当页面无法回显查询信息时,可以考虑使用延时盲注,延时盲注攻击者通过构造延时语句,当数据库执行该语句时如果满足判断条件那么执行时间短,如果不满足判断条件会导致执行时间很长,攻击者就可以通过响应时间长短判断测试语句是否正确,从而得到数据库信息;布尔盲注主要用于没有回显的情形,一般用于查询,布尔盲注通过响应返回的true或者false来判断数据库信息使用布尔盲注之前需要先判断数据是字符型还是数字型,之后再构造布尔语句判断页面回显,用于查询数据库是否有该信息,若有则返回信息详情,若无则会有对应报错。
[0016]本专利技术公开了一种面向java web服务的漏洞扫描方法,包括以下步骤:
[0017]S1,将待扫描的目标资产输入资产收集模块,采用广度优先爬虫算法爬取目标资产的全站URL;
[0018]S2,将符合爬虫要求的URL数据输入点提取出,并连同其目录节点保存至统一文件夹中,作为爬虫结果;
[0019]S3,采用指纹识别模块对所述爬虫结果中的web框架进行识别,通过查找HTTP头,http响应头的server,X

Powered

By以及cookies识别框架类型;对于不同的框架类型,选用不同的漏洞扫描模块进行漏洞扫描过程;在使用指纹识别模块判断出web框架类型之后,采用目录扫描子模块能够找到一个网站所能提供服务界面,并利用此服务界面所提供的链接进一步扫描网站目录,后续的漏洞检测功能需要基于网站目录进行进一步扫描,通过网站上所展示的链接进行请求,若状态码为200(文件存在)、302(此目录下的资源被临时移动)、401(访问此文件需要身份验证)、403(请求有效,但服务器拒绝响应)则说明该目录下
存在文件,在确定出网站的可访问目录之后,再去调用XSS和SQL注入漏洞扫描模块测试此网站是否存在已知漏洞;
[0020]S4,基于S1到S3的扫描结果,形成漏洞扫描的结果报告。
[0021]优选的,步骤S2中具体包括:
[0022]S本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向java web服务的漏洞扫描系统,其特征在于,包括资产收集模块、指纹识别模块、框架漏洞扫描模块和基础漏洞扫描模块,所述资产收集模块会根据输入的目标站点收集该站点URL信息以及站点子目录信息;所述指纹识别模块针对java框架的指纹识别,通过查找几个常见的位置来确定当前框架类型;所述框架漏洞扫描模块用于在所述指纹扫描模块判断出框架类型后进入该框架进行漏洞扫描,收集常见java框架漏洞;所述基础漏洞扫描模块包括目录扫描子模块、XSS漏洞扫描子模块和SQL注入漏洞扫描子模块;所述目标扫描子模块用于扫描目标资产URL的子目录;所述XSS漏洞扫描子模块用于扫描爬虫获取的所有URL是否存在xss漏洞;所述SQL注入漏洞扫描子模块用于确定SQL注入模块是否有用户恶意构造的数据库命令进入数据库中执行。2.根据权利要求1所述的面向java web服务的漏洞扫描系统,其特征在于,所述资产收集模块采用广度优先爬虫策略爬取全站URL,优先爬取重要性和关联度较高的链接,使用python的BeautifulSoup模块,获取所有带href属性的a标签,把a标签中的href属性提取出来,去除重复链接,如果提取出来的是非目标资产那么去除,如果是非http开头的则带上资产根目录,通过此处理好的链接加入未访问列表,已经爬虫过后的链接加入已访问列表;取出未访问列表里面的URL按照爬虫步骤再次进行爬虫,爬虫完毕将爬虫结果放入一个文件中方便之后的指纹识别模块、框架漏洞扫描模块和基础漏洞扫描模块进行调用。3.根据权利要求1所述的面向java web服务的漏洞扫描系统,其特征在于,所述指纹识别模块通过查找几个常见的位置来确定当前框架类型,包括HTTP头,http响应头的server,X

Powered

By和cookies,具体包括以下步骤:首先获取响应包里面的HTTP头信息,接着确认里面是否有Server,X

Jenkins,X

Powered

By,Powered by这些HTTP头,如果存在那么直接获取对应的java框架信息。4.根据权利要求1所述的面向java web服务的漏洞扫描系统,其特征在于,所述SQL注入漏洞扫描子模块通过SQL注入模块注入测试语句和不同测试语句的响应包的区别进行漏洞判断,具体包括:B1,首先进行waf判断,尝试使用含有特殊字符的URL访问被注入的网站,判断是否存在waf,若不存在,则直接进入步骤B2;若存在,则需要再次判断是否能绕过,若能绕过,则修改测试语句,尝试绕过payload后进入步骤B2;若不能绕过,则直接进入步骤B2;B2,测试SQL注入模块有报错注入、布尔盲注和延时盲注,采用常用SQL注入中的报错注入、联合查询语句进行测试,比较不同测试响应判断是否存在漏洞,若存在漏洞,则直接输出测试结果后,再测试布尔盲注和延时盲注;否则,直接测试布尔盲注和延时盲注。5.根据权利要求4所述的面向java web服务的漏洞扫描系统,其特征在于,所述使用含有特殊字符的URL访问被注入的网站,判断是否存在waf具体包括:使用含有特殊字符的URL访问,出现响应403,500或者响应含有banned,firewall之类的关键词;步骤B2包括:采用报错注入、布尔盲注和延时盲注作为SQL基础测试,其中,所述报错注入指的是枚举口令以暴力测试的方式注入,获得正确口令;延时盲注,当页面无法回显查询信息时,可以考虑使用延时盲注,延时盲注攻击者通过构造延时语句,当数据库执行该语句时如果满足判断条件那么执行时间短,如果不满足判断条件会导致执行时间很长,攻击者就可以通过响应时间长短判断测试语句是否正确,从而得到数据库信息;布尔盲注用于没有回显的情形,通过响应返回的true或者false来判断数据库信息使用布尔盲注之前需要
先判断数据是字符型还是数字型,之后再构造布尔语句判断页面回显,用于查询数据库是否有该信息,若有则返回信息详情,若无则会有对应报错。6.一种面向java web服务的漏洞扫描方法,其特征在于,基于权利要求1

5任一所述的java web服务的漏洞扫描系统实现,包括以下步骤:S1,将...

【专利技术属性】
技术研发人员:纪守领彭浩乐梦娇费俊涛张旭鸿赵丹丹钟鸣伍一鸣
申请(专利权)人:尚蝉浙江科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1