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

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保存常用语句

http://www.xdnf.cn/news/686161.html

相关文章:

  • 《深入解析UART协议及其硬件实现》-- 第二篇:UART硬件架构设计与FPGA实现
  • pikachu靶场通关笔记05 XSS关卡01-反射型GET
  • WPS自动换行
  • Rust 学习笔记:循环和迭代器的性能比较
  • Windows下安装并使用kubectl查看K8S日志
  • 可视化提示词(Prompt)在训练过程中的优化过程:visualize_prompt_evolution
  • AI 产品的 MVP 构建逻辑:Prompt 工程 ≠ 产品工程?
  • 【Prompt Engineering】摸索出的一些小套路
  • 弱光环境下如何手持相机拍摄静物:摄影曝光之等效曝光认知
  • 【Android笔记】记一次 CMake 构建 Filament Android 库的完整排错过程(安卓交叉编译、CMake、Ninja)
  • GC1267F:单相全波风扇电机预驱动芯片解析
  • 如何发布npm包?
  • 国标GB28181视频平台EasyGBS视频实时监控:打造城市环境监控全场景解决方案
  • LeetCode 1871. 跳跃游戏 VII(中等)
  • EasyRTC嵌入式音视频实时通话SDK助力AI与IoT智能硬件打造音视频交互多场景应用
  • 力扣热题100之二叉树的中序遍历
  • 【掌握文件操作】(下):文件的顺序读写、文件的随机读写、文件读取结束的判定、文件缓冲区
  • 【开源工具】跳过网页APP禁止粘贴限制:自动输入键盘模拟工具
  • day12 leetcode-hot100-21(矩阵4)
  • MySQL XtraBackup---笔记
  • 初识Docker:容器化技术的入门指南
  • 关于JavaScript、TypeScript Module的配置和用法
  • Vue 3.0 状态管理Pinia详解
  • JWT安全:接收无签名令牌.【签名算法设置为none绕过验证】
  • 生成式AI与AI代理:技术、应用与未来
  • 《仿盒马》app开发技术分享-- 订单地址修改(端云一体)
  • 全局代理从局域到全域的网络升级
  • 华为AP6050DN无线接入点瘦模式转胖模式
  • 常见的C语言段错误实例及原因分析
  • Java开发——三层架构,分层耦合