网络安全基础技术-常见web漏洞之XSS跨站脚本攻击

news2024/9/21 2:45:40

首先,我们来探究XSS(跨站脚本攻击)的基本概念。简而言之,这种攻击方式涉及将用户的输入错误地作为前端代码执行。在Web应用领域,前端代码通常由HTML、CSS和JavaScript三大构件组成:

  • HTML(超文本标记语言):这是构建网页结构的基本骨架,通过各种标签和属性描述页面内容。
  • CSS(层叠样式表):CSS负责美化网页,控制其布局和外观,尽管它与安全漏洞的直接关联较小。
  • JavaScript:作为一种客户端脚本语言,它不仅负责页面的动态效果和用户交互,而且是XSS攻击的主要工具,因为恶意的JavaScript代码能够直接在用户浏览器中被执行。
    在这里插入图片描述

当谈到如何引发XSS攻击时,情景可以这样设想:假设某网站设有一个用户留言板,用户输入的文本将在网页上显示。如果有心之人在这些文本中植入恶意脚本,那么其他访问该页面的用户的浏览器可能会误解这些脚本为可信内容并执行它们。这种恶意脚本能够执行多种操作,如盗取登录凭证、篡改网页内容、或重定向到恶意网站。

XSS攻击可分为三种类型:

  1. 反射型XSS:攻击者的脚本被注入到URL参数中,用户点击带有该参数的链接时触发恶意脚本。
  2. 存储型XSS:恶意脚本被存储在网站数据库中,当用户访问相关页面时,这些脚本被读取并执行。
  3. DOM型XSS:通过修改DOM对象将恶意脚本注入页面,然后在用户浏览器中执行。

接下来,通过一个存储型XSS的实例来说明。已知一个网站的留言板有XSS漏洞,输入的文本会被解析为前端代码。攻击者通过构建特定的XSS载荷(payload)并提交,待网站管理员访问后,载荷被触发,攻击者便可获取如cookie这样的敏感信息。此操作显示了XSS漏洞可用于执行多种恶意活动,评估其危害等级通常在中到高危之间,具体取决于多种因素,如漏洞可被触发的条件和受影响的用户范围。
在这里插入图片描述
因为XSS payload构建复杂,所以一般情况下我们都是使用XSS平台去获取网站的一些相关信息,例如cookie(是网站用来跟踪和识别用户的“小型文本文件”)等。
在这里插入图片描述
构造好后,我们尝试插入XSS的payload,提交保存后等待管理员的访问

在这里插入图片描述然后过了一会,在XSS平台发现已经得到了相关数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过上述的案例仅仅展示了该漏洞的一种利用方式,在一般情况下,XSS漏洞的危害等级可以被评估为中危至高危漏洞。

**反射型的XSS漏洞的危害等级一般可以被评估为中危。**该形式往往只影响到请求该特定URL的用户或会话。攻击者无法直接向其他用户传播恶意代码。通常需要用户点击包含恶意代码的特定链接或访问恶意的URL才能触发。这意味着攻击者需要诱使用户进行特定的操作,才能成功利用漏洞进行攻击。

**而存储型XSS一般被认为是比反射型XSS更高危的漏洞类型。**存储型XSS漏洞与反射型XSS不同,存储型XSS的影响范围不仅限于特定URL或用户,而是波及到所有访问相关漏洞页面的用户。攻击者存储的恶意脚本会一直存在于服务器上,任何用户访问相关页面都有可能受到攻击,这使得存储型XSS的攻击效果持久化。攻击者可以利用存储型XSS漏洞来窃取用户的敏感信息、篡改网站内容、劫持会话等,对用户造成严重损害。

**DOM型XSS漏洞的危害等级一般可以评估为中危到高危。**DOM型XSS漏洞通常影响的是当前用户或与其相关的操作,而不会直接影响到其他用户。因此,从整体影响范围来看,DOM型XSS漏洞的风险相对较低。DOM型XSS漏洞需要攻击者对目标网站的前端代码有一定的了解,并需要通过特定的用户操作来触发执行恶意代码。相比之下,与针对性攻击和技术要求较低的存储型XSS漏洞相比,DOM型XSS漏洞的攻击复杂性较高。

针对该漏洞修复建议

对用户输入进行过滤和验证:应用严格的输入验证,过滤用户输入并确保只允许有效且符合预期的内容提交到服务器。使用白名单过滤或合适的正则表达式来验证和限制用户输入的内容。

