声明:
由于笔者能力有限,难免出现各种错误和漏洞。全文仅作为个人笔记,仅供参考。
笔记内容来源于各类网课。
环境:
XSS Challenges Stage #14:http://xss-quiz.int21h.jp/ ,IETester(IE6,IE10),FireFox
一、概述
IE中利用CSS触发XSS。
二、CSS
层叠样式表(英文全称: Cascading Style Sheets)是一种用来表现HTML (标准通用标记语言的一个应用)或XML (标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
CSS中执行JS
css expression(css表达式)又称Dynamic properties(动态属性)是早期微软DHTML的产物,以其可以在CSS中定义表达式(公式)来达到建立元素间属性之间的联系等作用,从IE5开始得到支持,因标准、性能、安全性等问题,IE后续版本以及其他浏览器取消对css expression的支持。
CSS中使用/**/进行注释。使用expre/**/ssion、express/**/ion等绕过对expression的过滤。
可以构建如下Payload触发XSS。
p:expre/**/ssion(if(window.x){alert(1);window.x=1})
三、XSS探测
1. 正常的数据提交
这里123abc,也是出现在style和value中。
2. 构造Payload
对script等众多关键字有过滤。我们直接测试Payload。
xss:exp/**/ression(if(!window.x){alert(document.domain); window.x=1;})
触发XSS成功。