声明:
由于笔者能力有限,难免出现各种错误和漏洞。全文仅作为个人笔记,仅供参考。
笔记内容来源于各类网课。
环境:
XSS Challenges Stage #13:http://xss-quiz.int21h.jp/ ,IETester(IE6,IE10),FireFox
一、概述
利用CSS特性触发XSS。
二、css的background
backgound用来设置背景属性。例如:
body
{
background: #00FF00 url(bgimage.gif) no-repeat fixed top;
}
更多可以参考W3school。
在XSS利用中,设置background:url,利用JavaScript伪协议执行JS,目前IE浏览器(部分)支持,其他浏览器不再支持。
三、XSS探测
1. 正常的数据提交
提交的123abc,同时出现在input的style和value属性。
2. 代码审查
经过代码审查,我们可以先尝试闭合引号。
引号被过滤,我们使用IE的反引号尝试。
同样无法闭合,更是由于数据会出现在两个属性中,就不太好构造Payload。
我们尝试利用IE的CSS的background:url("javascript:")执行JS代码。
打开IETester,开启IE6和IE10。使用如下Payload进行测试。
background:url("javascript:alert(1)");
IE10:
IE6:
脚本成功执行。
3. 构造Payload
background:url("javascript:alert(document.domain)");
IE6:
IE11:
脚本可以成功执行,在IE11,FireFox上测试不能执行。