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

xss的利用

目录

一、XSS的原理和分类

二、常见的XSS标签和属性

三、Xss漏洞分类

1. 反射性xss

反射性 XSS 典型攻击场景

基于 URL 参数的反射性 XSS

基于表单参数的反射性 XSS

利用 HTML 标签属性的反射性 XSS

2.存储型XSS

存储型XSS的高频攻击场景

社交平台评论区

论坛发帖与私信系统

 电商平台商品描述

3.基于DOM的 XSS

攻击原理剖析

DOM 型 XSS 典型攻击场景与案例

基于 URL 参数的 DOM 型 XSS

基于localStorage/sessionStorage的 DOM 型 XSS

一、XSS的原理和分类

跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混 淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之 时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层 面的攻击!

二、常见的XSS标签和属性

1.直接执行脚本的标签

<script>alert('1')</script>
<svg onload=alert('1')>
<svg><script>alert(1)</script></svg>

2.利用事件属性执行脚本 

<img src=x onerror=alert('1')>      
<body onload=alert('1')>           
<iframe onload=alert('1')></iframe>
<input type="text" onfocus=alert('1') autofocus> 

3. 伪协议触发脚本

<a href="javascript:alert('1')">点击</a>
<iframe src="javascript:alert('1')"></iframe>
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4="></object>

三、Xss漏洞分类

1. 反射性xss

反射型XSS 是非持久性、参数型的跨站脚本。反射型XSS JS 代码在Web 应用的参数(变量)中,如搜 索框的反射型XSS。在搜索框中,提交PoC[scriptalert(/xss/)/script],点击搜索,即可触发反射型XSS。 注意到,我们提交的poc 会出现在search.php 页面的keywords 参数中。

反射性 XSS 典型攻击场景

基于 URL 参数的反射性 XSS

        场景:搜索框、商品详情页等通过 URL 传递参数的功能点。

基于表单参数的反射性 XSS

        登录页、评论表单等 POST 请求参数未过滤的场景。

利用 HTML 标签属性的反射性 XSS

        原理:通过 HTML 标签属性(如onclickhrefsrc)触发脚本执行。

2.存储型XSS

存储型XSS 是持久性跨站脚本。持久性体现在XSS 代码不是在某个参数(变量)中,而是写进数据库或 文件等可以永久保存数据的介质中。存储型XSS 通常发生在留言板等地方。我们在留言板位置留言,将 恶意代码写进数据库中。此时,我们只完成了第一步,将恶意代码写入数据库。因为XSS 使用的JS 代 码,JS 代码的运行环境是浏览器,所以需要浏览器从服务器载入恶意的XSS 代码,才能真正触发XSS。 此时,需要我们模拟网站后台管理员的身份,查看留言。

存储型XSS的高频攻击场景

社交平台评论区

        场景:用户发表评论时,嵌入恶意脚本,后续访客浏览该评论时触发攻击。

论坛发帖与私信系统

        场景:攻击者发布包含恶意脚本的帖子或私信,受害者访问时自动执行脚本。

 电商平台商品描述

        场景:商家在商品描述中植入恶意脚本,用户浏览商品详情页时触发。

3.基于DOM XSS

DOM XSS 比较特殊。owasp 关于DOM 型号XSS 的定义是基于DOM XSS 是一种XSS 攻击,其中攻击 的payload由于修改受害者浏览器页面的DOM 树而执行的。其特殊的地方就是payload 在浏览器本地修改DOM 树而执行, 并不会传到服务器上,这也就使得DOM XSS 比较难以检测。

攻击原理剖析

1.数据源获取:
前端 JS 通过location.href、document.URL、localStorage等方式获取用户可控数据(如 URL 参数、Cookie)。
2.DOM 动态操作
JS 使用innerHTML、outerHTML、document.write()等危险 API,将未过滤的数据源直接写入 DOM。
3.脚本执行:
浏览器解析 DOM 时,执行嵌入的恶意脚本。

DOM 型 XSS 典型攻击场景与案例

基于 URL 参数的 DOM 型 XSS

        场景:前端通过 URL 参数动态更新页面内容(如单页应用路由、个性化参数)。

                漏洞代码(JavaScript):

// 错误示例:使用innerHTML直接渲染URL参数
function renderPage() {const hash = window.location.hash.slice(1); // 获取#后的参数document.getElementById('content').innerHTML = '<h1>' + hash + '</h1>';
}
window.onload = renderPage;

                恶意 URL:

http://example.com/#<script>alert('1');</script>

                攻击效果:

                        页面加载时,hash参数被写入innerHTML,触发脚本执行。

基于localStorage/sessionStorage的 DOM 型 XSS

        场景:前端从本地存储中读取用户数据并渲染。

                漏洞代码(JavaScript):

// 错误示例:从localStorage获取数据并渲染
const username = localStorage.getItem('username');
document.getElementById('welcome').innerHTML = `欢迎你,${username}!`;

                攻击步骤:

                        1、攻击者诱导用户访问恶意页面,执行:

localStorage.setItem('username', '<script>alert("XSS");</script>');

                        2、用户访问目标网站时,前端读取并渲染恶意内容。

http://www.dtcms.com/a/288012.html

相关文章:

  • 博图SCL语言中常用运算符使用详解及实战案例(下)
  • 抖音回应:没有自建外卖,就是在团购的基础上增加的配送功能
  • 前端开发技巧:浏览器模拟弱网络环境
  • Streamlit 官翻 4 - 快速参考、知识库 Quick Reference
  • 电脑windows系统深度维护指南
  • 网络包从客户端发出到服务端接收的过程
  • 初识C++——开启新旅途
  • 【每日算法】专题十五_BFS 解决 FloodFill 算法
  • Xshell若依项目部署到云服务器
  • 考研408《计算机组成原理》复习笔记,第三章(5)——磁盘存储器
  • react+antd 可拖拽模态框组件
  • 智能设备畅想
  • AWD练习的平台搭建
  • 牛客-倒置字符串
  • 如何使用orthofinder进行同源基因鉴定
  • 【Web APIs】JavaScript 自定义属性操作 ② ( H5 自定义属性 )
  • Node.js dns 模块深入解析
  • python的第三方库的基本运用
  • node.js学习笔记1
  • Tomcat配置和部署项目
  • 从零手写红黑树(C++实现详解)
  • Java 中的继承与多态
  • 【OD机试】人民币转换
  • 小数点何去何从?教务系统成绩计算的精度与公平性博弈
  • Linux:lvs集群技术
  • 跨境卖家紧急自查,Endryko Karmadi四季版画版权维权
  • 单例模式的设计与实现
  • Helm常用命令大全(2025最新版)
  • 马拉车(Manacher)算法
  • 自动化立体仓库堆垛机控制系统上报堆垛机状态 FC5