安全性-超文本标记语言(HTML)浏览器安全性-超文本标记语言(HTML)Р代码很简单,设置返回响应字符集为Shift_JIS,然后把utf-8转换为Shift_JIS字符集。?可以看到在IE中129-159和224-252中,123456中的1消失了,与前面的字符合并成一个字符了。?标签后面也可加入/符号做间隔:?<img/src=x onerror=alert(1)>尝试在标签与/之间再插入其他字符来测试,由于空字符无法直观显示,所以用\0来表示null,同样主流浏览器都可以执行:?<img\0/src=x onerror=alert(1)>再尝试ASCII码之外的字符,这种字符在正则表达式中\w是无法匹配到的,主流浏览器都可以执行:?<img/ \/\μ src=x onerror=alert(1)//>测试发现,标签名与属性名直接只要是以/开头以/或"结尾,中间几乎可以插入任意字符。?在Fuzzing属性方面,考虑两方面,一个是可以使用什么分隔符,一个是属性值可以采用什么编码。?分隔符有很多种,单引号,双引号,无任何引号,反撇号(IE中)。?<?php for($i = 1; $i <= 255; $i++) { $character = chr($i); echo '<div><font size='. $character. '20'. $character. '>'.$i.' </font></div>'; } ?> ?上面代码可以直观的看出当前浏览器支持的分隔符有哪些字符。?上面代码size属性如果输入的是字符的话,会顺利执行,所以当$character中循环到数字的时候也会顺利解析,但这并非是把数字当成了分割符:Р挥多蔬柬恤杀野滞沈治期亚哑杭昼闯滨窑摘滚郁惮剿帚钠浊灌青替押愧姚浏览器安全性-超文本标记语言(HTML)浏览器安全性-超文本标记语言(HTML)