主机头注入漏洞与重定向攻击分析

本文详细分析了GitHub上blockstack-core项目存在的主机头注入/重定向漏洞,包括漏洞原理、攻击影响、复现步骤和修复建议。攻击者可利用此漏洞进行密码重置令牌劫持和缓存投毒等攻击。

重定向漏洞/主机头注入漏洞分析报告

漏洞概述

在https://github.com/blockstack/blockstack-core/ 项目中发现了主机头注入/重定向漏洞。

影响分析

攻击向量相对有限,但具体影响取决于后端应用程序代码如何使用主机头。如果代码引用了URL中使用的主机名(例如密码重置页面),攻击者可以欺骗请求的主机头,诱使应用程序将密码重置电子邮件转发到攻击者的域。其他攻击向量还可能通过操纵超链接或依赖请求主机/域的其他杂项代码来实现。

漏洞复现

验证方法

在Linux中使用CURL命令验证漏洞:

1
curl -H Host:evil.net https://github.com/blockstack/blockstack-core/ -i

验证结果

1
2
3
HTTP/1.1 301 Moved Permanently
Content-Length: 0
Location: https://github.com.evil.net/blockstack/blockstack-core/index.html

从结果可见,原始网站被重定向到伪造的evil.net网站,证实存在重定向/主机头注入漏洞。

技术细节

大多数应用程序通常会拒绝任何不来自同一源的请求。修复方法应该是应用程序拒绝任何与目标域不匹配的内容。这也可能是后端Web服务器重写功能的错误。

此漏洞可能导致缓存投毒和密码重置令牌劫持。

参考资料

关于此漏洞的更多详细信息,请阅读:https://www.acunetix.com/blog/articles/automated-detection-of-host-header-attacks/

处理状态

  • 报告时间:2017年12月23日
  • 报告者:vyshnav_nk
  • 报告对象:Hiro
  • 严重程度:中等(4 ~ 6.9)
  • 弱点类型:开放重定向
  • 状态:已披露

厂商回应

Hiro团队关闭了报告并将状态设置为"信息性",认为这是一个非常有限的攻击向量,并且是针对他们不运营或管理的服务的攻击向量。这将是针对GitHub的漏洞利用,由另一家公司运营。如果报告者认为这是一个重要的漏洞利用,建议直接向GitHub提交报告。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计