转义输出内容:在将用户输入或其他动态内容插入到HTML、JavaScript、CSS等页面中时,使用适当的编码和转义机制来防止恶意代码的执行。常见的转义方法包括HTML实体编码、JavaScript转义、CSS转义等。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

网络安全学习资源

网络安全是当今信息时代中非常重要的一环。无论是找工作还是感兴趣(黑客),都是未来职业选择中上上之选,为了保护自己的网络安全,学习网络安全知识是必不可少的。

如果你是准备学习网络安全(黑客)或者正在学习,下面这些你应该能用得上:

①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

在这里插入图片描述
网络安全教程视频
在这里插入图片描述
在这里插入图片描述
网络安全CTF实战案例
在这里插入图片描述
网络安全面试题
最后,我们所有的作为都是为就业服务的,所以关键的临门一脚就是咱们的面试题内容,所以面试题板块是咱们不可或缺的部分,这里我给大家准备的就是我在面试期间准备的资料。
在这里插入图片描述
网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。

机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!

全套网络安全学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
在这里插入图片描述

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

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

相关文章

力扣HOT100 - 19. 删除链表的倒数第N个节点

解题思路: 链表题目:哑节点、栈、快慢指针(双指针) 方法一:计算链表长度 class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode dum new ListNode(0, head);int len getLen(head);…

binary tree Leetcode 二叉树算法题

144.二叉树的前序遍历 前序遍历是&#xff1a;根-左-右 所以记录序列的的时候放在最前面 递归 class Solution {List<Integer> ans new ArrayList<>();public List<Integer> preorderTraversal(TreeNode root) {if(root null) return ans;ans.add(root…

书生·浦语大模型实战营Day05作业

作业 基础作业 完成以下任务&#xff0c;并将实现过程记录截图&#xff1a; 配置 LMDeploy 运行环境: 书生浦语大模型实战营Day05LMDeploy实践 以命令行方式与 InternLM2-Chat-1.8B 模型对话: 书生浦语大模型实战营Day05LMDeploy实践 进阶作业 完成以下任务&#xff0c;并将…

PCIe总线-PCIe配置空间介绍(三)

1.概述 配置空间是PCIe设备/桥的标识符&#xff0c;其保存了设备/桥的信息。主机在枚举设备/桥的时候需要先访问配置空间&#xff0c;获取设备厂家、型号、类型、所需资源等信息&#xff0c;然后再分配资源&#xff0c;最后才能访问PCIe设备的存储或IO地址空间。PCIe总线规定了…

JavaScript之分时函数、分时间段渲染页面、提高用户体验、参数归一化、高阶函数、分段、appendChild、requestIdleCallback

MENU 前言效果图html原始写法优化方式一(参数归一化)优化方式二(当浏览器不支持requestIdleCallback方法的时候)优化方式三(判断环境) 前言 当前需要向页面插入十万个div元素&#xff0c;如果使用普通的渲染方式&#xff0c;会造成延迟。这时候就需要通过分时函数来实现渲染了。…

【R数据分析-基础】

R语言介绍 为什么使用R&#xff1f; R&#xff1a;数据分析与可视化平台 R的获取和安装 http://cran.r-project.org 免费下载 一、R、Rtools安装 R语言&#xff1a; 免费开源 支持多平台&#xff0c;包括Windows、UNIX、Mac OS 擅长统计与可视化 Rtools&#xff1a;R语言…

Android安卓写入WIFI热点自动连接NDEF标签

本示例使用的发卡器&#xff1a;Android Linux RFID读写器NFC发卡器WEB可编程NDEF文本/网址/海报-淘宝网 (taobao.com) package com.usbreadertest;import android.os.Bundle; import android.view.MenuItem; import android.view.View; import android.widget.EditText; impo…

C++从入门到出门

C 概述 c 融合了3中不同的编程方式&#xff1a; C语言代表的过程性语言C 在C语言基础上添加的类代表的面向对象语言C 模板支持的泛型编程 1、在c语言中头文件使用扩展名.h,将其作为一种通过名称标识文件类型的简单方式。但是c得用法改变了&#xff0c;c头文件没有扩展名。但是…

大数据平台搭建2024(二)

二&#xff1a;Hive安装 只在node01上操作 1 安装MySQL 8.0 最小化安装需要安装这个 yum install -y wget1-1 下载MySQL的yum源 wget http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm检查是否安装成功 rpm -qpl mysql80-community-release-el7-7.n…

