声明:
由于笔者能力有限,难免出现各种错误和漏洞。全文仅作为个人笔记,仅供参考。
笔记内容来源于各类网课。
环境:
XSS Challenges Stage #2:http://xss-quiz.int21h.jp/ , Chrome浏览器
一、概述
标签属性的XSS。
二、Chrome配置
在使用Chrome探测XSS时,会触发Chrome的XSS防护机制(XSS-Auditor),我们需要关闭这个机制。
1. 新建一个Chrome的快捷方式
2. 关闭XSS-Auditor
右击->属性->快捷方式->目标,增加一个参数,来关闭XSS-Auditor。
--args --disable-xss-auditor
三、探测XSS过程
1. 正常的数据提交
使用123abc输入测试。
2. 代码审查
分析代码,这是一个反射型XSS漏洞。我们提交的数据被包含进入input标签的value属性中。
我们可以使用两种思路构造Payload。
- 属性中的XSS闭合引入script:闭合input标签,后面接上脚本
- 属性中的XSS闭合引入事件:在input内添加事件,事件内为我们的脚本
引入script:
"> 123abc
我们将input闭合:先闭合value属性,需要一个双引号,再闭合input'标签,需要一个>。
我们的Payload成功闭合标签。
引入事件:
原理是我们将value闭合,再向input标签中添加一个事件和事件处理脚本,再闭合input标签,使用一个> 。我们引入onmoseover,鼠标移到某元素(这里时input标签)之上触发。
" onmouseover=alert(1)>
事件可以触发。
其他事件的描述,参考菜鸟教程:https://www.runoob.com/jsref/dom-obj-event.html
3. 构造Payload
我们首先尝试引入script,使用Payload如下:
"> <script>alert(document.domain);</script>
脚本被成功执行。
我们再尝试使用引入事件。
" onmouseover=alert(document.domain) >