XSS详解【1】---基本概念和攻击原理
这节主要讲述XSS的基本概念和攻击原理。
一 XSS基本概念
人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,有人将跨站脚本攻击缩写为XSS。
跨站脚本攻击(XSS),是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。
二 攻击原理
XSS的形成根因在于攻击者精心构造的非法输入在受害者浏览器处解析为代码,被浏览器执行,从而造成损害。如果网站使用MVC架构,那么XSS就发生在View层,在应用拼接变量到HTML页面时发生。
根据攻击方式不同,XSS又分为反射型XSS、存储型XSS和基于Dom的XSS,三种类型。
2.1 反射型XSS
反射型XSS,也叫非持久型XSS。攻击者构造一个包含脚本的URL,并让正常用户打开这个url,这样XSS代码出现在请求URL中,作为参数提交到服务器,服务器对参数没有进行XSS相关处理,直接解析并响应。响应结果中包含XSS代码,最后浏览器解析并执行。
攻击过程中恶意数据被服务器“反弹”给用户的浏览器,故称为反射型XSS。
特点:反射型XSS主要服务端没有对外来数据进行XSS处理,就直接发送给浏览器,导致出现XSS攻击。
实例:
A是攻击者,B是被攻击者,X是网站
1)A构造了一个包含恶意脚本参数的url,这个url的域名是X网站;
例如:http://x.com/?name=<script>alert("hey!");</script>
说明:上边构造的name参数,值是一个脚本,这个脚本里的JavaScript代码很有可能会执行一些有危害的操作,例如:自动购买、删除等恶意操作。
2)A将这个URL通过各种方式发送给B,B点击这个链接;
3)X网站后台将对应链接内容参数解析,并将name参数值当做页面内容直接返回给B的浏览器;
注意:这里X网站后台没有对name参数进行XSS处理。
4)B的浏览器中直接执行A构造的脚本,导致攻击成功。
注意:这种url中构造的脚本参数,chrome浏览器做了安全防护,是无法执行的,而firefox是可以执行的。
黑客往往通过电子邮箱等方式诱惑用户点击某个恶意链接,才能攻击成功。这种情况下,受害者相对较少。
2.2 存储型XSS
存储型XSS,也叫持久型XSS,主要是将XSS代码发送到服务器(不管是数据库、内存还是文件系统等),然后在下次请求页面的时候,服务器从数据库中读取数据,没有做XSS相关处理,直接输出给浏览器,导致攻击代码被执行。
实例:
最典型的就是留言板XSS。用户提交了一条包含XSS代码的留言到数据库。当目标用户查询留言时,那些留言的内容会从服务器解析之后加载出来。浏览器发现有XSS代码,就当做正常的HTML和JS解析执行。XSS攻击就发生了。
2.3 基于DOM的XSS
这种情况不依赖于是否将恶意程序放置于服务器,而是修改页面的DOM节点,效果上说也属于反射型XSS。例如,攻击者输入恶意字符串,构建出带有恶意程序的html页面,然后诱导用户点击,点击后,将造成xss攻击。
三 XSS的根因
XSS之所以会发生,就是由于在输出不可信数据到浏览器的时候,没有对数据中潜藏的可执行代码做处理,导致代码被浏览器执行。
四 参考资料
https://www.cnblogs.com/mao2080/p/9460397.html
https://baike.baidu.com/item/XSS攻击/954065?fr=aladdin
XSS详解【1】---基本概念和攻击原理的更多相关文章
- IPv6技术详解:基本概念、应用现状、技术实践(下篇)
本文来自微信技术架构部的原创技术分享. 1.前言 在上篇<IPv6技术详解:基本概念.应用现状.技术实践(上篇)>,我们讲解了IPV6的基本概念. 本篇将继续从以下方面展开对IPV6的讲解 ...
- IPv6技术详解:基本概念、应用现状、技术实践(上篇)
本文来自微信技术架构部的原创技术分享. 1.前言 普及IPV6喊了多少年了,连苹果的APP上架App Store也早已强制IPV6的支持,然并卵,因为历史遗留问题,即使在IPV4地址如果饥荒的情况下, ...
- 【详细解析】MySQL索引详解( 索引概念、6大索引类型、key 和 index 的区别、其他索引方式)
[详细解析]MySQL索引详解( 索引概念.6大索引类型.key 和 index 的区别.其他索引方式) MySQL索引的概念: 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分 ...
- Shiro 安全框架详解二(概念+权限案例实现)
Shiro 安全框架详解二 总结内容 一.登录认证 二.Shiro 授权 1. 概念 2. 授权流程图 三.基于 ini 的授权认证案例实现 1. 实现原理图 2. 实现代码 2.1 添加 maven ...
- Shiro 安全框架详解一(概念+登录案例实现)
shiro 安全框架详细教程 总结内容 一.RBAC 的概念 二.两种常用的权限管理框架 1. Apache Shiro 2. Spring Security 3. Shiro 和 Spring Se ...
- HTTPS详解二:SSL / TLS 工作原理和详细握手过程
HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 在上篇文章HTTPS详解一中,我已经为大家介绍了 HTTPS 的详细原理和通信流 ...
- RocketMQ详解(四)核心设计原理
专题目录 RocketMQ详解(一)原理概览 RocketMQ详解(二)安装使用详解 RocketMQ详解(三)启动运行原理 RocketMQ详解(四)核心设计原理 RocketMQ详解(五)总结提高 ...
- Java网络编程和NIO详解6:Linux epoll实现原理详解
Java网络编程和NIO详解6:Linux epoll实现原理详解 本系列文章首发于我的个人博客:https://h2pl.github.io/ 欢迎阅览我的CSDN专栏:Java网络编程和NIO h ...
- RocketMQ详解(三)启动运行原理
专题目录 RocketMQ详解(一)原理概览 RocketMQ详解(二)安装使用详解 RocketMQ详解(三)启动运行原理 RocketMQ详解(四)核心设计原理 RocketMQ详解(五)总结提高 ...
随机推荐
- Blazor初体验之寻找存储client-side jwt token的方法
https://www.cnblogs.com/chen8854/p/securing-your-blazor-apps-authentication-with-clientside-blazor-u ...
- Sql Server 2008 【存储过程】 死锁 查询和杀死
1 . 使用数据库中,可能出现死锁, 导致程序 无法正常使用. Create procedure [dbo].[sp_who_lock] ( @bKillPID Bit=0 -- 0: 查询 1: 结 ...
- 【第一篇】为什么选择xLua
为什么选择xLua 1. 易用性 Unity全平台补丁技术,可以运行时把C#实现(方法.操作符.属性.事件.构造函数)替换为lua的实现 自定义struct,枚举在lua和C#之间传递无C#的gc a ...
- Linux ps和pstree命令
1. 查看所有进程 ps -eF -e: Select all processes.-F: Extra full format. PSR (Processor)显示进程所在的CPU. 2. 查看所有进 ...
- js Dom为页面中的元素绑定键盘或鼠标事件
html鼠标事件 onload 页面加载 onclick 鼠标单击 onmouseover 鼠标移入 onmouseout 鼠标移出 onfocus 获取焦点 onblur 失去焦点 onchange ...
- TotalUninstall6破解步骤卸载软件更彻底更专业
软件包分享,这里使用的是6.24版本 链接:https://pan.baidu.com/s/1aVd6bclk5A6puyWBfAOA2A提取码:mhl9 接下来开始安装 安装步骤: 点击安装.基本上 ...
- P4939 Agent2
链接:P4939 ------------------------------------------------ 这道题肯定是数据结构题. ----------------------------- ...
- P2256 一中校运会之百米跑
----------------------- 题目链接:MIKU --------------------- 我现在发现找BUG的最好方法————喝水 喝一次找一个,喝两次A道题 --------- ...
- 纪中20日c组T2 2122. 【2016-12-31普及组模拟】幸运票
2122. 幸运票 (File IO): input:tickets.in output:tickets.out 时间限制: 1000 ms 空间限制: 262144 KB 具体限制 Goto P ...
- 安装MongoDB到CentOS(YUM)
运行环境 系统版本:CentOS Linux release 7.3.1611 (Core) 软件版本:mongodb-org-4.0.8 硬件要求:无 安装过程 1.配置YUM-Mongodb存储库 ...