CN113381976B - 一种走私攻击测试方法、装置、电子设备及存储介质 - Google Patents

一种走私攻击测试方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113381976B
CN113381976B CN202110510815.4A CN202110510815A CN113381976B CN 113381976 B CN113381976 B CN 113381976B CN 202110510815 A CN202110510815 A CN 202110510815A CN 113381976 B CN113381976 B CN 113381976B
Authority
CN
China
Prior art keywords
http request
field
http
reverse proxy
proxy server
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
Application number
CN202110510815.4A
Other languages
English (en)
Other versions
CN113381976A (zh
Inventor
王忠儒
宋首友
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dingniu Information Security Technology Jiangsu Co ltd
Beijing Digapis Technology Co ltd
Original Assignee
Dingniu Information Security Technology Jiangsu Co ltd
Beijing Digapis Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dingniu Information Security Technology Jiangsu Co ltd, Beijing Digapis Technology Co ltd filed Critical Dingniu Information Security Technology Jiangsu Co ltd
Priority to CN202110510815.4A priority Critical patent/CN113381976B/zh
Publication of CN113381976A publication Critical patent/CN113381976A/zh
Application granted granted Critical
Publication of CN113381976B publication Critical patent/CN113381976B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种走私攻击测试方法、装置、电子设备及存储介质,考虑反向代理服务器和后端服务器各自的请求解析方式,构建HTTP请求,由反向代理服务器正常识别该HTTP请求,而后端服务器则将该HTTP请求拆解至两个HTTP请求中,以此污染正常的HTTP请求,干扰网站处理一个或多个用户的HTTP请求序列,实现HTTP走私攻击。由此,辅助网络安全渗透测试人员进行安全测试,及时弥补测试漏洞,避免被攻击者利用。

Description

一种走私攻击测试方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机安全技术领域,更具体地说,涉及一种走私攻击测试方法、装置、电子设备及存储介质。
背景技术
在现代基于云的应用程序中,为提升用户的浏览速度,减轻服务器的负担,许多网站都已应用CDN加速服务,即“客户端-反向代理服务器-后端服务器”的体系架构。
但多数代理服务器和后端服务器在配置和解析HTTP请求的过程是不一致的,这种类型的机制虽然原始目的在于提升用户访问速度和Web应用的安全性,但其中服务器的差异性也会带来安全风险。
发明内容
有鉴于此,为解决上述问题,本发明提供一种走私攻击测试方法、装置、电子设备及存储介质,技术方案如下:
本发明一方面提供一种走私攻击测试方法,所述方法包括:
获取目标应用程序对应的反向代理服务器和后端服务器各自的请求解析方式;
基于所述反向代理服务器和所述后端服务器各自的请求解析方式,构建HTTP请求,所述HTTP请求的请求头包含表征实体长度的第一字段和/或表征传输编码的第二字段;
将所述HTTP请求发送至所述反向代理服务器,以实现:
所述反向代理服务器按照第一目标字段识别所述HTTP请求,并在识别正常的情况下转发所述HTTP请求至所述后端服务器;所述后端服务器按照第二目标字段识别所述HTTP请求,并在所述HTTP请求拆解至两个HTTP请求中的情况下报错,所述第一目标字段包括所述第一字段或者所述第二字段,所述第二目标字段包括所述第一字段或者所述第二字段。
可选的,所述构建HTTP请求,包括:
构建包含一个所述第一字段的第一HTTP请求;
相应的,所述反向代理服务器按照第一目标字段识别所述HTTP请求,包括:
所述反向代理服务器按照所述第一字段识别所述第一HTTP请求;
相应的,所述后端服务器按照第二目标字段识别所述HTTP请求,并在所述HTTP请求拆解至两个HTTP请求中的情况下报错,包括:
所述后端服务器以忽略所述第一字段识别的方式识别所述第一HTTP请求,并将所述第一HTTP请求拆解为两个正常的子HTTP请求;响应每个子HTTP请求,在响应内容中包含未授权内容的情况下报错。
可选的,所述构建HTTP请求,包括:
构建包含两个所述第一字段的第二HTTP请求,两个所述第一字段的内容不相同;
相应的,所述反向代理服务器按照第一目标字段识别所述HTTP请求,包括:
所述反向代理服务器按照其中一个所述第一字段识别所述第二HTTP请求;
相应的,所述后端服务器按照第二目标字段识别所述HTTP请求,包括:
所述后端服务器按照另一个所述第一字段识别所述第二HTTP请求。
可选的,所述构建HTTP请求,包括:
构建包含一个所述第一字段和一个所述第二字段的第三HTTP请求;
相应的,所述反向代理服务器按照第一目标字段识别所述HTTP请求,包括:
所述反向代理服务器按照所述第一字段识别第三HTTP请求;
相应的,所述后端服务器按照第二目标字段识别所述HTTP请求,包括:
所述后端服务器按照所述第二字段识别第三HTTP请求。
可选的,所述构建HTTP请求,包括:
构建包含一个所述第一字段和一个所述第二字段的第四HTTP请求;
相应的,所述反向代理服务器按照第一目标字段识别所述HTTP请求,包括:
所述反向代理服务器按照所述第二字段识别第四HTTP请求;
相应的,所述后端服务器按照第二目标字段识别所述HTTP请求,包括:
所述后端服务器按照所述第一字段识别所述第四HTTP请求。
可选的,所述构建HTTP请求,包括:
构建包含一个第一字段和两个第二字段的第五HTTP请求;
相应的,所述反向代理服务器按照第一目标字段识别所述HTTP请求,包括:
所述反向代理服务器按照其中一个所述第二字段识别所述第五HTTP请求;
相应的,所述后端服务器按照第二目标字段识别所述HTTP请求,包括:
所述后端服务器在识别到另一个所述第二字段异常的情况下,按照所述第一字段识别所述第五HTTP请求。
本发明另一方面提供一种走私攻击测试装置,所述装置包括:
请求构建模块,用于获取目标应用程序对应的反向代理服务器和后端服务器各自的请求解析方式;基于所述反向代理服务器和所述后端服务器各自的请求解析方式,构建HTTP请求,所述HTTP请求的请求头包含表征实体长度的第一字段和/或表征传输编码的第二字段;
攻击测试模块,用于将所述HTTP请求发送至所述反向代理服务器,以实现:所述反向代理服务器按照第一目标字段识别所述HTTP请求,并在识别正常的情况下转发所述HTTP请求至所述后端服务器;所述后端服务器按照第二目标字段识别所述HTTP请求,并在所述HTTP请求拆解至两个HTTP请求中的情况下报错,所述第一目标字段包括所述第一字段或者所述第二字段,所述第二目标字段包括所述第一字段或者所述第二字段。
可选的,所述请求构建模块执行构建HTTP请求的过程,包括:
构建包含一个所述第一字段的第一HTTP请求;
相应的,所述反向代理服务器按照第一目标字段识别所述HTTP请求,包括:
所述反向代理服务器按照所述第一字段识别所述第一HTTP请求;
相应的,所述后端服务器按照第二目标字段识别所述HTTP请求,并在所述HTTP请求拆解至两个HTTP请求中的情况下报错,包括:
所述后端服务器以忽略所述第一字段识别的方式识别所述第一HTTP请求,并将所述第一HTTP请求拆解为两个正常的子HTTP请求;响应每个子HTTP请求,在响应内容中包含未授权内容的情况下报错。
本发明另一方面提供一种电子设备,包括:至少一个存储器和至少一个处理器;所述存储器存储有程序,所述处理器调用所述存储器存储的程序,所述程序用于实现任意一项所述的走私攻击测试方法。
本发明另一方面提供一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行任意一项所述的走私攻击测试方法。
相较于现有技术,本发明实现的有益效果为:
本发明提供一种走私攻击测试方法、装置、电子设备及存储介质,考虑反向代理服务器和后端服务器各自的请求解析方式,构建HTTP请求,由反向代理服务器正常识别该HTTP请求,而后端服务器则将该HTTP请求拆解至两个HTTP请求中,以此污染正常的HTTP请求,干扰网站处理一个或多个用户的HTTP请求序列,实现HTTP走私攻击。由此,辅助网络安全渗透测试人员进行安全测试,及时弥补测试漏洞,避免被攻击者利用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的典型CDN加速服务的拓扑结构;
图2为本发明实施例提供的走私攻击测试方法的方法流程图;
图3为本发明实施例提供的场景示意图;
图4为本发明实施例提供的另一场景示意图;
图5为本发明实施例提供的再一场景示意图;
图6为本发明实施例提供的又一场景示意图;
图7为本发明实施例提供的又一场景示意图;
图8为本发明实施例提供的走私攻击测试装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
近些年来,随着Web网站应用服务的越来越多,网站厂商在提升网站访问速率和性能,为用户提供更好的体验方面颇费心思。目前HTTP/1.1依然是使用最广的协议,且从开始推广就支持通过一个底层TCP或SSL/TLS套接字发送多个HTTP请求,通过判定请求的结束位置和下一个开始位置,来解析标头,提升网站访问性能。
在现代基于云的应用程序中,为了提升用户的浏览速度,提高使用体验,减轻服务器的负担,很多网站都用上了CDN加速服务,即“客户端-反向代理服务器-后端服务器”这种类型的体系结构。Web应用程序在真正的后端服务器和用户之间使用具有缓存功能的反向代理服务器,通过反向代理服务器,将请求转发给一个或者多个后端服务器,缓存后端服务器返回的部分资源,隐藏真实的后端服务器地址。用户在请求某些静态资源时,直接从反向代理服务器中的缓存中就可以获取到,无需又一次地从源服务器获取资源。如图1所示,这是近年来非常典型的拓扑结构。
但多数代理服务器与后端服务器在配置和解析请求的过程是不一致的,这种类型的机制虽然原始目的是为了提升用户访问速度及Web应用的安全性,但其中服务器的差异性也会带来意想不到的安全风险。
HTTP/1.1支持通过TCP或SSL/TLS套接字发送多个HTTP请求。服务器通过解析请求头来计算每个HTTP请求结束的位置以及下一个HTTP请求开始的位置。现代网站是由系统链层次的架构组成,系统之间通过HTTP进行通信。反向代理服务器作为请求的中转站,需要与后端服务器就每个HTTP请求的结束位达成一致。否则,攻击者可能发送一个模糊不清的请求,反向代理服务器后端服务器对请求结束的认证方式不一致,导致后端服务器可能解析一个HTTP的请求为一个完整的请求加上残缺的下一个请求。后端服务器对残缺的下一个请求做出错误响应,则攻击者就实现了HTTP走私攻击。
HTTP走私攻击允许恶意用户绕过安全控制,获取对未授权访问的敏感数据,危害其他正常用户。对此,为了辅助网络安全渗透测试人员进行安全测试,及时弥补测试漏洞,避免被攻击者利用。本发明提供一种基于服务器解析差异的HTTP走私攻击测试技术。利用反向代理服务器与后端服务器对于HTTP请求解析处理不一致的差异性,在HTTP请求中嵌入了另一个HTTP请求,污染正常的HTTP请求,从而干扰网站处理一个或多个用户的HTTP请求序列,实现HTTP走私攻击的测试。
为方便理解本发明,以下对本发明出现的相关概念进行说明:
1)长连接:HTTP基于TCP连接之上,同样需要经过TCP三次握手建立连接。为了提高HTTP连接建立和传输的性能,便将长连接机制加入了HTTP协议。通过“Connection:keep-alive”这个HTTP的请求头来实现,Web应用的服务端和用户客户端都可以使用它告诉对方在发送完数据之后不需要断开TCP连接。
HTTP/1.1中另一个特性Pipelining(管线化)能够将多个HTTP请求整批提交,而不需要等待服务器响应,提供了流水线数据传送的能力。使用这种形式,则只需要进行一次TCP连接即可发送所有的HTTP请求,减少服务器的开销。Keep-Alive特性在HTTP1.1中是默认开启的。
2)Content-length(实体长度):HTTP请求的请求头中Content-Length用于描述HTTP请求的请求体(也称消息实体)的传输长度,服务器和浏览器都可以通过Content-Length的长度信息,判断出请求体是否已经结束。如果Content-Length比请求体的实际长度短,则会造成实体内容被截断;如果Content-Length比请求体的实际长度长,则会造成等待(pending)。在HTTP请求中,请求体一定要在请求头之后,顺序不能颠倒。
3)Transfer-Encoding(传输编码):chunked(分块编码):Transfer-Encoding的存在可以再不依赖Content-Length的情况下,找到实体边界。HTTP请求的请求头只为Transfer-Encoding定义了一种传输编码,即chunked(分块编码)。
HTTP请求的请求头出现“Transfer-Encoding:chunked”时,代表HTTP请求采用了分块编码,请求体需要使用内容分块来传输。每个分块包含十六进制的长度值和数据,长度值独占一行,长度不包括它结尾的CRLF(\r\n),也不包括分块数据结尾的CRLF。最后一个分块长度值必须为0,对应的分块数据没有内容,表示HTTP请求的请求体结束。
在整个HTTP请求中,反向代理服务器和后端服务器在解析HTTP请求的请求头中的Content-Length与Transfer-Encoding两个字段的时候可能具有很大的差异性。本发明借用这种差异性,可以实施HTTP走私攻击的测试。以下使用CL作为Content-Length的简写,使用TE作为Transfer-Encoding的简写。
参见图2所示的方法流程图,本发明实施例提供一种走私攻击测试方法,该方法包括如下步骤:
S10,获取目标应用程序对应的反向代理服务器和后端服务器各自的请求解析方式。
本发明实施例中,对于不同应用程序来说,其对应的反向代理服务器和后端服务器具有适应其场景的请求解析方式,该请求解析方式可以理解为对于整批提交的多个HTTP请求的拆解方式,通过解析请求头来计算请求体结束的位置,即HTTP请求的结束位。
S20,基于反向代理服务器和后端服务器各自的请求解析方式,构建HTTP请求,HTTP请求的请求头包含表征实体长度的第一字段和/或表征传输编码的第二字段。
本发明实施例中,考虑反向代理服务器和后端服务器两者请求解析方式的差异性,构建包含第一字段(后续用CL表示)和第二字段(后续用TE表示)中至少一个的请求头。
基于该请求头,反向代理服务器能够依据其请求解析方式识别HTTP请求,其识别的依据为后续第一目标字段,在识别HTTP请求正常,即HTTP请求为一个完整的请求后,再转发给后端服务器。后端服务器则依据其请求解析方式继续识别HTTP请求,其识别的依据为后续第二目标字段,其将HTTP请求拆解至两个HTTP请求中,例如将当前HTTP请求中请求体的一部分内容被拆解到下一个HTTP请求中,即报错。
S30,将HTTP请求发送至反向代理服务器,以实现:
反向代理服务器按照第一目标字段识别HTTP请求,并在识别正常的情况下转发HTTP请求至后端服务器;后端服务器按照第二目标字段识别HTTP请求,并在HTTP请求拆解至两个HTTP请求中的情况下报错,第一目标字段包括第一字段或者第二字段,第二目标字段包括第一字段或者第二字段。
本发明实施例中,根据反向代理服务器和后端服务器两者请求解析方式的差异性,第一目标字段为第一字段和第二字段中的一个,而第二目标字段则可以为第一字段和第二字段中的一个、或者其他内容。
以下本发明对于不同目标应用程度所在的不同场景来详细说明本发明:
1)CL不为0的GET请求
需要说明的是,无论是GET请求,还是后续的POST请求,均为HTTP请求的具体类型。
假设反向代理服务器允许HTTP的GET请求携带请求体,而后端服务器不允许,则后端服务器会直接忽略CL字段而不进行处理,这可能导致请求走私。
由此,构建HTTP请求时,即构建包含一个CL字段的GET请求,即第一HTTP请求。相应的,反向代理服务器收到该第一HTTP请求后,即读取该CL字段,并根据读取结果判定该第一HTTP请求是一个完整的请求后,将该第一HTTP请求转发给后端服务器。
后端服务器收到该第一HTTP请求后,不对其中的CL字段进行处理。由于管道技术(Pipeline,指可以将多个HTTP请求放到一个TCP连接中发送,发送过程中不需要等待服务器对前一个请求的响应)的存在,则将该第一HTTP请求判定为两个子HTTP请求,也就是两个GET请求,从而分别响应这两个GET请求,在其中一个GET请求的响应内容中发现未授权给用户的内容后,即报错。
参见图3所示的场景示意图。对于用户第一个GET请求,反向代理服务器基于其中的CL字段识别其为正常请求后,将该GET请求转发给后端服务器。后端服务器忽略其中的CL字段,而将该GET请求拆解为两个GET请求并分别响应,从而将拆解获得的第二个GET请求中对secret页面的内容返回给当前请求的用户,而secret页面可能当前用户并没有权限访问,因此走私攻击可能会造成信息泄露的问题。
2)CL-CL(反向代理服务器和后端服务器均处理CL字段)
RFC7230中规定服务器收到的HTTP请求中包含两个CL字段,而两个CL字段的内容(值)不同时,需返回400的代码。但是许多服务器不严格遵守规范。假设反向代理服务器和后端服务器都不会返回400,反向代理服务器按照第一个CL字段的内容处理,而后端服务器按照第二个CL字段的内容处理。
由此,构建HTTP请求时,即构建包含两个CL字段的HTTP请求,即第二HTTP请求。相应的,反向代理服务器收到该第二HTTP请求后,即读取第一个CL字段,并根据读取结果判定该第二HTTP请求是一个完整的请求后将该第二HTTP请求转发给后端服务器。
后端服务器收到该第二HTTP请求后,读取其中第二个CL字段,并根据读取结果将该第二HTTP请求拆解至两个HTTP请求中,即将当前第二HTTP请求中请求体的一部分内容拆解到下一个HTTP请求中,此时即报错。
参见图4所示的场景示意图。当用户发出第一个HTTP请求后,反向代理服务器按照实体长度为8处理该HTTP请求,认为该HTTP请求正常后转发给后端服务器。而后端服务器则以实体长度为7处理该HTTP请求,认为字母a属于下一个HTTP请求,并将字母a与用户的第二个HTTP请求拼接,产生报错。
3)CL-TE(反向代理服务器处理CL字段,后端服务器处理TE字段)
所谓CL-TE,即收到的HTTP请求的请求头包含CL和TE两个字段,反向代理服务器只处理CL字段,而后端服务器则遵守RFC2616(如果收到的消息同时带有一个Transfer-Encoding头域和一个Content-Length头域,则后者必须被忽略)的规定,忽略掉CL字段、只处理TE字段。
由此,构建HTTP请求时,即构建包含一个CL字段和一个TE字段的HTTP请求,即第三HTTP请求。相应的,反向代理服务器收到该第三HTTP请求后,即读取CL字段,并根据读取结果判定该第三HTTP请求是一个完整的请求后将该第三HTTP请求转发给后端服务器。
后端服务器收到该第三HTTP请求后,读取TE字段,并根据读取结果将该第三HTTP请求拆解至两个HTTP请求中,即将当前第二HTTP请求中请求体的一部分内容拆解到下一个HTTP请求中,此时即报错。
参见图5所示的场景示意图。当用户发出第一个HTTP请求后,反向代理服务器核实CL字段的内容与请求体内容长度一致,认为该HTTP请求正常后转发给后端服务器。而后端服务器只处理TE字段,认为出现0\r\n\r\n时,该HTTP请求已经结束,于是将剩余的字母G与用户的第二个HTTP请求拼接,产生报错。
4)TE-CL(反向代理服务器处理TE字段,后端服务器处理CL字段)
所谓TE-CL,即收到的HTTP请求的请求头包含TE和CL字段,反向代理服务器只处理TE字段,而后端服务器则忽略TE字段、只处理CL字段。
由此,构建HTTP请求时,即构建包含一个TE字段和一个CL字段的HTTP请求,即第四HTTP请求。相应的,反向代理服务器收到该第四HTTP请求后,即读取TE字段,并根据读取结果判定该第四HTTP请求是一个完整的请求后将该第四HTTP请求转发给后端服务器。
后端服务器收到该第四HTTP请求后,读取CL字段,读取结果将该第四HTTP请求拆解至两个HTTP请求中,即将当前第四HTTP请求中请求体的一部分内容拆解到下一个HTTP请求中,此时即报错。
参见6所示的场景示意图。当用户发出第一个HTTP请求后,反向代理服务器只处理TE字段,当读取到0\r\n\r\n时,认为读取完毕且该HTTP请求为正常请求,将该HTTP请求转发给后端服务器。而后端服务器只处理CL字段,认为出现12\r\n时,该HTTP请求已经结束,于是将剩余的内容判定为下一个HTTP请求的内容,与用户的第二个HTTP请求拼接,产生报错。
5)TE-TE(反向代理服务器和后端服务器均处理TE字段)
所谓TE-TE,即收到的HTTP请求的请求头包含两个TE字段,反向代理服务器和后端服务器各自处理一个TE字段,即两者都遵循了RFC的标准。但是两种服务器不是同一种类型。如果对请求头中的一个TE字段进行某种混淆操作,使其中一个服务器不处理TE字段,则可以实现某种意义上的CL-TE或者TE-CL类型攻击的构造。
由此,构建HTTP请求时,即构建包含一个CL字段和两个TE字段的HTTP请求,即第五HTTP请求。相应的,反向代理服务器收到该第五HTTP请求后,即读取第一个TE字段,并根据读取结果判定该第五HTTP请求是一个完整的请后将该第五HTTP请求转发给后端服务器。
后端服务器收到该第五HTTP请求后,读取第二个TE字段,识别到第二个TE字段存在异常后,读取CL字段,并根据读取结果将该第五HTTP请求拆解至两个HTTP请求中,即将当前第五HTTP请求中请求体的一部分内容拆解到下一个HTTP请求中,此时即报错。
参见图7所示的场景示意图。当用户发出第一个HTTP请求后,反向代理服务器按照第一个TE字段进行处理,认为该HTTP请求正常后转发给后端服务器。而后端服务器识别到第二个TE字段异常后,选择CL字段进行处理,则实体长度被解析为4,因此将该HTTP请求中请求体的一部分内容拆解到下一个HTTP请求,此时即报错。
以上五种类型的攻击均是基于反向代理服务器和后端服务器对HTTP请求头解析的差异性,进行的HTTP走私攻击。攻击者可以利用HTTP走私攻击绕过安全访问机制,获取未授权的数据和内容,甚至利用反向代理的缓存功能,污染甚至危害其他的正常用户。
本发明实施例提供的走私攻击测试方法,考虑反向代理服务器和后端服务器各自的请求解析方式,构建HTTP请求,由反向代理服务器正常识别该HTTP请求,而后端服务器则将该HTTP请求拆解至两个HTTP请求中,以此污染正常的HTTP请求,干扰网站处理一个或多个用户的HTTP请求序列,实现HTTP走私攻击。由此,辅助网络安全渗透测试人员进行安全测试,及时弥补测试漏洞,避免被攻击者利用。
基于上述实施例提供的走私攻击测试方法,本发明实施例还提供一种执行上述走私攻击测试方法的装置,该装置的结构示意图如图8所示,包括:
请求构建模块10,用于获取目标应用程序对应的反向代理服务器和后端服务器各自的请求解析方式;基于反向代理服务器和后端服务器各自的请求解析方式,构建HTTP请求,HTTP请求的请求头包含表征实体长度的第一字段和/或表征传输编码的第二字段;
攻击测试模块20,用于将HTTP请求发送至反向代理服务器,以实现:反向代理服务器按照第一目标字段识别HTTP请求,并在识别正常的情况下转发HTTP请求至后端服务器;后端服务器按照第二目标字段识别HTTP请求,并在HTTP请求拆解至两个HTTP请求中的情况下报错,第一目标字段包括第一字段或者第二字段,第二目标字段包括第一字段或者第二字段。
可选的,请求构建模块10执行构建HTTP请求的过程,包括:
构建包含一个第一字段的第一HTTP请求;
相应的,反向代理服务器按照第一目标字段识别HTTP请求,包括:
反向代理服务器按照第一字段识别第一HTTP请求;
相应的,后端服务器按照第二目标字段识别HTTP请求,并在HTTP请求拆解至两个HTTP请求中的情况下报错,包括:
后端服务器以忽略第一字段识别的方式识别第一HTTP请求,并将第一HTTP请求拆解为两个正常的子HTTP请求;响应每个子HTTP请求,在响应内容中包含未授权内容的情况下报错。
可选的,请求构建模块10执行构建HTTP请求的过程,包括:
构建包含两个第一字段的第二HTTP请求,两个第一字段的内容不相同;
相应的,反向代理服务器按照第一目标字段识别HTTP请求,包括:
反向代理服务器按照其中一个第一字段识别第二HTTP请求;
相应的,后端服务器按照第二目标字段识别HTTP请求,包括:
后端服务器按照另一个第一字段识别第二HTTP请求。
可选的,请求构建模块10执行构建HTTP请求的过程,包括:
构建包含一个第一字段和一个第二字段的第三HTTP请求;
相应的,反向代理服务器按照第一目标字段识别HTTP请求,包括:
反向代理服务器按照第一字段识别第三HTTP请求;
相应的,后端服务器按照第二目标字段识别HTTP请求,包括:
后端服务器按照第二字段识别第三HTTP请求。
可选的,请求构建模块10执行构建HTTP请求的过程,包括:
构建包含一个第一字段和一个第二字段的第四HTTP请求;
相应的,反向代理服务器按照第一目标字段识别HTTP请求,包括:
反向代理服务器按照第二字段识别第四HTTP请求;
相应的,后端服务器按照第二目标字段识别HTTP请求,包括:
后端服务器按照第一字段识别第四HTTP请求。
可选的,请求构建模块10执行构建HTTP请求的过程,包括:
构建包含一个第一字段和两个第二字段的第五HTTP请求;
相应的,反向代理服务器按照第一目标字段识别HTTP请求,包括:
反向代理服务器按照其中一个第二字段识别第五HTTP请求;
相应的,后端服务器按照第二目标字段识别HTTP请求,包括:
后端服务器在识别到另一个第二字段异常的情况下,按照第一字段识别第五HTTP请求。
本发明实施例提供的走私攻击测试装置,考虑反向代理服务器和后端服务器各自的请求解析方式,构建HTTP请求,由反向代理服务器正常识别该HTTP请求,而后端服务器则将该HTTP请求拆解至两个HTTP请求中,以此污染正常的HTTP请求,干扰网站处理一个或多个用户的HTTP请求序列,实现HTTP走私攻击。由此,辅助网络安全渗透测试人员进行安全测试,及时弥补测试漏洞,避免被攻击者利用。
基于上述实施例提供的走私攻击测试方法,本发明实施例还提供一种电子设备,包括:至少一个存储器和至少一个处理器;存储器存储有程序,处理器调用存储器存储的程序,程序用于实现上述实施例所述的走私攻击测试方法。
基于上述实施例提供的走私攻击测试方法,本发明实施例还提供一种存储介质,存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行实施例所述的走私攻击测试方法。
以上对本发明所提供的一种走私攻击测试方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种走私攻击测试方法,其特征在于,所述方法包括:
获取目标应用程序对应的反向代理服务器和后端服务器各自的请求解析方式;
基于所述反向代理服务器和所述后端服务器各自的请求解析方式,构建HTTP请求,所述HTTP请求的请求头包含表征实体长度的第一字段和/或表征传输编码的第二字段;
将所述HTTP请求发送至所述反向代理服务器,以实现:
所述反向代理服务器按照第一目标字段识别所述HTTP请求,并在识别正常的情况下转发所述HTTP请求至所述后端服务器;所述后端服务器按照第二目标字段识别所述HTTP请求,并在所述HTTP请求拆解至两个HTTP请求中的情况下报错,所述第一目标字段包括所述第一字段或者所述第二字段,所述第二目标字段包括所述第一字段或者所述第二字段。
2.根据权利要求1所述的方法,其特征在于,所述构建HTTP请求,包括:
构建包含一个所述第一字段的第一HTTP请求;
相应的,所述反向代理服务器按照第一目标字段识别所述HTTP请求,包括:
所述反向代理服务器按照所述第一字段识别所述第一HTTP请求;
相应的,所述后端服务器按照第二目标字段识别所述HTTP请求,并在所述HTTP请求拆解至两个HTTP请求中的情况下报错,包括:
所述后端服务器以忽略所述第一字段识别的方式识别所述第一HTTP请求,并将所述第一HTTP请求拆解为两个正常的子HTTP请求;响应每个子HTTP请求,在响应内容中包含未授权内容的情况下报错。
3.根据权利要求1所述的方法,其特征在于,所述构建HTTP请求,包括:
构建包含两个所述第一字段的第二HTTP请求,两个所述第一字段的内容不相同;
相应的,所述反向代理服务器按照第一目标字段识别所述HTTP请求,包括:
所述反向代理服务器按照其中一个所述第一字段识别所述第二HTTP请求;
相应的,所述后端服务器按照第二目标字段识别所述HTTP请求,包括:
所述后端服务器按照另一个所述第一字段识别所述第二HTTP请求。
4.根据权利要求1所述的方法,其特征在于,所述构建HTTP请求,包括:
构建包含一个所述第一字段和一个所述第二字段的第三HTTP请求;
相应的,所述反向代理服务器按照第一目标字段识别所述HTTP请求,包括:
所述反向代理服务器按照所述第一字段识别第三HTTP请求;
相应的,所述后端服务器按照第二目标字段识别所述HTTP请求,包括:
所述后端服务器按照所述第二字段识别第三HTTP请求。
5.根据权利要求1所述的方法,其特征在于,所述构建HTTP请求,包括:
构建包含一个所述第一字段和一个所述第二字段的第四HTTP请求;
相应的,所述反向代理服务器按照第一目标字段识别所述HTTP请求,包括:
所述反向代理服务器按照所述第二字段识别第四HTTP请求;
相应的,所述后端服务器按照第二目标字段识别所述HTTP请求,包括:
所述后端服务器按照所述第一字段识别所述第四HTTP请求。
6.根据权利要求1所述的方法,其特征在于,所述构建HTTP请求,包括:
构建包含一个第一字段和两个第二字段的第五HTTP请求;
相应的,所述反向代理服务器按照第一目标字段识别所述HTTP请求,包括:
所述反向代理服务器按照其中一个所述第二字段识别所述第五HTTP请求;
相应的,所述后端服务器按照第二目标字段识别所述HTTP请求,包括:
所述后端服务器在识别到另一个所述第二字段异常的情况下,按照所述第一字段识别所述第五HTTP请求。
7.一种走私攻击测试装置,其特征在于,所述装置包括:
请求构建模块,用于获取目标应用程序对应的反向代理服务器和后端服务器各自的请求解析方式;基于所述反向代理服务器和所述后端服务器各自的请求解析方式,构建HTTP请求,所述HTTP请求的请求头包含表征实体长度的第一字段和/或表征传输编码的第二字段;
攻击测试模块,用于将所述HTTP请求发送至所述反向代理服务器,以实现:所述反向代理服务器按照第一目标字段识别所述HTTP请求,并在识别正常的情况下转发所述HTTP请求至所述后端服务器;所述后端服务器按照第二目标字段识别所述HTTP请求,并在所述HTTP请求拆解至两个HTTP请求中的情况下报错,所述第一目标字段包括所述第一字段或者所述第二字段,所述第二目标字段包括所述第一字段或者所述第二字段。
8.根据权利要求7所述的装置,其特征在于,所述请求构建模块执行构建HTTP请求的过程,包括:
构建包含一个所述第一字段的第一HTTP请求;
相应的,所述反向代理服务器按照第一目标字段识别所述HTTP请求,包括:
所述反向代理服务器按照所述第一字段识别所述第一HTTP请求;
相应的,所述后端服务器按照第二目标字段识别所述HTTP请求,并在所述HTTP请求拆解至两个HTTP请求中的情况下报错,包括:
所述后端服务器以忽略所述第一字段识别的方式识别所述第一HTTP请求,并将所述第一HTTP请求拆解为两个正常的子HTTP请求;响应每个子HTTP请求,在响应内容中包含未授权内容的情况下报错。
9.一种电子设备,其特征在于,包括:至少一个存储器和至少一个处理器;所述存储器存储有程序,所述处理器调用所述存储器存储的程序,所述程序用于实现如权利要求1-6任意一项所述的走私攻击测试方法。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行如权利要求1-6任意一项所述的走私攻击测试方法。
CN202110510815.4A 2021-05-11 2021-05-11 一种走私攻击测试方法、装置、电子设备及存储介质 Active CN113381976B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110510815.4A CN113381976B (zh) 2021-05-11 2021-05-11 一种走私攻击测试方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110510815.4A CN113381976B (zh) 2021-05-11 2021-05-11 一种走私攻击测试方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113381976A CN113381976A (zh) 2021-09-10
CN113381976B true CN113381976B (zh) 2022-06-24

