首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><plaintext>易受XSS攻击吗?

<plaintext>易受XSS攻击吗?
EN

Security用户
提问于 2021-10-21 13:02:07
回答 1查看 1.4K关注 0票数 2

我有一个关于元素的问题。我知道这个元素已经被废弃很久了,但是在渗透测试中,我们将以下攻击向量插入到textarea中:

代码语言:javascript
复制
<plaintext onmouseover="(function(){ console.log(document.domain); })();">

XSS的其他攻击向量也会被阻塞,甚至使用事件的HTML元素也会被阻塞。

前端使用的框架是JSF。

我知道明文命令浏览器将以下内容视为简单的文本而不进行任何格式化,但是<plaintext>允许XSS是否正常呢?

有没有人听说过这件事,或有任何关于这种行为的背景资料?

EN

回答 1

Security用户

发布于 2021-10-21 13:58:24

这看起来不像是一次成功的XSS攻击。

首先,<plaintext>元素在这个上下文中并不特殊。浏览器仍然支持它,但是HTML5非常灵活,允许您编写任何标记。您可能还可以添加一个具有等效效果的<foo>标记或<custom-element>

其次,也是更重要的是,<textarea><title>元素有一个特殊的内容模型(可逃避的原始文本元素):它们只允许文本内容,并以下一个</序列结尾,尽管符号转义仍然有效。还可以考虑在超文本标记语言解析算法中搜索textarea元素的特殊处理。

因此,您可能已经插入了普通文本内容,而不是一个参与DOM的HTML元素。

符合标准的浏览器将解析HTML片段

代码语言:javascript
复制
<textarea>surrounding <foo onmousehover="..."> content</textarea>

作为DOM

代码语言:javascript
复制
HTMLElement "textarea"
 children:
   - #text "surrounding <foo onmousehover="..."> content"

而不是像DOM那样

代码语言:javascript
复制
HTMLElement "textarea"
  children:
    - #text "surrounding "
    - HTMLElement "plaintext"
        onmousehover: "..."
    - #text " content"

但是,textarea元素的这种行为有时会导致混乱,从而允许XSS。上面链接的HTML解析算法中的一个例子提到了textarea元素中的注释问题。如果应用程序构造DOM并将DOM序列化为HTML文档,则解析该文档可能会产生不同的DOM。例如:

  • 输入DOM: HTMLElement "textarea“子区:-#注释"”- #text "内容
  • HTML序列化: <!-- ->内容
  • 新DOM:- HTMLElement "textarea“子区:- #text "
票数 7
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/256324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档