杂记07 XSS

XSS 的本质只有一句话:浏览器把攻击者输入的"数据",当成了"代码"来执行。 本文从基础概念讲到三个靶场实战:属性逃逸、JSONP 劫持、登录框反射型。

⚠️ 本文所有测试均在授权靶场中完成,仅用于安全学习与防御研究,请勿用于未授权目标。


一、XSS 基础

1.1 什么是 XSS

全称:Cross-Site Scripting(跨站脚本攻击)

原理:网站对用户输入的过滤不足,攻击者把恶意代码(通常是 JavaScript)注入到网页中。其他用户浏览这个页面时,嵌入其中的恶意代码就会被浏览器执行

两个核心要素:

要素 说明
用户输入不可信 任何来自用户的内容都可能是攻击载荷
输出未经过滤 数据被原样拼进 HTML,于是变成了代码

📌 和 SQL 注入对照着记:SQL 注入是让数据库把数据当命令执行,XSS 是让浏览器把数据当代码执行。病根完全一样——数据越界成了代码。

1.2 为什么缩写是 XSS 而不是 CSS

因为 CSS 这个缩写已经被"层叠样式表"(Cascading Style Sheets)占用了。为了在书面表达上不混淆,安全领域把 Cross-Site Scripting 缩写为 XSS

1.3 三种主要类型

类型 是否持久化 触发条件 典型场景
反射型 ❌ 非持久 需要诱导受害者点击恶意链接 搜索框、错误提示页、登录失败回显
存储型 ✅ 持久 访问页面即触发,无需点击 留言板、评论区、用户资料页
DOM 型 ❌ 非持久 浏览器端 JS 处理数据时触发 前端路由、动态渲染

逐条说明:

  • 反射型:恶意代码作为请求参数(如 URL 参数)发给服务器,服务器把它原样"反射"回响应页面。一次访问通常只影响一个用户。

  • 存储型:恶意代码被存进服务器(数据库、文件系统),所有访问该页面的用户都会中招,危害最大。

  • DOM 型:不经过服务器端解析,是浏览器 JS 动态修改 DOM 树造成的。详见第三章。

1.4 危害

  • 窃取用户 Cookie → 账户劫持

  • 会话劫持(Session Hijacking)

  • 篡改网页内容(钓鱼、挂马)

  • 键盘记录、窃取隐私

  • 结合 XSS 发起 CSRF 攻击


二、常用 Payload 与变形

2.1 <script>alert(1)</script>:最简单粗暴的明牌

翻译成大白话:"浏览器,立刻执行一段脚本,给我弹个写着 1 的框!"

片段 作用
<script> HTML 的"代码执行区"入口,告诉浏览器接下来是代码而不是文字
alert(1) JS 最基础的弹窗命令,1 是弹窗显示的内容
</script> 代码执行区到此结束

打个比方:好比你去别人的留言板上留言,没写字,而是贴了张纸条写着"请朗读以下内容:啊!"。网站没做防护,下一个来看留言的人,浏览器读到纸条就乖乖念了出来。

2.2 <img src=x onerror=alert(1)>:伪装成图片的陷阱

翻译成大白话:"浏览器兄弟,请你尝试加载一张名叫 x 的图片。如果找不到(肯定找不到),就立刻给我弹个框!"

片段 作用
<img> 网页里最普通、最无害的标签,防御系统常常对它放松警惕
src=x 图片地址故意写成一个不存在的 x加载必然失败
onerror=alert(1) 陷阱核心onerror 是"出错就执行"的事件,加载失败即触发

优势:不需要用户交互,而且在过滤了 <script> 标签的环境里依然有效。

2.3 常见变形

思路 示例
换事件 <svg onload=alert(1)><input autofocus onfocus=alert(1)><details open ontoggle=alert(1)>
伪协议 <a href="javascript:alert(1)">click</a>
大小写混合 <ScRiPt>alert(1)</ScRiPt>
URL 编码 %3Cscript%3Ealert(1)%3C/script%3E
双写绕过 <scr<script>ipt>alert(1)</script>
空格替代 &
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 用户账户控制(UAC)白名单的配置 Windows7环境中 UAC(User Account Control,用户帐户控制)是由微软在Windows Vista版本中推出的一项旨在增强系统安全性的创新技术,该技术强制要求用户在执行可能干扰计算机正常运作的操作或进行更改会波及其他用户设置的变动前,必须提供相应的权限或管理员密码进行验证。通过对这些操作启动前进行授权确认,UAC能够有效阻止恶意软件及间谍软件在未获授权的状态下于计算机内进行安装或实施修改。 自从Vista版本问世以来,微软便开始推行这一全新的安全机制,可视为对系统安全防护的显著提升。尽管UAC确实能够在一定程度上对某些非法程序起到防御作用,但与此同时,这一功能也给众多用户带来了诸多不便。 因此,许多用户开始探寻是否存在类似于白名单的功能,以便将那些值得信赖的程序直接赋予运行权限。事实上,这类功能确实存在,不过微软并未将其作为标准配置提供。 网络上关于此问题的绝大多数建议都是建议禁用UAC,这种说法显然缺乏针对性,因为若用户希望禁用此功能,本就不会提出相关疑问。 通过运用微软官方发布的Microsoft Application Compatibility Toolkit 5.6版本,可以将信任的程序纳入系统白名单范畴。 获取Application Compatibility Toolkit 安装程序成功后会出现三个可执行文件 以管理员身份启动Compatibility Administrator 在Custom DataBases部分创建新的数据库,并添加一个Application Fix(在下方空白处点击右键,选择...
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 DELL服务器的操作系统部署流程包含一系列细致的环节,其适用范围涵盖多种操作系统类型,例如Windows Server与Red Hat Linux等。在启动部署之前,必须确认服务器的光驱设备为DVD驱动器,并且需准备对应的系统安装媒介。下面将详细列出完整的部署步骤: 1. **启动准备**:将随服务器提供的Systems Management Tools and Documentation version 6.0光盘置入服务器光驱,随后设定服务器以光驱作为启动设备。此环节旨在确保服务器在启动阶段能够读取安装光盘内容。 2. **语言设定**:服务器启动后,选定简体中文作为部署语言,并确认接受许可协议条款。 3. **时区选择**:在部署期间,需设定时区为北京、香港、重庆或乌鲁木齐,依据实际地理位置进行适配选择。 4. **系统类型选择**:随后,需选定计划部署的操作系统,支持的版本包括Server 2003 SP2、Server 2003 SP2 64位版本、Windows 2003 SBS SP2、Server 2008、Windows 2008 SBS/EBS x64版本等,以及多种Red Hat和SUSE Linux版本。 5. **RAID设定**:若服务器出厂时已预设RAID配置,则可选择跳过此步骤。若需重新设定RAID,操作时需格外小心,因为这一过程可能引发硬盘数据遗失。 6. **引导分区规划**:设定引导分区的大小,通常C盘建议预留至少20GB的空间,具体容量需根据系统需求进行调整。 7. **网络设定**:网络设定可在系统部署完成后执行,部署期间建议暂时拔除...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值