浏览器解析问题造成的存储型跨站漏洞(DVBBS为例)

参考:http://www.2cto.com/Article/201305/207379.html


先说说浏览器的对于标签的解析。

 
<A>文本段 1<B>文本段 2</B>文本段 3</A>
1.解析中解析到<b>的时候先把文本段1入栈。
2.解析到b的结束标签后把文本2入栈。
3.解析出a的结束标签再把文本3入栈。
所以一些流行的技术是通过一些优先级高的标签截断。
这里谈的是关于DOM解析和渲染造成的XSS。
DOM渲染就是,标签和属性正确闭合。
先来看一个例子,DVBBS的
对输出在属性的内容习惯性的做法是编码单引号和双引号,这里的例子将两者都编码了。
 
 
现在我们看下如何绕过,一般编码了这两玩意都没救了,但是结合下浏览器的特性。
我们输入
<a test=οnclick=alert(1);//
 



 
这是为什么,很简单。
浏览器解析的时候遇到 
<a视为标签,然后就会去试图找到结束标签。
我们在属性中插入 <a 会被浏览器视为标签 然后我们输入<a test= test就会被视为属性名,因为DOM的渲染,所以test标签在重构的时候自动闭合 但是然后前面的属性就会被闭合掉 就是test=重构的时候成为了test="" 但是因为输出在属性中 所以 src会被闭合,我们后面输入的οnclick=alert(1);// 会被再次闭合 XSS插入成功。
 
<img src="&lt;a test=" οnclick="alert(1);//&quot;&quot;" οnlοad="imgresize(this);">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值