一种基于http连接平台的xxe漏洞的检测方法及系统
技术领域
1.本技术涉及网络安全技术领域,尤其是涉及一种基于http连接平台的xxe漏洞的检测方法及系统。
背景技术:
2.随着网络的发展,很多基于web的应用程序以强大的功能和实用性等优点受到人们的青睐;许多开源的web框架被开发者使用,并应用到web应用程序的产品中;随之而来的,是越来越多的存在于这些开源框架和web漏洞,继而使得针对web服务器以及web应用程序漏洞发动的攻击在各种攻击事件中所占比例越来越高。
3.其中,xxe漏洞就是web漏洞的一种,是指xml外部实体注入;而传统的xxe漏洞检测是由扫描引擎通过爬虫发现待检测的页面中可能存在漏洞的注入点,然后根据xxe漏洞的原理,向注入点注入构造后的代码,再进行http请求,检测http响应的“反应”,判断是否有符合漏洞规则的现象出现,以此判断是否存在对应的漏洞。
4.针对上述中的相关技术,发明人发现:部分xxe漏洞触发成功后,页面中没有回显,无法通过检测http响应的“反应”,判断高漏洞是否存在;并且传统xxe漏洞检测所构造的代码,一般具有相同的文件内容或格式,在真实环境中有可能不符合,因此传统的xxe漏洞检测方法有较大的局限性,精确性较低。
技术实现要素:
5.本技术提供一种基于http连接平台的xxe漏洞的检测方法及系统,具有提高了xxe漏洞检测的精确性的特点。
6.本技术目的一是提供一种基于http连接平台的xxe漏洞的检测方法。
7.本技术的上述申请目的一是通过以下技术方案得以实现的:一种基于http连接平台的xxe漏洞的检测方法,包括:获取注入信息并将注入信息发送至目标服务器,以使所述目标服务器访问http连接平台;根据http协议访问所述http连接平台,并从所述http连接平台中得到请求信息;对所述请求信息进行检测后得到检测结果,并根据所述检测结果证明xxe漏洞存在。
8.通过采用上述技术方案,将注入信息发送至目标服务器,使得目标服务器访问http连接平台,此时http连接平台接收到目标服务器的请求信息,然后将请求信息存储在数据库中;然后根据http协议访问http连接平台,即可得到该请求信息,然后对这个请求信息进行检测后得到检测结果,进而可以判断出xxe漏洞存在,通过这种方式,可以证明目标服务器内存在xxe漏洞,提高了xxe漏洞检测的精确性。
9.本技术在一较佳示例中可以进一步配置为,所述获取注入信息的步骤包括:根据http连接平台得到http连接平台的ip和端口信息;
根据预设函数生成随机字符串;将所述ip、端口信息和随机字符串进行拼接后得到url链接;对所述url链接进行加工构造后得到注入信息。
10.通过采用上述技术方案,先得到http连接平台的ip和端口信息,然后将生成的随机字符串和ip及端口信息进行拼接后即可得到url链接,然后将url链接进行加工后得到注入信息;通过上述方式得到注入信息,使得目标服务器可以根据url链接访问http连接平台。
11.本技术在一较佳示例中可以进一步配置为,所述将注入信息发送至目标服务器,以使所述目标服务器访问http连接平台的步骤包括:对所述目标服务器进行一次请求;若所述目标服务器中存在xxe漏洞,则目标服务器会根据http协议主动访问url链接,即,所述目标服务器会主动访问http连接平台。
12.通过采用上述技术方案,先对目标服务器进行请求,如果目标服务器内存在xxe漏洞,那么目标服务器就会访问注入信息中的url链接,然后http连接平台就会接收到目标服务器的访问信息,通过这种方式,可以证明目标服务器内存在xxe漏洞。
13.本技术在一较佳示例中可以进一步配置为,在http连接平台接收到目标服务器的访问后:所述http连接平台接收url链接,并对所述url链接进行识别后得到url链接中的随机字符串;所述http连接平台根据随机字符串生成字符串页面,并将此次目标服务器进行访问的请求信息存储在数据库中;http连接平台的信息展示页面从数据库中调取并展示所述请求信息。
14.通过采用上述技术方案,在http连接平台接收到url链接后,表示接收到目标服务器的访问,然后将访问信息存储在数据库中,并且http连接平台的信息展示页面会从数据库中调取相应的请求信息,以使得目标服务器的访问信息可以被查看到。
15.本技术在一较佳示例中可以进一步配置为,所述请求信息包括目标服务器的ip、请求时生成的url链接以及访问时间。
16.通过采用上述技术方案,通过请求信息可以得到目标服务器的ip、url链接以及访问时间,从而对目标服务器有进一步的了解。
17.本技术在一较佳示例中可以进一步配置为,所述根据http协议访问所述http连接平台,并从所述http连接平台中得到请求信息的步骤包括:根据http协议访问http连接平台的信息展示页面;从所述信息展示页面中得到请求信息。
18.通过采用上述技术方案,从信息展示页面中得到请求信息。
19.本技术在一较佳示例中可以进一步配置为,所述对所述请求信息进行检测后得到检测结果,并根据所述检测结果证明xxe漏洞存在的步骤包括:根据字符串匹配对所述请求信息进行识别;若识别出请求信息中包含与url链接中相同的字符串,则说明匹配成功,进而证明xxe漏洞存在。
20.通过采用上述技术方案,利用字符串匹配对请求信息进行识别,从而更加高效地判断出目标服务器内是否存在xxe漏洞。
21.本技术目的二是提供一种基于http连接平台的xxe漏洞的检测系统。
22.本技术的上述申请目的二是通过以下技术方案得以实现的:一种基于http连接平台的xxe漏洞的检测系统,包括:获取模块,用于获取注入信息并将注入信息发送至目标服务器,以使所述目标服务器访问http连接平台;访问模块,用于根据http协议访问所述http连接平台,并从所述http连接平台中得到请求信息;检测模块,用于对所述请求信息进行检测后得到检测结果,并根据所述检测结果证明xxe漏洞存在。
23.本技术目的三是提供一种智能终端。
24.本技术的上述申请目的三是通过以下技术方案得以实现的:一种智能终端,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行的上述基于http连接平台的xxe漏洞的检测方法的计算机程序指令。
25.本技术目的四是提供一种计算机介质,能够存储相应的程序。
26.本技术的上述申请目的四是通过以下技术方案得以实现的:一种计算机可读存储介质,存储有能够被处理器加载并执行上述任一种基于http连接平台的xxe漏洞的检测方法的计算机程序。
27.综上所述,本技术包括以下至少一种有益技术效果:通过构造注入信息,并将注入信息发送至目标服务器,使得,若目标服务器内存在xxe漏洞,那么目标服务器就会访问注入信息中的xxe漏洞,从而实现对http连接平台的访问;在目标服务器访问http连接平台后,http连接平台会存储目标服务器的访问信息,然后将该访问信息展示在信息展示页面,再通过对信息展示页面获得访问信息,对访问信息进行识别,就可以判断出目标服务器内是否存在xxe漏洞;通过这种方式,提高了对xxe漏洞的检测的精确性和效率,降低了检测出现错误的可能性。
附图说明
28.图1是本技术实施例中一种基于http连接平台的xxe漏洞的检测方法的流程示意图。
29.图2是本技术实施例中一种基于http连接平台的xxe漏洞的检测系统的结构示意图。
30.附图标记说明:1、获取模块;2、访问模块;3、检测模块。
具体实施方式
31.本具体实施例仅仅是对本技术的解释,其并不是对本技术的限制,本领域人员在阅读完本说明书后可以根据需要对本实施例作出没有创造性贡献的修改,但只要在本技术的权利要求范围内都受到专利法的保护。
32.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例
中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的全部其他实施例,都属于本技术保护的范围。
33.下面结合说明书附图对本技术实施例做进一步详细描述。
34.xxe漏洞表示一种web漏洞,是指xml外部实体注入;xml是一种类似html的可扩展标记语言,适用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言;而xxe漏洞就是xml外部实体注入,当允许引用外部实体时,通过构造恶意内容,就可能导致任意文件读取、系统命令执行、内网端口探测、攻击内网网站等危害;而对于漏洞而言,从代码层来看所有的漏洞,其实都被分为了代码注入和命令注入两种;例如,与xss相关的代码是css语言;而,与xxe相关的代码就是xml语言,若xml语言写得不规范,校验不够完整,就会产生相应的漏洞。
35.在检测xxe漏洞时,首先由扫描引擎通过爬虫发现待检测的页面,以及页面中可能存在漏洞的注入点;然后沟通需要注入的代码,代码中的外部实体,一般指定为目标服务器本地的固定资源,可以通过文件协议进行访问,并且本地的固定资源有相对固定的内容或格式,当将构造好的代码注入并进行请求后,页面会进行回显,显示固定资源的内容或格式,通过这种方式证明xxe漏洞的存在。
36.但是,在使用上述方式检测xxe漏洞时会出现下述两种情况:1、当xxe漏洞触发成功后,页面中没有回显,此时无法通过页面判断xxe漏洞是否存在,该种现象被称为xxe盲打漏洞。
37.2、由于固定资源是有相对固定的内容或格式,但是在实际环境中有较大的概率不符合,导致这种检测方式有较大的局限性。
38.未解决上述问题,本技术提供一种基于http连接平台的xxe漏洞的检测方法,所述方法的主要流程描述如下。
39.如图1所示:步骤s101:获取注入信息并将注入信息发送至目标服务器,以使目标服务器访问http连接平台。
40.在本技术实施例中,除用于检测的服务器和目标服务器外,还引入第三个服务器,即http连接平台;然后通过http连接平台作为中转,使得目标服务器向http连接平台进行请求,而http连接平台将请求信息存储,然后用于检测的服务器再从http连接平台中获取到请求信息,通过对请求信息的检测即可判断出目标服务器中是否存在xxe漏洞;通过这种方式,可以有效避免出现相关技术中的问题,进而提高对xxe漏洞的检测的精确性。
41.可以理解的是,在本技术实施例中,用于检测的服务器中设置有扫描器,通过扫描器进行检测工作;在进行检测工作之前,需要配置http连接平台的ip和端口,以使得扫描器和目标服务器可以通过http协议访问http连接平台,上述配置过程采用的方式是相关技术中常用技术手段,在此不再赘述;通过上述过程,可以实现扫描器、目标服务器与http连接平台之间的交互。
42.在本技术实施例中,获取注入信息的步骤如下;首先,根据http连接平台得到http连接平台的ip和端口信息;然后,根据预设函数生成随机字符串;再将ip、端口信息和随机字符串进行拼接后得到url链接;最后,对url链接进行加工构造后得到注入信息。
43.扫描器内设置有请求注入模块,上述过程是在请求注入模块中执行的;在配置http连接平台的ip和端口时,就可以得到ip和端口信息;上述过程中提到的预设函数具体指用于生成随机字符串的函数,例如,random函数等,生成随机字符串的过程是相关技术中常用技术手段,在此不再赘述;在得到ip、端口和随机字符串后,将三者进行拼接即可得到url链接,例如,http://10.0.0.1:8081/random/abcdefg;最后对url链接进行加工构造,即,对该url链接进行构造使其形成适合的需要注入的代码。
44.例如:《xml version="1.0" encoding="utf-8"》;《!doctype name [《!entity xxe system "http://ip:port/random/abcdefg"》]》;《name》&xxe;《/name》;上述代码即为对url链接进行加工构造后得到的注入信息,扫描器内的请求注入模块在完成上述过程后,会对目标服务器进行一次请求,同时将注入信息发送至目标服务器。
[0045]
可以理解的是,与上述代码相比,相关技术中利用传统xxe扫描方法构造出来的代码为:《xml version="1.0" encoding="utf-8"》;《!doctype name [《!entity xxe system "file:///ect/passwd"》]》;《name》&xxe;《/name》;将上述两段代码进行比较可以看出,本技术实施例中的代码区别点为“http://ip:port/random/abcdefg”,而相关技术中的代码区别点为“file:///ect/passwd”,其中,本技术实施例中的该段代码表示对应的网址,即,http连接平台,而相关技术中的该段代码表示本地文件;而这部分代码就表示外部实体,通过修改外部实体,可以避免出现对本地文件的访问的情况,从而使得对xxe漏洞的检测更加贴近实际情况,降低了xxe漏洞检测方法的局限性。
[0046]
目标服务器在接收到注入信息,若目标服务器内存在xxe漏洞,那么目标服务器就会根据注入信息自动访问注入信息中的网址,即,目标服务器会根据http协议主动访问http连接平台;到这一步骤,就实现了对目标服务器内是否存在xxe漏洞的检测,根据xxe漏洞本身的特性,使得目标服务器主动向http连接平台,那么http连接平台就会接收到目标服务器的请求,同时将该请求信息存储在数据库中,然后只需要扫描器从http连接平台处检测到目标服务器的请求信息,就可以判断出目标服务器内存在xxe漏洞,通过这种方式,即不需要通过页面回显来体现xxe漏洞,也不需要访问外部资源,避免了出现相关技术中的问题,提高了对xxe漏洞的检测的效率和精确性。
[0047]
而从http连接平台的角度出发,当http连接平台接收到目标服务器的访问后,会接收注入信息的代码,从而接收到url链接;然后http连接平台会对url链接进行识别后得到url链接中的随机字符串,然后根据随机字符串生成对应的字符串页面,同时http连接平台会将此次目标服务器进行访问的请求信息存储在数据库中;其中,请求信息包括目标服务器的ip、请求时生成的url链接以及目标服务器的访问时间;http连接平台内还设置有信息展示页面,当http连接平台将请求信息存储在数据库中时,信息展示页面会从数据库中
调取相应的请求信息,并将其展示在页面上。
[0048]
例如,在信息展示页面中,请求信息的展示情况如下:(3,u’http://10.25.11.111:2020/random/asdfgasdfgasdfg’,u’10.25.11.113’,u’2021-10-27 11:19:39’);其中,“3”表示序号,即,http连接平台接收到的第几条请求;“http://10.25.11.111:2020/random/asdfgasdfgasdfg”表示请求的url链接,“10.25.11.113”表示请求来源的ip,“2021-10-27 11:19:39”表示请求时间,即,目标服务器的访问时间。
[0049]
需要注意的是,http连接平台会根据请求的url连接中的随机字符串生成对应的页面,并且为了保持页面的反映和注入代码的关联性以及足够的随机性,页面内容将使用str的映射,比如,str的base64编码;通过这种方式,http连接平台可以通过根据随机字符串生成的页面体现出xxe漏洞,但是该页面并不影响扫描器的检测。
[0050]
步骤s102:根据http协议访问http连接平台,并从http连接平台中得到请求信息。
[0051]
在扫描器完成了对目标服务器的请求后,扫描器会向http连接平台进行请求,根据http协议访问http连接平台的信息展示页面,然后从信息展示页面中得到目标服务器的请求信息。
[0052]
需要注意的是,http连接平台的信息展示页面会从数据库中读取并展示http连接平台接收到的所有的请求信息。
[0053]
步骤s103:对请求信息进行检测后得到检测结果,并根据检测结果证明xxe漏洞存在。
[0054]
在扫描器从信息展示页面中得到请求信息后,会对请求信息进行检测;扫描器内还设置有响应检测模块,通过响应检测模块对请求信息进行检测;在本技术实施例中,对请求信息进行检测的方式为通过字符串匹配进行识别,若识别出请求信息中包含与url链接中相同的字符串,则说明匹配成功,即,检测结果为目标服务器中存在xxe漏洞。
[0055]
可以理解的是,注入信息是在扫描器的请求注入模块中构造的,那么扫描器内就存储有url链接中的随机字符串,那么在对信息展示页面中的请求信息进行检测时,只需要检测到相同的随机字符串,既可以证明目标服务器中存在xxe漏洞。
[0056]
通过上述方式,实现了对目标服务器中xxe漏洞的检测,并且提高了对xxe漏洞的检测的效率和准确性,降低了出现检测错误的概率。
[0057]
本技术提供一种基于http连接平台的xxe漏洞的检测系统,如图2所示,一种基于http连接平台的xxe漏洞的检测系统包括,获取模块1,用于获取注入信息并将注入信息发送至目标服务器,以使目标服务器访问http连接平台;访问模块2,用于根据http协议访问http连接平台,并从http连接平台中得到请求信息;检测模块3,用于对请求信息进行检测后得到检测结果,并根据检测结果证明xxe漏洞存在。
[0058]
为了更好地执行上述方法的程序,本技术还提供一种智能终端,智能终端包括存储器和处理器。
[0059]
其中,存储器可用于存储指令、程序、代码、代码集或指令集。存储器可以包括存储程序区和存储数据区,其中存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令以及用于实现上述基于http连接平台的xxe漏洞的检测方法的指令等;存储数据区可存储上述基于http连接平台的xxe漏洞的检测方法中涉及到的数据等。
[0060]
处理器可以包括一个或者多个处理核心。处理器通过运行或执行存储在存储器内的指令、程序、代码集或指令集,调用存储在存储器内的数据,执行本技术的各种功能和处理数据。处理器可以为特定用途集成电路、数字信号处理器、数字信号处理装置、可编程逻辑装置、现场可编程门阵列、中央处理器、控制器、微控制器和微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本技术实施例不作具体限定。
[0061]
本技术还提供一种计算机可读存储介质,例如包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。该计算机可读存储介质存储有能够被处理器加载并执行上述基于http连接平台的xxe漏洞的检测方法的计算机程序。
[0062]
以上描述仅为本技术得较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其他技术方案。例如上述特征与本技术中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
技术特征:
1.一种基于http连接平台的xxe漏洞的检测方法,其特征在于,包括:获取注入信息并将注入信息发送至目标服务器,以使所述目标服务器访问http连接平台;根据http协议访问所述http连接平台,并从所述http连接平台中得到请求信息;对所述请求信息进行检测后得到检测结果,并根据所述检测结果证明xxe漏洞存在。2.根据权利要求1所述的基于http连接平台的xxe漏洞的检测方法,其特征在于,所述获取注入信息的步骤包括:根据http连接平台得到http连接平台的ip和端口信息;根据预设函数生成随机字符串;将所述ip、端口信息和随机字符串进行拼接后得到url链接;对所述url链接进行加工构造后得到注入信息。3.根据权利要求1所述的基于http连接平台的xxe漏洞的检测方法,其特征在于,所述将注入信息发送至目标服务器,以使所述目标服务器访问http连接平台的步骤包括:对所述目标服务器进行一次请求;若所述目标服务器中存在xxe漏洞,则目标服务器会根据http协议主动访问url链接,即,所述目标服务器会主动访问http连接平台。4.根据权利要求3所述的基于http连接平台的xxe漏洞的检测方法,其特征在于,在http连接平台接收到目标服务器的访问后:所述http连接平台接收url链接,并对所述url链接进行识别后得到url链接中的随机字符串;所述http连接平台根据随机字符串生成字符串页面,并将此次目标服务器进行访问的请求信息存储在数据库中;http连接平台的信息展示页面从数据库中调取并展示所述请求信息。5.根据权利要求4所述的基于http连接平台的xxe漏洞的检测方法,其特征在于,所述请求信息包括目标服务器的ip、请求时生成的url链接以及访问时间。6.根据权利要求4所述的基于http连接平台的xxe漏洞的检测方法,其特征在于,所述根据http协议访问所述http连接平台,并从所述http连接平台中得到请求信息的步骤包括:根据http协议访问http连接平台的信息展示页面;从所述信息展示页面中得到请求信息。7.根据权利要求6所述的基于http连接平台的xxe漏洞的检测方法,其特征在于,所述对所述请求信息进行检测后得到检测结果,并根据所述检测结果证明xxe漏洞存在的步骤包括:根据字符串匹配对所述请求信息进行识别;若识别出请求信息中包含与url链接中相同的字符串,则说明匹配成功,进而证明xxe漏洞存在。8.一种基于http连接平台的xxe漏洞的检测系统,其特征在于,包括:获取模块(1),用于获取注入信息并将注入信息发送至目标服务器,以使所述目标服务器访问http连接平台;
访问模块(2),用于根据http协议访问所述http连接平台,并从所述http连接平台中得到请求信息;检测模块(3),用于对所述请求信息进行检测后得到检测结果,并根据所述检测结果证明xxe漏洞存在。9.一种智能终端,其特征在于,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1-7中任一种方法的计算机程序指令。10.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1-7中任一种方法的计算机程序。
技术总结
本申请涉及一种基于HTTP连接平台的XXE漏洞的检测方法及系统,其属于网络安全技术领域,其中,一种基于HTTP连接平台的XXE漏洞的检测方法包括,获取注入信息并将注入信息发送至目标服务器,以使目标服务器访问HTTP连接平台;根据HTTP协议访问HTTP连接平台,并从HTTP连接平台中得到请求信息;对请求信息进行检测后得到检测结果,并根据检测结果证明XXE漏洞存在。本申请具有提高了XXE漏洞检测的精确性的效果。的效果。的效果。
技术研发人员:杜嘉鹏
受保护的技术使用者:北京天融信网络安全技术有限公司 北京天融信科技有限公司 北京天融信软件有限公司
技术研发日:2021.11.12
技术公布日:2022/3/8