首页 > 代码库 > XSS 复合编码 续
XSS 复合编码 续
对上文 【web安全】第二弹:XSS攻防中的复合编码问题 的一些补充,思路来源于:http://escape.alf.nu/3/
html解码的问题:
通过appendChild添加的节点,不会被HTML解码,示例代码如下:
<body>test</body><script type="text/javascript">function escape(s) { var url = ‘javascript:console.log(‘ + JSON.stringify(s) + ‘)‘; console.log(url); var a = document.createElement(‘a‘); a.href = url; a.setAttribute("test", ">2333") document.body.appendChild(a);}s = ">);alert(1)//";escape(s);</script>
只有通过innerHTML插入页面的代码才会被HTML解析。
<script type="text/javascript"> s = ‘<a href="http://www.mamicode.com/>">test</a>‘ document.body.innerHTML = s;</script>
解析后为:
URL解码的问题:
URL解码发生在点击链接的时候。示例如下:
在触发点击事件的时候,先进行URL解码,发现javascript伪协议之后,对内容进行JS解析执行。
XSS 复合编码 续
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。