XSS漏洞--概念、类型、实战--分析与详解[结合靶场pikachu]

目录

一、XSS概念简述

1、XSS简介:

2、XSS基本原理:

3、XSS攻击流程:

4、XSS漏洞危害:

二、XSS类型:

1、反射型XSS:

2、存储型XSS:

3、DOM型XSS:

三、靶场漏洞复现(pikachu):

1、靶场来源:

2、反射型XSS(get)复现:

3、反射型XSS(post)复现:

4、存储型XSS复现:

5、DOM型XSS复现:

四、总结:


一、XSS概念简述

1、XSS简介:

XSS(Cross Site Scripting),译做:跨站脚本攻击。


2、XSS基本原理:

XSS漏洞的基本原理是恶意攻击者将一段恶意代码,通常是客户端脚本如JavaScript,注入到Web页面中。当其他用户浏览这个被篡改的网页时,这段脚本会在他们的浏览器上执行,从而可能导致各种安全事件。

XSS常常存在于评论区功能处,攻击者往往会在评论区编写恶意代码,通过评论功能将恶意代码发往后台,从而与后台代码形成某种程度上的闭合,导致后台代码中被植入恶意代码。


3、XSS攻击流程:

攻击者从评论区上传恶意代码 ---> 注入代码的网页代码部分过滤不完全或无过滤操作 ---> 恶意代码植入网页代码 ---> 某用户A对网页此处进行了访问操作 ---> 用户A的浏览器对网页注入的恶意代码进行解析 ---> 用户A遭到攻击。


4、XSS漏洞危害:

(1)盗取各种用户账号;

(2)窃取用户Cookie资料,冒充用户身份进入网站;

(3)劫持用户会话,执行任意操作;指操作用户浏览器;

(4)刷流量,执行弹窗广告;传播蠕虫病毒。


二、XSS类型:

1、反射型XSS:

(1)攻击流程:

当攻击者将带有恶意脚本的URL发送给用户时,如果用户点击了这个URL,恶意脚本就会被发送到服务器,然后服务器会将这个脚本作为响应的一部分返回给用户的浏览器。浏览器在收到响应后会执行这段脚本,从而可能导致敏感信息如cookies被窃取。

这种攻击之所以被称为“反射型”,是因为恶意脚本是通过用户的浏览器“反射”回服务器,然后再由服务器“反射”回更多用户的浏览器来传播的。这种攻击方式通常是一次性的,因为恶意脚本不会存储在服务器上,而是通过URL参数直接传递给服务器。

(2)流程图:


2、存储型XSS:

(1)攻击流程:

攻击者通过 评论区、论坛等功能将 XSS代码上传,服务器接收并进行存储,XSS代码就成功植入了网页代码中,当其他用户对包含XSS代码的网页时,XSS代码就会被用户的浏览器进行解析并执行。

(2)流程图:


3、DOM型XSS:

DOM型XSS漏洞是一种基于文档对象模型(Document Object Model,简称DOM)的漏洞,它允许攻击者通过修改DOM元素的属性来注入并执行恶意脚本

这种攻击方式不需要通过URL传递恶意代码,而是直接在用户的浏览器端执行。攻击者可能会利用JavaScript代码,通过改变页面的DOM结构,插入恶意脚本。由于这个过程是在客户端完成的,因此DOM型XSS攻击更加隐蔽,与传统的反射型XSS相比,它不依赖于服务器的响应,使得检测和防御更加困难。

简单来说:DOM型XSS漏洞地原理是利用前端代码漏洞。


三、靶场漏洞复现(pikachu):

1、靶场来源:

BUUCTF -- pikachu靶场 -- Cross--Site Scripting 模块。

跳转BUUCTF -- pikachu 靶场


2、反射型XSS(get)复现:

页面如图所示:

我们首先输入kobe,观察页面和URL的变化:

发现页面内容显示正常,URL中出现 message=kobe,我们已知 反射型XSS 是针对URL来进行操作的,我们修改URL中的 message 的值:

message = <script>alert(document.cookie)</script>

修改后提交,显示如下:


 

页面成功显示 cookie信息,复现成功。


3、反射型XSS(post)复现:

(1)get 和 post 型的XSS反射型漏洞的区别:

---数据提交方式不同:

反射型XSS(GET):攻击载荷(payload)直接附加在URL中,用户通过点击含有恶意代码的链接即可触发攻击。这种方式下,恶意脚本会随着URL传递,不需要用户进行任何提交动作。

反射型XSS(POST):攻击载荷通常不会直接出现在URL中,而是通过表单提交的方式发送到服务器。在这种情况下,攻击者可能需要诱使用户点击一个按钮或提交一个表单,使得恶意数据作为POST请求的一部分发送出去。

