当前位置: 首页 > article >正文

0527漏洞原理:XSS笔记

理论知识 

01 前端基础知识

1.1 HTML基础

  • 定义:HTML(超文本标记语言)用于描述网页结构。
  • 标准结构

内嵌脚本

<script>JavaScript代码</script>

1.4 JavaScript弹窗函数

函数描述
alert("文本")仅显示“确定”按钮的提示框
confirm("文本")带“确定”和“取消”的提示框
prompt("文本")可输入文本的对话框

1.5 JavaScript事件

  • 事件三要素
    1. 事件源(如<a><div>标签)
    2. 事件(如单击、双击)
    3. 事件处理程序(如onclick触发的函数)
  • 示例
    <img src="x" onerror="JS代码" /> <!-- 图片加载失败时执行JS -->
    

1.6 JavaScript伪协议

  • 通过javascript:协议直接在URL中执行JS代码:
    javascript:var now = new Date(); "<h1>The time is:</h1>" + now;
    
  • 利用示例
    <img src=javascript:alert("xss")>
    

02 XSS跨站脚本攻击

2.1 XSS定义

  • 全称:Cross-Site Scripting(为避免与CSS混淆,缩写为XSS)。
  • 原理:攻击者将恶意脚本注入到网页中,其他用户访问时触发执行。

2.2 XSS危害

类型影响
劫持会话窃取用户Cookie
钓鱼攻击伪造登录页面
篡改页面插入恶意内容
传播蠕虫自动扩散攻击
挖矿/广告消耗用户资源

2.3 XSS类型

类型特点数据流向
反射型恶意代码通过URL参数注入,用户点击触发URL → 浏览器
存储型恶意代码存入数据库,用户访问页面时触发数据库 → 页面
DOM型前端JS直接操作DOM导致漏洞URL → 浏览器(不经过服务器)

03 XSS漏洞利用

3.1 BeEF框架

  • 功能:通过XSS漏洞劫持浏览器,执行内嵌命令(如窃取Cookie、钓鱼)。
  • 攻击流程
    1. 在漏洞页面插入Payload(如<script src="恶意JS"></script>)。
    2. 诱导管理员访问含Payload的页面。
    3. 通过BeEF控制台获取管理员Cookie并登录后台。

04 XSS漏洞防御