Family

ID=77572627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110510815.4A Active CN113381976B (zh) 2021-05-11 2021-05-11 一种走私攻击测试方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113381976B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088465A (zh) * 2011-03-16 2011-06-08 中国科学院软件研究所 一种基于前置网关的HTTPCookie保护方法
CN102185900A (zh) * 2011-04-18 2011-09-14 北京新媒传信科技有限公司 一种应用服务平台系统和一种开发应用服务的方法
CN103561068A (zh) * 2013-10-25 2014-02-05 星云融创(北京)信息技术有限公司 一种提高网页浏览速度的方法及装置
CN103795762A (zh) * 2012-11-01 2014-05-14 百度在线网络技术(北京)有限公司 一种反向代理的测试方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9590990B2 (en) * 2009-05-11 2017-03-07 International Business Machines Corporation Assigning user requests of different types or protocols to a user by trust association interceptors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102088465A (zh) * 2011-03-16 2011-06-08 中国科学院软件研究所 一种基于前置网关的HTTPCookie保护方法
CN102185900A (zh) * 2011-04-18 2011-09-14 北京新媒传信科技有限公司 一种应用服务平台系统和一种开发应用服务的方法
CN103795762A (zh) * 2012-11-01 2014-05-14 百度在线网络技术(北京)有限公司 一种反向代理的测试方法及系统
CN103561068A (zh) * 2013-10-25 2014-02-05 星云融创(北京)信息技术有限公司 一种提高网页浏览速度的方法及装置

