cwe - 444:不一致的解释HTTP请求(HTTP请求/响应走私的)
视图定制的信息:
HTTP请求或响应(“信息”)可以畸形或意想不到的方式使web服务器或客户端以不同的方式解释消息比中介HTTP代理如负载平衡器、反向代理,网络缓存代理,应用防火墙,等。例如,敌人可以添加重复的或不同的客户机或服务器头字段,可能解释的一组消息,而中介可能解释相同的字节序列一组不同的消息。例如,差异可以出现在如何处理重复标题像两个传输编码(TE)或两个内容长度(CL),或恶意HTTP消息会有不同的头TE和CL。 消息的解析和解释不一致可以让对手“走私”消息的客户机/服务器没有中介意识到它。 这个弱点的结果通常是过时的或不相容的HTTP协议版本的使用HTTP代理。
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关的视图”研究概念”(cwe - 1000)
相关观点“软件开发”(cwe - 699)
简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
该清单显示了给定的弱点可以可能的地区出现。这些可能是为特定命名的语言,操作系统,架构、模式、技术、或一个类这样的平台。列出的平台是随着频率的出现疲态实例。
语言 类:不是特定于语言的患病率(待定) 技术 类:基于Web的患病率(待定)
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
示例1 在接下来的例子中,一个畸形的HTTP请求发送到一个网站,包括代理服务器和web服务器缓存中毒意图的关联与另一个恶意网页一个网页。
(攻击代码)
文章http://www.website.com/foobar.html HTTP / 1.1
主持人:www.website.com 连接:维生 内容类型:应用程序/ x-www-form-urlencoded 内容长度:0 内容长度:54 GET /毒药。html HTTP / 1.1 主持人:www.website.com Bla: http://www.website.com/page_to_poison.html HTTP / 1.1 主持人:www.website.com 连接:维生 当请求被发送到代理服务器,代理服务器解析的前四行POST请求,遇到两头“内容长度”。代理服务器忽略了第一头,所以假设请求的54个字节长度。因此,它将在未来三行数据完全包含54个字节作为第一个请求的身体:
(结果)
GET /毒药。html HTTP / 1.1
主持人:www.website.com Bla: 代理然后解析剩余的字节,它对待客户的第二个请求:
(攻击代码)
得到http://www.website.com/page_to_poison.html HTTP / 1.1
主持人:www.website.com 连接:维生 原始请求转发代理服务器到web服务器。与代理不同的是,web服务器使用的第一个内容长度”“头和认为第一个POST请求没有身体。
(攻击代码)
文章http://www.website.com/foobar.html HTTP / 1.1
主持人:www.website.com 连接:维生 内容类型:应用程序/ x-www-form-urlencoded 内容长度:0 内容长度:54(忽略服务器) 因为web服务器认为最初的POST请求长度0,它解析第二个请求,例如得到/ poison.html:
(攻击代码)
GET /毒药。html HTTP / 1.1
主持人:www.website.com Bla: http://www.website.com/page_to_poison.html HTTP / 1.1 主持人:www.website.com 连接:维生 注意,”Bla:“头都被视为一个常规的头,所以它不是作为一个单独的GET请求进行解析。 web服务器的请求将是“后/ foobar。html”和“GET /毒药。html”,所以它发送回两个反应的内容“foobar。html页面”和“毒药。分别html”页面。代理匹配这些反应的两个请求它认为是客户端发送的“后/ foobar。html”和“GET / page_to_poison.html”。如果响应缓存,代理缓存的内容“毒药。html page_to_poison根据URL。html”和缓存中毒!任何客户端请求”page_to_poison。html”从代理将获得“毒药。html”页面。 当一个网站包括代理服务器和web服务器,一些防止这种类型的攻击可以通过安装一个web应用程序防火墙,或者使用一个web服务器,其中包括更严格的HTTP解析过程或让所有网页停机。 此外,如果一个web应用程序包含一个Java servlet来处理请求,servlet可以检查多个内容长度”“头和如果他们发现servlet可以返回一个错误响应从而防止毒页面缓存,如下所示。
(好的代码)
例如语言:Java
保护无效processRequest (HttpServletRequest请求,HttpServletResponse响应)抛出ServletException IOException {
/ /设置响应作家对象 … 尝试{
/ /检查多个内容标题长度
内容长度枚举contentLengthHeaders = request.getHeaders (“”); int数= 0; 而(contentLengthHeaders.hasMoreElements ()) {
数+ +; }如果(数> 1){
/ /输出错误响应
}其他{
/ /处理请求
示例2 在接下来的例子中,一个畸形的HTTP请求发送到一个网站,包括一个web服务器和防火墙的目的绕过web服务器防火墙将恶意代码到系统中。
(攻击代码)
文章/页。asp HTTP / 1.1
主持人:www.website.com 连接:维生 内容长度:49223 打鼾声……打鼾声(“z”x 49152) 文章/页。asp HTTP / 1.0 连接:维生 内容长度:30 文章/页。asp HTTP / 1.0 Bla: POST / page.asp ? cmd。exe HTTP / 1.0 连接:维生 当请求被发送到web服务器,第一POST请求内容长度为49223字节,和防火墙将与49152份“z”和线与一个额外的线以71字节为(49152 + 71 = 49223)。防火墙然后继续解析什么是它认为第二个请求从第三POST请求。 注意,没有CRLF后“Bla:“头在直线解析后的价值“Bla:“头。虽然行包含模式识别与蠕虫(用于cmd . exe),它不是阻止,因为它被认为是一个头的一部分价值。因此,“cmd。exe”是通过防火墙走私。 当请求通过防火墙web服务器第一个请求被忽略,因为web服务器不找到一个预期的“内容类型:应用程序/ x-www-form-urlencoded”头,并开始解析第二个请求。 第二个请求内容长度30字节,这正是的长度下两行后的空间“Bla:“头。与防火墙不同,web服务器进程的最后一个帖子作为一个独立的第三方的请求和“cmd。exe”蠕虫通过防火墙走私到web服务器。 为了避免这种攻击Web服务器必须使用防火墙产品,旨在防止这种类型的攻击。 示例3 HTTP响应的解释可以操纵响应头包括一个标题名称和结肠之间的空间,或者通过代理配置为发送HTTP 1.1头是HTTP 1.0,允许HTTP响应走私。这可以利用web浏览器和其他应用程序结合使用时不同的代理服务器。例如,HTTP响应解释由前端/端HTTP代理/实体——在这种情况下,web浏览器可以解释的单个响应adversary-compromised web服务器作为两个反应从两个不同的网站。在下面的例子中,注意内容长度和set - cookie头后的额外空间。
(攻击代码)
HTTP / 1.1 200 OK
时间:星期五,2016年8月08年08:12:31格林尼治时间 服务器:Apache (Unix) 连接:维生 内容编码:gzip 内容类型:text / html 内容长度:2345年 传输编码:分块 set - cookie:令牌=“恶意代码” < HTML >…“恶意代码”
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
更多的信息是可用的,请选择一个不同的过滤器。
|
使用常见的弱点枚举(CWE)和相关的引用从这个网站的使用条款。CWE赞助的美国国土安全部(DHS)网络和基础设施安全机构(CISA)和管理的国土安全系统工程和发展研究所这是由(HSSEDI)manbetx客户端首页(斜方)。版权©2006 - 2023,斜方公司。manbetx客户端首页CWE、水煤浆、CWRAF, CWE标志是斜方公司的商标。manbetx客户端首页 |