4.1 XSS Filter

  • 过滤用户输入中的敏感字符(如< > ' " & # javascript)。

4.2 输入/输出过滤

  • 输入验证:检查长度、格式(如邮箱、IP地址)、合法字符。
  • 输出编码:将特殊字符转为HTML实体(如< → &lt;)。

4.3 CSP(内容安全策略)

  • 作用:通过白名单限制可加载的资源(如脚本、图片)。
  • 示例
    Content-Security-Policy: default-src 'self' *.trusted.com
    

05 XSS绕过技术

方法示例
大小写绕过<ScRiPt>alert(1)</ScRiPt>
黑名单绕过使用<img src=x onerror=alert(1)>
事件触发<button onclick=alert(1)>点击</button>
编码绕过使用十六进制/Unicode编码(如javascript: → \x6A\x61\x76\x61...

练习资源

  1. XSS挑战平台:
    • http://xss-ctf.xiejiahe.com/
    • http://test.ctf8.com/

相关操作

DOM型

XSS(DOM)

xss_d/?default=English123

xss_d/?default=English

123<script>alert(1)</script>

说明存在XSS漏洞

网站源码

view source
xss_d/?default=English123"</option><script>alert(1)</script>

反射型 

反射型
<script>alert(1)</script>

查看源码

存储型

评论一直存在

更改限制

<input name="txtName" type="text" size="30" maxlength="30">

<script>alert(2)</script>

<script>alert(1)</script>

每次访问这个页面都会重新加载代码并弹窗

当有人访问就会被攻击

使用Easy XSS保存常用语句

相关文章:

0527漏洞原理:XSS笔记

理论知识 01 前端基础知识 1.1 HTML基础 定义&#xff1a;HTML&#xff08;超文本标记语言&#xff09;用于描述网页结构。标准结构&#xff1a; 内嵌脚本&#xff1a; <script>JavaScript代码</script>1.4 JavaScript弹窗函数 函数描述alert("文本&quo…...

智能制造之精读——RPA制造行业常见场景【附全文阅读】

RPA 在制造行业应用广泛&#xff0c;为企业带来显著价值&#xff0c;是极具潜力的智能化解决方案。它能节省成本&#xff0c;降低人力与管理成本&#xff1b;提升运营效率&#xff0c;减少人机交互损耗&#xff1b;提高质量&#xff0c;保障流程准确性&#xff1b;还能增强合规…...

spark shuffle的分区支持动态调整,而hive不支持

根据Spark官方文档&#xff0c;Spark Shuffle分区支持动态调整的核心原因在于其架构设计和执行模型的先进性&#xff1a; 1. 自适应查询执行&#xff08;AQE&#xff09;机制 Spark 3.0引入的AQE特性允许在运行时动态优化执行计划&#xff0c;包括Shuffle分区调整&#xff1a…...

网络安全十大漏洞

1️⃣ 失效的访问控制&#xff08;Broken Access Control&#xff09; 核心问题&#xff1a;用户能访问本应被禁止的资源或操作 攻击案例&#xff1a; 修改URL参数&#xff1a;https://shop.com/order?user_id100 → 改为 user_id101 查看他人订单 直接访问管理员页面&#…...

关于uv 工具的使用总结(uv,conda,pip什么关系)

最近要开发MCP 项目&#xff0c;uv工具使用是官方推荐的方式&#xff0c;逐要了解这个uv工具。整体理解如下&#xff1a; 一.uv工具的基本情况 UV 是一个由 Rust 编写的现代化 Python 包管理工具&#xff0c;旨在通过极速性能和一体化功能替代传统工具&#xff08;如 pip、vi…...

深入剖析 Docker 容器化原理与实战应用,开启技术新征程!

文章目录 前言一、为什么 是Docker &#xff1f;二、Docker 容器化原理分析2.1 镜像&#xff08;Image&#xff09;2.2 容器&#xff08;Container&#xff09;2.3 仓库&#xff08;Registry&#xff09; 三、Docker 容器化实践3.1 Docker安装3.2 创建一个 Docker 镜像3.3 运行…...

Xamarin劝退之踩坑笔记

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…...

计算机网络(4)——网络层

1.概述 1.1 网络层服务 (1) 网络层为不同主机(Host)之间提供了一种逻辑通信机制 (2)每个主机和路由器都运行网络层协议 发送方&#xff1a;将来自传输层的消息封装到数据报(datagram)中接收方&#xff1a;向传输层交付数据段(segment) 1.2 网络层核心功能 路由选择(routing…...

java 多线程中的volatile关键字作用

文章目录 前置作用一&#xff1a;多线程下&#xff0c;保证可见性作用二&#xff1a;多线程下&#xff0c;禁止指令重排序 前置 保证可见性和保证没有指令重排导致的问题 但是不保证原子性 volatile 常常见到和 static 一起使用&#xff0c;因为 volatile 用在多线程中共享变…...

ESP32基础知识1:项目工程建立和烧录

ESP32基础知识1&#xff1a;项目工程建立和烧录 一、本文内容与前置知识点1. 本文内容2. 前置知识点 二、新建工程1. 工程配置2. 依照模板建立项目 三、硬件烧录1. 硬件准备2. 烧录器和ESP32连接3. 电脑端设置4. 烧录成功演示 四、参考文献 一、本文内容与前置知识点 1. 本文内…...

allWebPlugin中间件VLC专用版之录像功能介绍

背景 VLC控件原有接口是不支持录像的&#xff0c;且libVLC提供的接口库&#xff0c;不能获取录像文件完整名称&#xff08;VLC-3.0.11 录制直播时有的无法保存视频的解决方法 - 1CM - 博客园&#xff09;&#xff1b;因此&#xff0c;非常的不友好。为了能够彻底解决这个问题&a…...

Vim 支持多种编程语言编辑器

软件简介 Vim是Vi编辑器的增强版&#xff0c;它提供了更多的功能和快捷键。Vim是一款自由软件&#xff0c;它是由Bram Moolenaar在1991年创建的。Vim支持多种编程语言&#xff0c;包括C、C、Java、Python、Perl等等。它是一款轻量级的编辑器&#xff0c;可以快速打开和编辑大型…...

解决 IDEA 在运行时中文乱码问题

直接说解决办法 编译 IDEA 所在目录的启动的 .vmoptions 文件&#xff0c;添加以下JVM 参数即可 -Dfile.encodingUTF-8如下图所示&#xff0c;Help > Edit Custom VM Options&#xff0c;随后在编辑框中添加-Dfile.encodingUTF-8 的 JVM 参数...

Diffusion Planner:扩散模型重塑自动驾驶路径规划(ICLR‘25)

1. 概述 2025年2月14日&#xff0c;清华大学AIR智能产业研究院联合毫末智行、中科院自动化所和香港中文大学团队&#xff0c;在ICLR 2025会议上发布了Diffusion Planner——一种创新性的基于Diffusion Transformer的自动驾驶规划模型架构。该系统联合建模周车运动预测与自车行…...

华为OD机试真题——阿里巴巴找黄金宝箱 IV(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

2025 A卷 200分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 2025华为OD真题目录+全流程解析/备考攻略/经验分享 华为OD机试真题《阿里巴巴找黄金宝箱 IV》:…...

数据结构:时间复杂度(Time Complexity)和空间复杂度(Space Complexity)

目录 什么是时间复杂度&#xff1f; 如何表示时间复杂度&#xff1f; 为什么需要时间复杂度&#xff1f; 用几个例子理解 怎么分析代码的时间复杂度&#xff1f; 什么是空间复杂度&#xff1f; 举例理解 什么是时间复杂度&#xff1f; 时间复杂度是用来衡量一个算法“…...

CentOS7.9环境离线部署docker和docker-compose的两种方式

目 录 一、yum安装&#xff0c;使用rpm安装包和相关依赖 1.1 准备rpm安装包 1.2 将docker-23.0.4.tar.gz上传至/opt目录下 二、二进制文件方式安装 三、安装docker-compose 一、yum安装&#xff0c;使用rpm安装包和相关依赖 1.1 准备rpm安装包 1&#xff09;在一台与…...

北京大学肖臻老师《区块链技术与应用》公开课:06-BTC-网络

文章目录 比特币工作在应用层&#xff0c;它的底层是一个P2P overlay Network...

SSL/TLS 协议详解:安全通信的基石

一、概述 SSL&#xff08;Secure Sockets Layer&#xff09; 及其继任者 TLS&#xff08;Transport Layer Security&#xff09; 是位于 传输层&#xff08;TCP&#xff09;与应用层之间 的加密协议&#xff0c;用于在网络通信中实现 机密性、身份认证和数据完整性。 核心目标…...

设计模式——外观设计模式(结构型)

摘要 本文介绍了外观设计模式&#xff0c;它是一种结构型设计模式&#xff0c;通过引入一个外观类来封装复杂子系统的调用细节&#xff0c;对外提供简单统一的接口。文中通过生活类比、关键角色介绍、使用场景分析以及结构说明等方面对这一模式进行了全面阐述&#xff0c;还涉…...

Linux `vi/vim` 编辑器深度解析与高阶应用指南

Linux `vi/vim` 编辑器深度解析与高阶应用指南 一、核心功能解析1. 模式系统2. 与主流编辑器对比二、核心操作体系1. 高效导航命令2. 文本操作矩阵三、高阶配置体系1. .vimrc 配置示例2. 插件管理系统四、企业级开发实践1. 代码编辑技巧2. 宏录制与批量处理五、可视化与多窗口1…...

ES中must与filter的区别

在 Elasticsearch 的布尔查询&#xff08;bool query&#xff09;中&#xff0c;must 和 filter 是两个核心子句&#xff0c;它们的核心区别在于 是否影响相关性评分&#xff0c;这直接决定了它们在查询性能、使用场景和结果排序上的差异。以下是详细对比&#xff1a; 一、核心…...

qt之开发大恒usb3.0相机三

上一篇大恒相机的开发 是基于Qt Creator msvc工具链编译的&#xff0c;大恒相机msvc使用的的lib库是c版的。如果想要使用mingw工具链开发大恒相机&#xff0c;那么找连接对相应的lib库。mingw对应的库是c的。 配置如下&#xff1a; 图像获取核心代码如下 void __stdcall Wid…...

Transformer架构详解:从Attention到ChatGPT

Transformer架构详解&#xff1a;从Attention到ChatGPT 系统化学习人工智能网站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目录 Transformer架构详解&#xff1a;从Attention到ChatGPT摘要引言一、Attention机制&#xff1a;Transformer的…...

数据中台(大数据平台)之数据安全管理

数据安全管理是结合大数据技术和行业特性&#xff0c;数据中台产品应具备数据分类分级、敏感数据智能识别的功能&#xff0c;并结合敏感数据管理、数据脱敏、数据加密等安全管控方式&#xff0c;保障数据安全可用。 1.安全分级分类&#xff1a;数据分级分类是一种将不同数据按…...

github双重验证密码忘记或者获取不了了怎么办

背景 近期由于换了新手机&#xff0c;之前配置好的Authenticator这个App无法使用&#xff0c;导致获取不到二次验证的Authenticator code&#xff0c;登陆不上GitHub&#xff0c;不知道有没有人和我遇到同样的问题&#xff1f; 当我们配置2FA双重验证后&#xff0c;每次登陆gi…...

告别复杂操作!电脑极简风格计时使用

无论是工作、学习还是日常生活&#xff0c;这款小巧实用的计时工具都能成为你掌控时间的好帮手。特别适合需要频繁切换正计时、倒计时和查看当前时间的场景。界面简洁&#xff0c;操作便捷&#xff0c;助你高效管理每一刻。 这是一款免安装的工具&#xff0c;下载后可直接打开…...

stm32cube ide如何将工具链替换成arm-none-eabi-gcc

在 STM32Cube IDE 中替换工具链为GNU Arm Embedded Toolchain (arm-none-eabi-gcc)&#xff0c;可按以下步骤操作&#xff1a; 1. 检查是否已安装工具链 首先确认系统中是否已安装 arm-none-eabi-gcc&#xff1a; Windows&#xff1a;检查环境变量 PATH 中是否包含工具链路径…...

[STM32问题解决(2)]STM32通过串口与PC通信,打开串口助手后无法在打开状态下下载程序和复位STM32

问题回顾 最近学习STM32单片机&#xff0c;经常使用STM32通过USART1串口与PC的串口助手进行通信。为了简单便捷&#xff0c;通常在打开串口的状态下下载程序。这样子下载程序后&#xff0c;STM32发出的信号&#xff0c;PC马上可以收到。 但是&#xff0c;突然出现了一个问题&a…...

RabbitMQ 与其他 MQ 的对比分析:Kafka/RocketMQ 选型指南(二)

四、三者性能大比拼 4.1 吞吐量 吞吐量是衡量消息队列处理能力的重要指标&#xff0c;它反映了在单位时间内消息队列能够处理的消息数量。在这方面&#xff0c;Kafka 表现最为出色&#xff0c;其独特的设计使其能够轻松处理每秒数百万条消息 。Kafka 采用分布式架构和分区机制…...