
[TOC]
介绍什么是嵌套解析器情况下的XSS
嵌套解析器 :这里的“嵌套”并不是指代码写成了嵌套结构,而是指数据的处理流程是串行的,导致一段被转换过的 HTML代码,又被扔进了下一个解析器里处理。
开发眼中预期的工作逻辑 :
1用户输入一段话 → 经过 URL 解析器 → 经过邮箱解析器 → 输出 HTML。
漏洞原因 :
1但是如果第二个解析器(如邮箱解析器)并不知道第一个解析器(URL 解析器)已经生成了 HTML 标签,就会导致payload被构造暴露出来;
示例这里有一个PHP的例子,假设有一个函数先转换 URL 为链接,再转换 Email 为链接。
输入 :
1http://google.com/user@gmail.com?hack='123'onmouseover='alert(/xss/)' '
预期 :应该生成一个包含 URL 的 <a> 标签。实际 :
URL 解析器先工作,生成了一个 href 属性,如 <a href="http://example.com/use ...