(2)漏洞复现:

进入靶场,页面如图所示:

我们利用 F12 中的查看器,查看当前页面源代码:

观察到表单<form>的数据提交方式为 POST,这就是XSS反射型(post)的特点。

我们在输入栏中同样尝试输入kobe,页面如下:

页面显示内容正常,但是发现,post提交与get提交的不同之处在于,post的message=消失了,这就是post提交中攻击载荷(payload)通常不会出现在URL中的特点。

我们尝试在输入栏中输入XSS代码并进行提交:

<script>alert(document.cookie)</script>

提交后页面如下:

页面中显示了cookie、账号和密码,漏洞复现成功。


4、存储型XSS复现:

进入靶场,页面如图所示:

前面已经介绍过存储型XSS的特性,在这里不做赘述。

查看评论区页面源代码:

可以发现明显存在XSS漏洞,可以在<p>标签中插入javascript代码并一直存储在那里。

我们在评论区写入XSS代码,并提交:

<script>alert(document.cookie)</script>

提交后页面如下:

cookie值显示,漏洞复现成功。


5、DOM型XSS复现:

进入靶场,页面如图所示:

我们依然尝试输入 kobe,发现页面回显一段英文 what do you see? ,其他无内容显示。我们查看页面源代码,内容如下:

观察源代码,发现kobe在<a>标签中的 href 处显示想要进行XSS攻击,我们需要构造一段合适的payload,来将此处的 html 语句闭合并且执行我们自己的 javascript语句。

我们构造以下payload:

#' onclick="alert(document.cookie)">

提交后,源代码的html语句变成了这样,如下图:

我们发现payload提交后,与源代码中的旧html语句联合构造出了一个新的html语句,代码意为:点击 '>what do you see? 就会执行 onclick中的语句,即执行我们注入的XSS语句。

注入XSS语句后,页面如下:

我们点击 '>what do you see? ,显示如下:

cookie值正常显示,漏洞复现成功。


四、总结:

XSS漏洞通常要结合检查页面源代码来进行注入。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LVS四层负载均衡集群

简介 LVS&#xff08;Linux Virtual Server&#xff09;即Linux虚拟服务器&#xff0c;是由章文嵩博士主导的开源负载均衡项目&#xff0c;目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案&#xff0c;终端互联网用户从外部访…

diffusion model (扩散模型)原理

扩散模型分为正向过程和反向过程。 正向过程为一点点在图片上添加噪声的过程&#xff0c;反向过程为去噪声的过程。 图片的生成就是反向过程&#xff0c;给一张高斯噪声图片&#xff0c;逐步去噪生成图片。 扩散模型和VAE的区别&#xff0c; VAE是一步到位的&#xff08;通过…

一个基于差异同步数据库结构的工具 - Skeema

本文是 GO 三方库推荐的第 5 篇&#xff0c;继续介绍数据库 schema 同步工具&#xff0c;我前面已经写了两篇这个主题的文章。系列查看&#xff1a;Golang 三方库。 今天&#xff0c;推荐是的一个基于差异实现数据库 schema 迁移的工具库 - skeema&#xff0c;同样由 Go 实现。…

数字孪生10个技术栈:数据采集的八种方式

大家好&#xff0c;我是贝格前端工场&#xff0c;上期讲了数字孪生10个技术栈&#xff08;总括&#xff09;:概念扫盲和总体介绍&#xff0c;获得了大家的热捧&#xff0c;本期继续分享技术栈&#xff0c;大家如有数字孪生或者数据可视化的需求&#xff0c;可以联络我们。 一、…

【好书推荐-第九期】Sora核心技术相关书籍《扩散模型:从原理到实战》与《GPT 图解:大模型是怎样构建的》:Sora的两大核心技术,都藏在这两本书里!

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公众号&#xff1a;洲与AI。 &#x1f388; 本文专栏&#xff1a;本文收录…

解决DBeaver执行脚本报错No active connection

解决DBeaver执行脚本报错No active connection 1、报错问腿 2、问题解决 2.1、右键点击该数据库&#xff0c;选择SQL编辑器&#xff0c;选择新建SQL编辑器&#xff0c;然后将sql语句复制过去。 或者左击选中数据库后直接使用快捷键 Ctrl] 2.2、在Project-General中找到Scr…

Javaweb之SpringBootWeb案例之自动配置案例的自定义starter测试的详细解析

3.2.4.3 自定义starter测试 阿里云OSS的starter我们刚才已经定义好了&#xff0c;接下来我们就来做一个测试。 今天的课程资料当中&#xff0c;提供了一个自定义starter的测试工程。我们直接打开文件夹&#xff0c;里面有一个测试工程。测试工程就是springboot-autoconfigurat…

