首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主机头攻击->密码重置毒害-> ASP.NET Web 2托管为

问主机头攻击->密码重置毒害-> ASP.NET Web 2托管为
EN

Security用户
提问于 2017-10-06 07:49:23
回答 1查看 3.2K关注 0票数 1

我目前正在测试一个站点,其中主机头用于创建恢复电子邮件链接。但是,当我试图操作Burp中的主机头时,我会收到一条HTTP 400消息,其中说我使用的是无效的主机名。即使我只试图篡改GET /或任何其他请求的主机头,也会出现此错误。

我最初的想法是,由于它是Azure上的Azure,主机没有找到,在服务器上也没有绑定,因此无法工作。但是,在同一个application服务器上,还有一个托管的应用程序允许我对其进行测试。当我添加一个我知道存在于该服务器上的主机头时,我仍然会得到相同的HTTP 400错误。

微软采取了什么措施来防止这种情况?

Ping检查域是否位于同一服务器上:

示例请求、已编辑的主机和目标,但两个域位于同一台服务器上。

消息总是一样的:

代码语言:javascript
复制
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Fri, 06 Oct 2017 07:28:25 GMT
Connection: close
Content-Length: 334

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Hostname</h2>
<hr><p>HTTP Error 400. The request hostname is invalid.</p>
</BODY></HTML>

我可以向请求中添加一个X-Forwarded-Host: mydomain.com,它将通过,但不会作为主机拾取头部。

https://www.acunetix.com/blog/articles/automated-detection-of-host-header-attacks/

EN

回答 1

Security用户

发布于 2017-10-06 08:48:11

试试看自己回答这个问题。负责发送电子邮件的代码如下所示:

代码语言:javascript
复制
await emailRepository.SendResetPasswordTokenAsync(Url.Action("ResetPassword", "Authentication", new { token.Token }, Request.Url.Scheme), model.Email, token.User.FullName);

易受伤害的部分是:

代码语言:javascript
复制
Url.Action("ResetPassword", "Authentication", new { token.Token }, Request.Url.Scheme)

我在我的机器上创建了一个应用程序,并尝试使用IIS Express创建URL,并更改了主机,得到了完全相同的错误。我认为发生此错误是因为没有默认绑定,而且请求是使用HTTPS发出的。如果我将请求更改为使用标准HTTP,主机头将被解释,在下面的请求中,我将以domain2结束。

不过,我也尝试过使用本地IIS和绑定来捕获端口80上的所有内容。使用与易受攻击的应用程序相同的代码,我能够操作主机:

代码:

代码语言:javascript
复制
public ActionResult Index()
{
    var host = Request.Headers["host"];

    ViewBag.Title = $"Host: {host} Url Created: {Url.Action("Index", "Home", "", Request.Url.Scheme)}";

    return View();
}
票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/170755

复制
相关文章

相似问题

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