首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主机头注入

主机头注入
EN

Stack Overflow用户
提问于 2017-12-19 04:44:36
回答 1查看 3.4K关注 0票数 2

我是一个安全和阅读主机头注入的初学者。我测试了一个应用程序是否存在此漏洞,并且可能存在一些请求,但开发人员实现了无缓存、无存储标志,并且该漏洞未处于密码重置请求中。

所以第一件事是不会有缓存中毒。第二,在密码重置请求中没有发生这种情况。

正如我所理解的那样,为了利用这个漏洞,我更改了主机头。所以我想知道为什么它会是一个漏洞,为什么用户会改变应用程序的主机?攻击者如何利用它呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-15 04:58:41

与所有情况一样,应用程序上的客户端输入不应该被信任(在安全性方面)。host标头属性也是客户端可以更改的内容。

例如,典型的攻击场景是:

让我们假设您有一个应用程序,您盲目地信任主机头值,并在应用程序中使用它,而不对其进行验证。因此,您可能在应用程序中有以下代码,动态加载JS文件(按主机名):

代码语言:javascript
复制
<script src="http://<?php echo $_SERVER['HOST'] ?>/script.js">

在此场景中,无论攻击者将其设置为主机标头,都会在此JS脚本加载中反映出来。因此,攻击者可以通过操纵响应来从另一个主机加载JS脚本(可能是恶意的)来篡改这一点。如果应用程序正在使用任何缓存机制或CDN,并且该请求多次重复,则缓存代理可以缓存它。然后,也可以将它提供给其他用户(因为它被保存到缓存中)。

另一种利用这一机会的方法是:

假设应用程序具有用户密码重置功能。该应用程序将发送一封电子邮件给任何要求重新设置密码的人,其中包含一个唯一的令牌来重置密码,如下面的电子邮件:

代码语言:javascript
复制
Hi user,
Here is your reset link
http://<?php echo $_SERVER['HOST'] ?>/reset-password?token=<?php echo $token ?>

现在,攻击者可以通过将主机标头值篡改为他想要的值,从而触发已知的受害者电子邮件的密码重置。然后,受害者将收到密码重置的合法电子邮件,而URL将被更改为攻击者设置的域。如果受害者打开该链接,密码重置令牌可能会泄漏给攻击者,从而导致帐户接管。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47880156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档