XSS原理详解
时间:2022-07-23
本文章向大家介绍XSS原理详解,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
什么是XSS?
CSS(Cross Site Scripting)—>>>XSS(跨站脚本攻击)
目的:让受害者http客户端运行攻击者编写的恶意脚本。
目标:前端脚本解析器,比如浏览器的javascript解析引擎、IE中的VBScript解析引擎。
攻击的架构:BS架构(browser<–>(http)server)
XSS有何危害?
XSS能够产生的危害依赖于浏览器客户端脚本解析引擎的能力。
- 技术上
窃取凭证
篡改DOM(篡改页面布局及内容)
嵌入恶意的脚本代码
发起恶意请求(Ajax)
- 社会影响上
无账号密码的情况下非法登录网站
网络钓鱼
网页蠕虫
网页篡改
破解CSRF token限制
XSS漏洞原理?
前端用户提交的脚本代码被其他用户浏览器执行产生预期外的执行后果。(让自己提交的前端脚本代码被别人运行)。
XSS分类
三类:反射型、存储型、DOM型
反射性XSS:一次性XSS,与服务器交互
存储型XSS:持久性XSS,与服务器交互
DOM型XSS:一次性XSS,不与服务器交互
如何发现XSS漏洞点?
找到输入点和输出点、以及两者共存的情况,或者根据输入点猜测后台的输出点位置及触发条件(盲X),比如:各类表单处、文件上传点等等。
XSS利用思路与步骤?
- 找到输入点和输出点、以及两者共存的情况,或者根据输入点猜测后台的输出点位置及触发条件(盲X)
- 构造payload,尽量一次性成功
- 观察闭合、过滤和拦截情况
- 重新构造payload
- 如不成功,重复第3、4步
XSS防御思路?
- 白名单策略
- 使用白名单写死允许的标签和事件规则
- 黑名单策略(不可靠)
- html实体编码转义
"、'、/、<、>、script、事件函数名
- 采用成熟防XSS的框架(参考OWASP网站)
- 服务端添加http-only头下发到客户端(防止cookie窃取)
- 采用最新版本浏览器
- 盘点:2017年发生在上海的科技大新闻 与我们的生活如何密切相关
- 滚雷进口车获5亿元投资 品牌双拼给力十足
- Github 与 Bitbucket 的互助协作
- JavaScript 基础(七) 箭头函数 generator Date JSON
- 初体验 Ghost : yet another WordPress?
- 浅谈MySQL的事务隔离级别
- 国内环境下前端网页开发的几个“中国特色”代码
- 从源码的角度再看 React JS 中的 setState
- Sass 与Compass 在WordPress 主题开发中的运用
- Python爬虫Scrapy入门看这篇就够了
- Clef:为你的WordPress 站点添加两步验证
- JavaScript 基础(六) 数组方法 闭包
- 【译】WordPress 中的50个过滤器(4):第21-30个过滤器
- 【译】WordPress 中的50个过滤器(3):第11-20个过滤器
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CodeForces - 225C. Barcode(DP)
- android studio 3.0 service项目背景音乐实现
- 疯子的算法总结(六) 复杂排序算法 ① 归并排序 merge_sort()
- PostgreSQL扫描方法综述
- CodeForces - 224C. Bracket Sequence (栈模拟)简单做法
- XLOG段文件跳号现象分析
- codeforce 227E 矩阵快速幂求斐波那契+N个连续数求最大公约数+斐波那契数列的性质
- 疯子的算法总结(五) 矩阵乘法 (矩阵快速幂)
- codeforce 227D Naughty Stone Piles (贪心+递归+递推)
- POJ3614防晒霜 这个贪心有点东西(贪心+优先队列)
- 环形均分纸牌问题(中位数)
- POJ 1176 Party Lamps&& USACO 2.2 派对灯(搜索)
- P1522 牛的旅行 Cow Tours(floyd)
- P1468 派对灯 Party Lamps(BIG 模拟)
- 【JVM系统学习之路系列】 JVM 概述篇