XSS跨站脚本攻击

XSS跨站脚本攻击

1. 引入

炸诈骗短信-----利用的是人性的弱点构造的恶意链接
人性的弱点----贪婪
XSS跨站脚本攻击_第1张图片

恶意链接之后后会进行跳转,从而导致数据的丢失
XSS跨站脚本攻击_第2张图片

2. XSS注入漏洞的简介

1. 什么是XSS漏洞

英文全称:Cross Site Scripting
中文名称:跨站脚本攻击XSS注入漏洞
层叠样式表CSS(Cascading Style Sheets,),层叠样式表出现在XSS漏洞之前,为了避免混淆所以改名为XSS

2. 如何进行攻击呢

恶意攻击者向web前端插入恶意的前端代码(核心是javascript代码),当用户浏览该网页时,嵌入其中的恶意代码将会被执行,从而达到攻击的目的。

3. 前端代码

html——编写网站的内容及结构--------聚焦于数据的展示
CSS——美化网页----让网站更加的漂亮
javascript——增加网站的动态效果及安全性验证

javascript

增加网站的动态效果及安全性验证

1. 作用
1. 人与网站互动
2. 前端与后端数据交互
2. 特点
1. 脚本编写语言----解释类型的语言
2. 基于对象的语言----万物皆对象---定义变量都是初始化对象的过程
1. 什么是对象
给一个事物定义一个模板,通过给模板复制就能制造一个不一样的同类事物
3. 简单性
语言结构与C语言相同,面向人。----高级语言
4. 动态性----弱类型语言
不需要申明变量的类型的,类型由变量的值决定
5. 跨平台性
js的解析器在在浏览器,只要操作系统能够安装浏览器就可以解析JS代码
6. 安全性
js代码获取的数据是网络数据,但不能不具备与操作系统交互的功能
3. 与java的关系

js与JAVA没半毛钱关系

3. 原理----看数据流

由于用户不可控输入,攻击者可任意的输入前端代码,当前代码拼接成静态网页,然后在被攻击者的电脑上执行后,可导致数据的丢失。

1. 用户不可控输入------前端输入的数据被后端接受后没有进行严格的安全性处理就直接使用
2. web中数据输出的过程实际上就是将数据拼接成静态网站然后将数据发送到客户端的过程。
3. 如果输出的数据中含有恶意的js代码,从而造成风险。

4. 简单利用

payload----一种以JSON格式进行数据传输的一种方式。

http可能会传输payload,如果不限制其请求的方式(那么请求的方法就是OPTIONS)或者响应的状态码,其包含元数据,头部区域和数据。

如果数据是通过正常的put或者post方法发送的,那么payload就是一个http请求起始行紧接一个CRLF后面的那一部分。
payload和formData有什么不同

5. 危害—看作用点-----前端

1. 盗取被攻击者的cookie值,进行身份冒充

2. 网页篡改-------js中某些函数可以获取并且重新复制HTML的标签值

3. 删除页面

4. 流量劫持
	1. 增大流量
		1. 正常操作---引流----送钱、打广告、、
		2. 非常规------利用XSS漏洞自动请求流量较小的网站或在其他网站上添加二维码------违法的

5. 钓鱼网站

6. 配合CSRF攻击--------ajax、window.location

6. 分类

1. 反射型XSS---------数据会经过服务器端,不会到达数据库,输入一次攻击代码只攻击一次,非持久型XSS
		 攻击代码输入后在后端会直接输出到前端触发
2. 存储型XSS---------数据会经过服务器端,会到达数据库,输入一次攻击代码攻击多次,持久型XSS
	 	攻击代码会直接存放到数据数据库
3. DOM型XSS--------数据会经过服务器端,不会到达数据库,输入一次攻击代码只攻击一次,非持久型XSS
	 	 输入的恶意代码不会经过服务器,在前端被js代码直接读取放置到前端的标签中,是一种特殊的反射型XSS

7. 利用流程

  1. 找注入点
    找到数据输入的地方
  2. 判断回显位置—输入的数据在什么地方输出
    如果输入的数据能够在前端进行输出,则可以证明输入的前段恶意代码在没有安全性处理的情况下能够输出前端,从而造成风险。
  3. 构造基础的payload
  4. 进行提交payload
  5. 分析响应状况
1. 如果成功解析则XSS存在
2. 反之考虑绕过
  1. 确认漏洞
    如果响应达到了预期,则说明漏洞存在,反之不存在。

8. 难度

高危漏洞但漏洞库不一定接受此漏洞,存储型XSS肯定被接受。

  1. 反射型攻击难度较高
1. 如何发送含有payload的连接呢---社工------效率很低
2. 影响面较小
  1. 存储型XSS攻击难度较小
1. 攻击者将恶意代码写入数据库,只要访问该网站的用户必定中招。

9. 防御

  1. 过滤-----将关键的字符过滤掉
  2. 实体化编码-----将特殊字符转换成字符串

你可能感兴趣的:(网络安全,xss跨站脚本攻击)