跨站脚本攻击(Cross‐Site Scripting (XSS))
跨站脚本攻击(Cross‐Site Scripting (XSS))
跨站脚本攻击(Cross‐Site Scripting (XSS))
XSS(Cross Site Script)跨站脚本攻击。是指攻击者向被攻击Web 页面里插入恶意html代码,当用户浏览该页之时,嵌入其中的HTML代码会被执行,从而达到攻击的特殊目的。XSS和CSRF(Cross site request forgery)合称Web 杀手组合。黑客洞穿页面逻辑,使输入的内容被按照期望内容展示出来,从而达到欺骗或攻击用户的效果。常见的xss攻击类型有存储xss攻击和反射型xss攻击。
存储型XSS(Stored XSS)
存储型xss是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能。
图 1 存储型xss攻击示例
1. 用户A修改个人信息,并将带有威胁性的js代码作为个人信息发送到server端;
2. server端未加过滤将用户资料存储到服务器;
3. 用户B在好友列表中看到用户A,并查看用户A个人资料;
4. server端取出用户A资料返回到web前端;
5. 前端按照预先规则展示,其中包含了用户A带有html标签和js的前端可执行代码,从而在用户B机器上执行了用户A预先设定好的任意威胁性的代码。
例如用户A修改用户备注为:<script>alert("haha");</script>,按照上述流程用户B的页面上执行这段代码。
举个例子,黑客预先调查某bbs展示帖子内容的代码逻辑,然后发帖:
提交之后,出现在帖子列表:
当其他用户点击帖子查看时,悲剧发生了:
,还好,只是恶作剧。
解决方案
1. 做xss过滤,将一些不合理的标签(例如:< > % /)做转义或者过滤,在存入DB前做xss过滤要比展示前做xss过滤更有效。
2. 限制用户输入的字符,比如:码只允许\s = whitspace: \t\n\x0B\f\r,\w = word: a-zA-Z_0-9
反射型XSS(Reflected XSS)
如果server端未做输入参数的过滤或者过滤不完整导致用户的输入数据可能返回到前端页面,Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。
图 2 反射型xss示例
1. 用户A构造参数值带有js代码URL,并将URL发给好友B,告诉他可以参与活动;
2. 好友B收到请求后发现是官方的URL,于是点击URL;
3. server端未严格校验请求参数,将参数直接返回到前端页面;
4. 参数中的js代码随着html返回到用户B浏览器并得以执行。
例如某网站输入用户信息后,服务器校验输入有误,返回错误页面并“友好”的将错误内容展示给用户看,例如:
用户将带有攻击性的URL做为输入源,例如:<img src="www.xxx.com"/>,服务端会跳转到对应的错误页,如下:
这样www.xxx.com里的恶意js会被执行。
黑客可以将提交请求的URL进行进行包装或者直接暴露URL,用户通常看到可信任网站的URL会不加防范的点击,从而造成损失,例如上述可以暴露给用户URL:
解决方案:
同存储型xss攻击。
跨站脚本攻击(Cross‐Site Scripting (XSS))的更多相关文章
- WebGoat学习——跨站脚本攻击(Cross‐Site Scripting (XSS))
跨站脚本攻击(Cross‐Site Scripting (XSS)) XSS(Cross Site Script)跨站脚本攻击.是指攻击者向被攻击Web 页面里插入恶意html代码,当用户浏览该页之时 ...
- 跨站脚本攻击(Cross‐Site Scripting (XSS))实践
作者发现博客园在首页显示摘要时未做html标签的过滤,致使摘要中的html代码可以被执行,从而可以注入任何想要被执行的js代码,作者利用这一缺陷在本文摘要中插入了一段js代码执行alert弹窗,同时增 ...
- XSS 跨站脚本攻击(Cross Site Scripting)
xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意 ...
- 跨站脚本攻击XXS(Cross Site Scripting)修复方案
今天突然发现,网站被主页莫名奇妙的出现了陌生的广告. 通过排查发现是跨站脚本攻击XXS(Cross Site Scripting).以下为解决方案. 漏洞类型: Cross Site Scriptin ...
- Web安全之XSS(Cross Site Scripting)深入理解
XSS的含义 XSS(Cross Site Scripting)即跨站脚本.跨站的主要内容是在脚本上. 跨站脚本 跨站脚本的跨,体现了浏览器的特性,可以跨域.所以也就给远程代码或者第三方域上的代码提供 ...
- XSS (Cross Site Scripting) Prevention Cheat Sheet(XSS防护检查单)
本文是 XSS防御检查单的翻译版本 https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sh ...
- Healwire Online Pharmacy 3.0 Cross Site Request Forgery / Cross Site Scripting
Healwire Online Pharmacy version 3.0 suffers from cross site request forgery and cross site scriptin ...
- python---xss(Cross Site Scripting)跨站脚本攻击和csrf(xsrf)跨站点请求伪造(Cross—Site Request Forgery)攻击
xss跨站脚本攻击:恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的. 例如:某些论坛允许用户自由发言,而 ...
- DVWA 黑客攻防演练(十二) DOM型 XSS 攻击 DOM Based Cross Site Scripting
反射型攻击那篇提及到,如何是"数据是否保存在服务器端"来区分,DOM 型 XSS 攻击应该算是 反射型XSS 攻击. DOM 型攻击的特殊之处在于它是利用 JS 的 documen ...
随机推荐
- PLSQL_监控有些SQL的执行次数和频率
原文:PLSQL_监控有些SQL的执行次数和频率 2014-12-25 Created By 鲍新建
- 一步一步写算法(之prim算法 上)
原文:一步一步写算法(之prim算法 上) [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 前面我们讨论了图的创建.添加.删除和保存等问题.今 ...
- CSS3字体模块
介绍 字体提供了包含字符的视觉表现的资源.在最简单的等级中,其包含由字符编码到表示这些字符的形状(被称为字形)的映射信息.根据一组标准字体属性被分入一个字体家族的字体共享一个通用设计风格.在一个家族中 ...
- 【android】WebView缓存数据收集
Android WebView 缓存 Android高手进阶教程(二十四)之---Android WebView的缓存!!! Android webView 缓存 Cache + HTML5离线功能 ...
- 简洁vim配置方案Janus(1)
最近不想在编辑器上花太多的精力,所以找到个不错的解决方案. 在不懂vim配置的前提下也能用的很开心. 1,下载安装Janus(https://github.com/carlhuda/janus) 安装 ...
- List<string>和string[]
List<string>和string[] List<string>是集合:string[]是数组: ///////////////////////////////////// ...
- win7兼容oracle
操作系统:win7,数据库版本:Oracle 10.0. 问题:安装Oracle10.0时,安装程序意外退出,可按照如下操作解决win7与oracle兼容性问题. 1.打开“\Oracle 10G \ ...
- Huffman 压缩和解压缩java实现
附上完整的代码 http://download.csdn.net/download/u010485034/7847447 Huffman编码原理这里就不说了,是.这里来讲讲利用Huffman编码来进行 ...
- [转]Android图片下载
因为国内被墙,看起来不方便,转载下,原文地址:http://android-developers.blogspot.com/2010/07/multithreading-for-performance ...
- Qt的SQL操作,DELETE,SELECT
#include <QObject> #include <QSqlDatabase> #include <QSqlError> #include <QSqlQ ...