IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> XSS 漏洞 -> 正文阅读

[网络协议]XSS 漏洞

(一)简介

????????XSS(Cross Site Scripting)即跨站脚本攻击。攻击者在Web页面或URL里插入恶意的JavaScript脚本,而服务器与客户端信任用户的输入,没有对内容进行限制和过滤。当用户浏览网站时,嵌入的恶意代码会被浏览器解析执行。

漏洞危害:

1. 窃取帐号,入侵者可以冒充用户身份登录后台。使得攻击者具有恶意操纵数据的能力,包括读取、更改、添加、删除;

2. 网站挂马。先将恶意攻击代码嵌入到Web应用程序之中。当用户浏览该页面时,用户的计算机会被植入木马;

3. 广告植入和钓鱼。攻击者可植入广告,或发送钓鱼信息,严重影响到用户的正常使用和体验;

(二)漏洞类型

1. 反射型

<非持久化>

????????前端发出请求时,XSS代码作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器被解析执行;

常见位置:URL(如:日期查询参数)、搜索框、查询框

2. 存储型

<持久化>

????????提交的代码会存储在服务器端的数据库、内存、文件系统;

常见位置:论坛评论、个人信息修改、富文本编辑器

3. DOM型

????????基于文档对象模型(Document Object Model)的一种漏洞。它的攻击代码并不需要服务器解析响应,其依赖浏览器端的DOM解析。客户端上的JavaScript脚本可以访问浏览器的DOM并修改页面的内容,不依赖服务器的数据,直接从浏览器端获取数据并执行;

????????在客户端直接输出DOM内容的时候极易触发DOM型XSS漏洞,

如:document.getElementByld(“x’).innerHTML、document.write)

(三)XSS 检测

漏洞位置判断

1. 浏览器存在交互 -> 用户可以自定义输入内容;

2.?输入能返回到前端的页面上被浏览器当成脚本语言解析执行;

3. 使用审查元素,输入的特殊字符未被实体化标签 -> &gt &lt;

自动化工具 XSS - Strike

XSStrike is a Cross Site Scripting detection suite equipped with four hand written parsers, an intelligent payload generator, a powerful fuzzing engine and an incredibly fast crawler.

参考:?网络安全-XSStrike中文手册(自学笔记)_lady_killer9的博客-CSDN博客_xsstrike

下载地址:GitHub - Ra1dhunter/xss-strike

XSS 利用平台

自行搭建:github : https://github.com/trysec/BlueLotus_XSSReceiver

公开平台:1.?登录 - Wordpress博客学习XSS平台 ?2.?NGXPT ?3.??XSS Hunter

常见PAYLOAD (注意闭合)

事件触发: '"><img src=0 οnerrοr=alert(document.cookie)>;//

内部标签: '"><script>alert(document.cookie)</script>;//

伪协议:?'"><a href=javascript:alert(document.cookie)>xss</a>;//

XSS绕过

由于网站可能存在过滤机制,会对XSS攻击的敏感函数进行过滤:

1. 大小写转换;

2. 引号的使用;

3. 左斜线代替空格;

4. 对标签内的属性进行转码;

5.双写绕过;

(四)安全开发与修复

网页安全政策 CSP(Content Security Policy

????????CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。开启CSP策略的方法,一种是通过 HTTP 头信息的Content-Security-Policy的字段;另一种是通过网页的<meta>标签。

详情见这篇文章:?Content Security Policy 入门教程 - 阮一峰的网络日志

实体化标签

????????验证所有输入数据,有效检测攻击;对所有输出数据进行适当的编码,以防止任何已成功注入的脚本在浏览器端运行。具体如下 :

1. 输入验证:某个数据被接受为可被显示或存储之前,使用标准输入验证机制,验证所有输入数据的长度、类型、语法以及业务规则。

2. 输出编码:数据输出前,确保用户提交的数据已被正确进行entity编码,建议对所有字符进行编码而不仅局限于某个子集。

3. 明确指定输出的编码方式:不要允许攻击者为你的用户选择编码方式(如ISO 8859-1或 UTF 8)。

4. 注意黑名单验证方式的局限性:仅仅查找或替换一些字符(如"<" ">"或类似"script"的关键字),很容易被XSS变种攻击绕过验证机制。

5. 警惕规范化错误:验证输入之前,必须进行解码及规范化以符合应用程序当前的内部表示方法。请确定应用程序对同一输入不做两次解码。对客户端提交的数据进行过滤,一般建议过滤掉双引号(”)、尖括号(<、>)等特殊字符,或者对客户端提交的数据中包含的特殊字符进行实体转换,比如将双引号(”)转换成其实体形式",<对应的实体形式是<,<对应的实体形式是>以下为需过滤的常见字符:

[1] |(竖线符号)

[2] & (& 符号)

[3];(分号)

[4] $(美元符号)

[5] %(百分比符号)

[6] @(at 符号)

[7] '(单引号)

[8] "(引号)

[9] \'(反斜杠转义单引号)

[10] \"(反斜杠转义引号)

[11] <>(尖括号)

[12] ()(括号)

[13] +(加号)

[14] CR(回车符,ASCII 0x0d)

[15] LF(换行,ASCII 0x0a)

[16] ,(逗号)

[17] \(反斜杠)

2、在请求返回页面关键字符进行转义;

[1] “(双引号):"

[2] ’ (单引号):&apos

[3] &(&符号):&

[4] <(左尖括号):<

[5] >(右尖括号):>

在不影响应用的前提下,建议将cookie标记为httpOnly,同时禁用TRACE方法。

Java实现XSS防御

Java实现XSS防御 - 夏威夷8080 - 博客园

PHP实现XSS防御

PHP直接输出html的,可以采用以下的方法进行过滤:

1. htmlspecialchars函数;

2. htmlentities函数;

3. HTMLPurifier.auto.php插件;

4. RemoveXss函数;

PHP输出到JS代码中,或者开发Json API的,则需要前端在JS中进行过滤

1. 尽量使用innerText(IE)和textContent(Firefox),也就是jQuery的text()来输出文本内容;

2. 必须要用innerHTML等等函数,则需要做类似php的htmlspecialchars的过滤;

富文本编辑器

不含有富文本编辑器(自定义样式)且没有使用DOM的站点

输入:过滤双引号,单引号,左右尖括号,分号;

输出:对上述字符进行HTML实体编码即可;

不含有富文本编辑器(自定义样式)但使用DOM的站点

输入:在DOM中转义双引号,单引号,左右尖括号,分号;

输出:在输出之前进行编码,如:innerHTML=encodeHTML(output);

含有富文本编辑器(自定义样式)但没有使用DOM的站点

输入:过滤双引号,单引号,分号;

输出:对上述字符进行HTML实体编码即可;

(五)深度收藏指南

(以上图片资源来自某安全公众号,收藏过久忘了是哪个,如有侵权请告知)

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:56:47  更:2022-05-05 12:00:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:35:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码