Also Published As

Publication number Publication date
CN113381976A (zh) 2021-09-10

Similar Documents

Publication Publication Date Title
CN108206802B (zh) 检测网页后门的方法和装置
EP3424178B1 (en) Deterministic reproduction of client/server computer state or output sent to one or more client computers
US8869279B2 (en) Detecting web browser based attacks using browser response comparison tests launched from a remote source
CN111400722B (zh) 扫描小程序的方法、装置、计算机设备和存储介质
CN106936791B (zh) 拦截恶意网址访问的方法和装置
CN108809890B (zh) 漏洞检测方法、测试服务器及客户端
CN107347076B (zh) Ssrf漏洞的检测方法及装置
CN104767775A (zh) 网页应用消息推送方法及系统
US20140280883A1 (en) Secure URL update for HTTP redirects
CN104811462A (zh) 一种接入网关重定向方法及接入网关
CN112926061B (zh) 插件处理方法及装置
CN110730189B (zh) 一种通信认证方法、装置、设备及存储介质
CN114157607A (zh) 媒体流传输方法和系统
WO2019082818A1 (ja) 通信装置、通信システム及び通信プログラム
EP2854363B1 (en) Polluting results of vulnerability scans
CN111556080A (zh) 网络节点监控方法、装置、介质及电子设备
CN113873057B (zh) 数据处理方法和装置
CN109558148B (zh) 路由器的插件安装方法、装置、设备及存储介质
CN102833327A (zh) 基于http的客户端类型的识别方法和装置
CN108259416B (zh) 检测恶意网页的方法及相关设备
CN113381976B (zh) 一种走私攻击测试方法、装置、电子设备及存储介质
CN110177096B (zh) 客户端认证方法、装置、介质和计算设备
CN111225038A (zh) 服务器访问方法及装置
CN110191203A (zh) 实现服务器动态访问的方法及电子设备
US20190347407A1 (en) Detecting client-side exploits in web applications

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