常见排序算法解析

芝兰生于深林&#xff0c;不以无人而不芳&#xff1b;君子修道立德&#xff0c;不为穷困而改节 文章目录 插入排序直接插入排序希尔排序 选择排序直接选择排序堆排序 交换排序冒泡排序快速排序优化挖坑法前后指针法非递归版 归并排序递归非递归 总结 插入排序 插入排序&#…

【编程小记】在Windows下使用C/C++代码判断一个文件是否被其他进程占用

在Windows下使用C/C代码判断文件是否被占用 一、原理二、函数简单介绍三、实例代码 一、原理 在Windows下有一个Windows API叫做CreateFile&#xff0c;通过这个接口我们可以创建或打开文件&#xff0c;我们打开文件时可以采用独占模式进行打开&#xff0c;如果能够打开文件说…

Word Game

题目链接&#xff1a;Problem - C - Codeforces 解题思路&#xff1a; 用map存字母和出现的次数&#xff0c;然后遍历三个字母数组&#xff0c;如果map值为1&#xff0c;则加三分&#xff0c;为2加1分&#xff0c;否则不加分。 下面是c代码&#xff1a; #include<iostrea…

第41期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

Linux学习-二级指针的使用

目录 ###指针传参时要用二级指针 ###函数体内部想要修改函数外部指针变量值的时候需要使用二级指针(指针变量的地址) ###指针传参时要用二级指针 char *str[5]; int Fun(char **ppstr,int len); ###函数体内部想要修改函数外部指针变量值的时候需要使用二级指针(指针变量的…

#微信小程序创建(获取onenet平台数据)

1.IDE&#xff1a;微信开发者工具 2.实验&#xff1a;创建一个小程序&#xff08;http get获取onenet平台数据&#xff09; 3.记录&#xff1a; 百度网盘链接&#xff1a;https://pan.baidu.com/s/1eOd-2EnilnhPWoGUMj0fzw 提取码: 2023 &#xff08;1&#xff09;新建一个工…

【C++STL详解 —— string类】

【CSTL详解 —— string类】 CSTL详解 —— sring类一、string的定义方式二、string的插入三、string的拼接四、string的删除五、string的查找六、string的比较七、string的替换八、string的交换九、string的大小和容量十、string中元素的访问十一、string中运算符的使用十二、…

2024年腾讯云发红包了,可用于抵扣订单金额,你们领了吗?

在2024年腾讯云新春采购节优惠活动上&#xff0c;可以领取新年惊喜红包&#xff0c;打开活动链接 https://curl.qcloud.com/oRMoSucP 会自动弹出红包领取窗口&#xff0c;如下图&#xff1a; 腾讯云2024新春采购节红包领取 如上图所示&#xff0c;点击“领”红包&#xff0c;每…

回溯算法01-组合(Java)

1.组合 题目描述 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4]]示例 2&#xff1a; 输入&#x…

VMware虚拟机安装Centos7图解,提供软件包镜像(详细安装,小白入门必看)

目录 1. 安装vmware软件 2. 下载centos7镜像 3. 使用镜像安装centos操作系统 3.1 创建新的虚拟机 3.2 开机安装系统 4. 尝试网络连通性 5. 配置静态ip地址 1. 安装vmware软件 下载链接&#xff08;包含激活码&#xff09;&#xff1a;VMware https://www.alipan…

C语言初学10:共同体

一、共同体作用 提供一种在相同内存位置存储不同数据类型的有效方式 二、共同体定义 union [union tag] //tag是可选参数 {member definition;member definition;...member definition; } [one or more union variables]; // 共同体变量是可选的 三、共同体占用空间大小 #…

vCity 2.8 – 在线浏览器元宇宙游戏平台(虚拟现实网页游戏平台)可获取现实金钱对接贝宝

vCity Nulled 是一个采用最新网络技术开发的在线浏览器游戏平台。vCity Free Download Scripts 是多功能游戏脚本&#xff0c;可帮助您根据自己的喜好创建自己的在线浏览器游戏&#xff0c;因为它有许多选项和设置&#xff0c;可以通过这些选项和设置来修改和创建您想要的浏览器…

亚信安慧AntDB:编织数据丝路,缔造创新篇章

亚信安慧AntDB作为一款具备国产化升级改造经验的数据库系统&#xff0c;在15年的平稳运行中积累了丰富经验。通过持续的创新和技术进步&#xff0c;AntDB不断优化性能和功能&#xff0c;满足用户的需求&#xff0c;与国际先进数据库系统保持竞争力。 AntDB秉承着与用户和行业保…