0x01 前言

看到国外老哥挖洞思路挺骚的,这里记录一下。原文连接

0x02 详情

在某个网站上,发现密码重置功能

image-20221026095909492

通过抓包分析

image-20221026100005603

每当输入电子邮件并单击重置密码时,我们都会收到一封带有密码重置令牌链接更改密码的电子邮件

拦截密码重置请求,小哥也启动了ngrok服务器

原始请求中用ngrok服务器域添加了另一个标头“X-Forwarded-Host”

image-20221026100143927

这次收到了一封更改密码的电子邮件,并且使用ngrok服务器域名。密码重置令牌链接如下所示:

https://95saf4ct71g.ngrok.io/action-token?key=wia2lkIiA6ICciOiJIUzI1NiIsInR5cCIgODU2ZeyJhbGiA

可以看到,只需在密码重置请求中添加标题“X-Forwarded-Host”,即可成功更改host

然后小哥注意到,如果在密码重置页面中输入受害者的电子邮件,并拦截该请求,如果我请求包中添加“X-Forwarded-Host”为恶意的域名。然后,受害者将收到一封带有我的恶意域的密码重置令牌链接的电子邮件。当受害者点击该链接时,他将重定向到我的网站,他的所有令牌都会泄露给我。然后,我可以使用受害者泄露的令牌更改他的密码。是的,这个漏洞的影响是完全的帐户接管。

0x03 实现

在服务器上安装nginx

1
2
apt install nginx -y
systemctl status nginx
image-20221026102257856

Nginx配置文件存储在/etc/nginx目录中。

主要的Nginx配置文件为/etc/nginx/nginx.conf

访问日志在:/var/log/nginx/access.log

image-20221026102957878

通过nginx的访问日志,获取重置密码的令牌