[Collection与数据结构] 二叉树(三):二叉树精选OJ例题(下)

1.二叉树的分层遍历 OJ链接 上面这道题是分层式的层序遍历,每一层有哪些结点都很明确,我们先想一想普通的层序遍历怎么做 /*** 层序遍历* param root*/public void levelOrder1(Node root){Queue<Node> queue new LinkedList<>();queue.offer(root);while (!qu…

《MATLAB科研绘图与学术图表绘制从入门到精通》示例:绘制伊甸火山3D网格曲面图

11.4.2小节我们使用3D曲面图可视化分析伊甸火山数据&#xff0c;本小节我们采用3D网格曲面图可视化分析伊甸火山数据&#xff0c;以展示其地形&#xff0c;具体示例代码如下。 购书地址&#xff1a;https://item.jd.com/14102657.html

C语言开源库iniparser解析ini文件

1 ini文件介绍 INI&#xff08;Initialization File&#xff09;文件是一种简单直观的数据存储格式&#xff0c;常用于配置应用程序的初始化设置。这种文件通常包含若干个节&#xff08;section&#xff09;和键值对&#xff08;key-value pairs&#xff09;。INI文件的每一部…

数据结构10:堆和堆排序

文章目录 树的概念及结构树的概念树的相关概念树的表示树在实际中的应用表示文件系统的目录树结构 二叉树概念及结构概念特殊的二叉树二叉树的性质二叉树的存储结构顺序存储链式存储 二叉树的顺序结构及实现二叉树的顺序结构堆的概念及结构 堆的实现堆的插入堆的删除堆的创建向…

【大数据】TiDB: A Raft-based HTAP Database

文章目录 数据库知识介绍数据库系统的ACID特性分布式系统和CAP理论关系型数据库与非关系型数据库关系型数据库非关系型数据库 OldSQL、NoSQL、NewSQLOldSQLNoSQLNewSQL OLTP、OLAP、HTAP 前言&#xff1a;为什么选择TiDB学习&#xff1f;pingCAP介绍TiDB介绍TiDB的影响力TiDB概…

Wireshark TS | 再谈应用传输缓慢问题

问题背景 来自于朋友分享的一个案例&#xff0c;某某客户反馈电脑应用软件使用时打开很慢&#xff0c;并提供了一个慢时所捕获的数据包文件以及服务端 IP。以前也说过&#xff0c;所谓的慢有很多种现象&#xff0c;也会有很多原因引起&#xff0c;在没有更多输入条件的情况下&…

Redis集合[持续更新]

Redis&#xff08;全称&#xff1a;Remote Dictionary Server 远程字典服务&#xff09;是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库&#xff0c;并提供多种语言的 API。 数据结构 1. string 字符串 字符串类型是 Redis 最…

云知识库怎么搭建才适合中小企业?用这几个工具很轻松

当我们想到知识库时&#xff0c;可能会联想到庞大的公司和复杂的系统&#xff0c;但实际上&#xff0c;随着技术的发展&#xff0c;中小企业也可以利用各种工具来建立自己的云知识库。这样不仅能够提升企业的知识管理效率&#xff0c;还能优化客户服务流程。这篇文章会介绍三款…

【QT+QGIS跨平台编译】182:【QGIS+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、qgis模块介绍二、QGIS下载三、文件分析四、pro文件五、编译实践一、qgis模块介绍 qgis模块作为QGIS启动模块,集成底层所有的模块。 二、QGIS下载 QGIS网址: QGIS Source Download 获取qgis.tar.bz2文件。 三、文件分析 解压缩qgis.tar.bz2文件,进入到qgis\…

编写Spark独立应用程序

执行本文之前&#xff0c;先搭建好spark的开发环境&#xff0c;我目前只搭建了standalone模式&#xff0c;参考链接 &#xff1a; Spark Standalone模式部署-CSDN博客 1. 安装sbt 1&#xff09;下载sbt 网址&#xff1a;https://www.scala-sbt.org/download.html &#xff0c…

# Win10 打不开【本地组策略编辑器】解决方案

Win10 打不开【本地组策略编辑器】解决方案 段子手168 问题描述&#xff1a; 当在 WIN R 打开【运行】输入&#xff1a;gpedit.msc 打开【本地组策略编辑器】时&#xff0c;出现错误时&#xff0c; 或者在【计算机管理】中 没有【本地用户和组】这一项。 可以试一下以下方…