复现XSS漏洞及分析

关于XSS

含义

XSS是跨站脚本攻击,原理是攻击者向有XSS漏洞的网站中输入恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。

分类

分类:反射型XSS、存储型XSS、DOM型XSS.

1.反射型XSS

又称非持久型XSS。之所以称为反射型XSS,是因为这种攻击方式的注入代码是从目标服务器通过错误信息、搜索结果等等方式“反射”回来的:发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,故叫反射型XSS。 而称为非持久型XSS,则是因为这种攻击方式具有一次性,由于代码注入的是一个动态产生的页面而不是永久的页面,因此这种攻击方式只在点击链接的时候才产生作用。

攻击者通过电子邮件等方式给别人发送带有恶意脚本代码参数的 URL,当 URL 地址被打开时,注入脚本被传输到目标服务器上,然后服务器将注入脚本“反射”到受害者的浏览器上,特有的恶意代码参数被 HTML 解析、执行。

非持久型 XSS 漏洞攻击的四大特点:

  • ① 即时性。不经过服务器存储,直接通过 HTTP 的 GET 和 POST 请求就能完成一次攻击,拿到用户隐私数据;
  • ②攻击者需要诱骗点击;
  • ③反馈率低,所以较难发现和响应修复;
  • ④盗取用户敏感保密信息。

2.存储型XSS

也叫持久型XSS,主要将XSS代码提交存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。当目标用户访问该页面获取数据时,XSS代码会从服务器解析之后加载出来,返回到浏览器做正常的HTML和JS解析执行,XSS攻击就发生了。存储型 XSS 一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到客户端或者服务端的数据库中。

持久型 XSS 的三大特点:

  • ①持久性,植入在数据库中;
  • ②危害面广,甚至可以让用户机器变成 DDoS 攻击的肉鸡;
  • ③ 盗取用户敏感私密信息。

3.DOM-based 型XSS

基于 DOM 的 XSS 攻击是指通过恶意脚本修改页面的 DOM 结构,是纯粹发生在客户端的攻击。DOM 型 XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞。

危害:存储型 > 反射型 > DOM型

危害

XSS跨站脚本攻击危害

危害一

攻击者利用网站漏洞把恶意的脚本代码注入到网页之中,当其他用户浏览这些网页时,就会执行其中的恶意代码。对受害用户可能采取Cookie资料窃取、会话劫持、钓鱼欺骗等各种攻击。

  • 网络钓鱼,包括盗取各类用户账号

  • 窃取用户cookies资料,从而获取用户隐私信息

  • 网页挂马,进行恶意操作

  • 获取客户端信息,例如用户的浏览历史、真实IP、开放端口等

危害二

不法分子利用XSS跨站脚本攻击漏洞与其他漏洞相结合,对网站做进一步的破坏。甚至可以传播跨站脚本蠕虫等。

  • 控制受害者机器向其他网站发起攻击

  • 结合其他漏洞,如CSRF漏洞,实施进一步作恶

  • 提升用户权限,包括进一步渗透网站

  • 传播跨站脚本蠕虫等

防护

不要关闭浏览器默认开启XSS保护

HTML编码与HTML Attribute编码

JavaScript编码

开启CSP网页安全政策

将不可信数据作为CSS

将不可信数据作为URL参数值时需要对参数进行URL编码

XSS-Labs靶场搭建

1、下载安装phpstudy

然后启动

在这里插入图片描述

2、下载xss-labs靶场源码

【下载地址:https://github.com/do0dl3/xss-labs】

3、解压缩并放入如下文件夹中

在这里插入图片描述

4、在phpstudy中创建新的网站

在这里插入图片描述

5、打开浏览器,在地址栏输入xsslabs:8080,即可访问靶场

在这里插入图片描述

xsslabs通过挑战

第一关:

在这里插入图片描述

在url 发现注入点

在这里插入图片描述

第二关:

在这里插入图片描述

尝试使用上一关的恶意语句操作进行弹窗

在这里插入图片描述

但是报错了

查看网页源码

在这里插入图片描述

可以看到<h2> </h2> 标签中的恶意代码被编码了

其中< 和 > 都被编码成了html实体

要想浏览器执行这里的弹窗代码,需要将属性的引号和标签先闭合

在我们想注入的<script>alert(1)</script>之前,加上">即可

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值