nginx服务器的漏洞检测方法和装置的制造方法

文档序号:9527435阅读:827来源:国知局
nginx服务器的漏洞检测方法和装置的制造方法
【技术领域】
[0001]本发明涉及服务器检测领域,具体而言,涉及一种nginx服务器的漏洞检测方法和装置。
【背景技术】
[0002]现有技术利用白盒测试检测nginx服务器的配置文件,检测配置文件中发有漏洞特征,如果有漏洞特征,则认为该nginx服务器具有漏洞。但是,在利用白盒测试可能检测到错误的配置文件,造成漏检或者错检,从而导致检测到nginx服务器的漏洞不准确的问题。
[0003]针对现有技术中检测nginx服务器漏洞不准确的问题,目前尚未提出有效的解决方案。

【发明内容】

[0004]本发明实施例提供了一种nginx服务器的漏洞检测方法和装置,以解决现有技术中检测nginx服务器漏洞不准确的技术问题。
[0005]根据本发明实施例的一个方面,提供了一种nginx服务器的漏洞检测方法,该nginx服务器的漏洞检测方法包括:向nginx服务器发送第一网络地址的访问请求,并获取所述nginx服务器响应所述第一网络地址的访问请求返回的第一内容类型;向所述nginx服务器发送第二网络地址的访问请求,并获取所述nginx服务器响应所述第二网络地址的访问请求返回的第二内容类型,其中,所述第一网络地址与所述第二网络地址的内容类型相同;判断所述第一内容类型和所述第二内容类型是否相同;以及如果判断出所述第一内容类型和所述第二内容类型不相同,则确定所述nginx服务器有漏洞。
[0006]根据本发明实施例的另一方面,还提供了一种nginx服务器的漏洞检测装置,该nginx服务器的漏洞检测装置包括:第一请求单元,用于向nginx服务器发送第一网络地址的访问请求,并获取所述nginx服务器响应所述第一网络地址的访问请求返回的第一内容类型;第二请求单元,用于向所述nginx服务器发送第二网络地址的访问请求,并获取所述nginx服务器响应所述第二网络地址的访问请求返回的第二内容类型,其中,所述第一网络地址与所述第二网络地址的内容类型相同;第一判断单元,用于判断所述第一内容类型和所述第二内容类型是否相同;以及确定单元,用于在判断出所述第一内容类型和所述第二内容类型不相同时,确定所述nginx服务器有漏洞。
[0007]在本发明实施例中,本发明实施例提供了一种nginx服务器的漏洞检测方法,采用向nginx服务器发送第一网络地址的访问请求,并获取nginx服务器响应第一网络地址的访问请求返回的第一内容类型;向nginx服务器发送第二网络地址的访问请求,并获取nginx服务器响应第二网络地址的访问请求返回的第二内容类型,其中,第一网络地址与第二网络地址的内容类型相同;判断第一内容类型和第二内容类型是否相同;以及如果判断出第一内容类型和第二内容类型不相同,则确定nginx服务器有漏洞的方式,通过判断第一内容类型和第二内容类型的不同,达到了检测nginx服务器漏洞的目的,解决了现有技术中检测nginx服务器漏洞不准确的问题,进而达到了提高检测nginx服务器漏洞准确性的效果。
【附图说明】
[0008]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0009]图1是根据本发明实施例的nginx服务器的漏洞检测方法的流程图;
[0010]图2是根据本发明实施例的nginx服务器的漏洞检测装置的示意图;
[0011]图3是根据本发明优选实施例的nginx服务器的漏洞检测方法的流程图;
[0012]图4是根据本发明实施例的终端和nginx服务器进行交互的时序图;以及
[0013]图5是根据本发明实施例的一种终端的结构示意图。
【具体实施方式】
[0014]为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0015]需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0016]漏洞介绍:nginx服务器是一款高性能的web服务器,使用非常广泛,其不仅经常被用作反向代理,也可以非常好的支持PHP的运行。但是,该服务器中存在一个较为严重的安全问题,即默认情况下可能导致服务器错误的将任何类型的文件均以php的方式进行解析,使得恶意的攻击者可能利用该漏洞以php的方式运行恶意文件,从而攻陷支持php的nginx服务器。
[0017]漏洞分析:nginx服务器默认以cgi的方式支持php的运行,譬如在配置文件当中可以按照如下方式对Php进行解析:
[0018]locat1n ?.php$ {
[0019]root html ;
[0020]fastcgi_passl27.0.0.1:9000 ;
[0021]fastcgi_index index, php ;
[0022]fastcgi_param SCRIPT_FILENAME/scripts$fastcgi_script_name ;
[0023]include fastcgi_params ;
[0024]}
[0025]Nginx服务器中的locat1n对请求进行选择的时候会使用通用资源标识符(Uniform Resource Identifier,简称URI)环境变量进行选择,其中传递到后端Fastcgi的关键变量SCRIPT_FILENAME由nginx服务器生成的$fastcgi_script_name决定,而通过分析可以看到$fastcgi_script_name是直接由URI环境变量控制的,为了较好的支持PATH_INFO的提取,在php的配置选项里存在cg1.fix_pathinfo选项,其目的是为了从SCRIPT_FILENAME里取出真正的脚本名。
[0026]那么假设存在一个http://www.test, com/test, jpg,以如下的网址访问:
[0027]http://www.test, com/test, jpg/test, php
[0028]将会得到一个URI 环境变量“/test, jpg/test, php”
[0029]经过locat1n指令,该请求将会交给后端的fastcgi处理,nginx服务器为其设置环境变量SCRIPT_FILENAME,内容为:
[0030]/scripts/test, jpg/test, php
[0031]后端的fastcgi在接收到该网址时,会根据fix_pathinfo配置决定是否对SCRIPT_FILENAME进行额外的处理,一般情况下如果不对fix_pathinfo进行开启将影响使用PATH_INFO进行路由选择的应用,所以一般将该配置开启。php通过该选项之后将查找其中真正的脚本文件名字,查找的方式也是查看文件是否存在,这个时候将分离出SCRIPT_FILENAME和PATH_INF0分别为:
[0032]/scripts/test, jpg 和 test, php
[0033]最后,以/scripts/test, jpg作为此次请求需要执行的脚本,攻击者就可以实现让nginx服务器以php来解析任何类型的文件了。
[0034]访问一个nginx服务器来支持php的站点,在一个任何资源的文件如robots, txt后面加上/test, php,这个时候你可以看到如下的区别:
[0035]访问 http://www.test, com/robots, txt
[0036]HTTP/1.12000K
[0037]Server:nginx/0.6.32
[0038]Date: Thu, 20May201010:05:30GMT
[0039]Content-Type: text/plain
[0040]Content-Length:18
[0041]Last-Modified:Thu, 20May201006:26:34GMT
[0042]Connect1n:keep-alive
[0043]Keep-Alive: timeout = 20
[0044]Accept-Ranges: bytes
[0045]访问 http://www.test, com/robots, txt/test, php
[0046]HTTP/1.12000K
[0047]Server:nginx/0.6.32
[0048]Date: Thu, 20May201010:06:49GMT
[0049]Content-Type:text/html
[0050]艮P访问 http://www.sec.com/robots, txt 时的 content type 为 text/plain,访问http://www.sec.com/robots, txt/test, php 时的 content type 为 text/html。
[0051]实施例1
[0052]根据本发明实施例,可以提供了一种可以用于实施本申请nginx服务器的漏洞检测方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0053]根据本发明实施例,提供了一种nginx服务器
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1