0527漏洞原理:XSS笔记

理论知识

01 前端基础知识

1.1 HTML基础

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

内嵌脚本:

html 复制代码
<script>JavaScript代码</script>

1.4 JavaScript弹窗函数

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

1.5 JavaScript事件

  • 事件三要素 :

    1. 事件源 (如<a>、<div>标签)
    2. 事件(如单击、双击)
    3. 事件处理程序 (如onclick触发的函数)
  • 示例 :

    html 复制代码
    <img src="x" onerror="JS代码" /> <!-- 图片加载失败时执行JS -->

1.6 JavaScript伪协议

  • 通过javascript:协议直接在URL中执行JS代码:

    html 复制代码
    javascript:var now = new Date(); "<h1>The time is:</h1>" + now;
  • 利用示例 :

    html 复制代码
    <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(内容安全策略)

  • 作用:通过白名单限制可加载的资源(如脚本、图片)。

  • 示例 :

    html 复制代码
    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挑战平台:

相关操作

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

相关推荐
天远API32 分钟前
零信任架构实战:基于天远运营商三要素详版V即时版构建自动化消费电子大促电商平台高价值权益秒杀与优惠券防羊毛高并发实名核验网关
运维·人工智能·架构·自动化
无心水41 分钟前
24、系统架构师论文写作专题 核心考点与学习笔记
笔记·学习·系统架构·架构师·安全架构·软考架构师·软考系统架构设计师
蒸蒸yyyyzwd1 小时前
邓明 Agent 系统面试-意图识别学习笔记
笔记·学习
Android系统攻城狮1 小时前
Linux FFmpeg深度解析之avcodec_default_get_encode_buffer调用流程与实战(二十八)
linux·运维·服务器·ffmpeg·车载音视频·ffmpeg音视频
乐维_lwops2 小时前
案例解读:大型综合性科创产业园运维监控落地实践
运维·网络·人工智能·安全·it监控·国产运维智能体
番茄啊3 小时前
linux 开启xftp连接
linux·运维·服务器
IT利刃出鞘4 小时前
Docker Compose--解决修改配置后不生效的问题
运维·docker·容器
Lsetea4 小时前
Docker更新SSL证书后容器仍读旧文件:单文件挂载与目录挂载排查
运维·nginx·docker·https·ssl证书
Zhao-Jichao4 小时前
AI Prompting for Everyone 课程笔记 - P21 总结 Conclusion
人工智能·笔记
欢欢李4 小时前
【LTE L3 笔记 05】LTE同步信号
笔记·无线通信·物理层·lte·空口协议