快速找出网站中可能存在的XSS漏洞实践(一)

本文介绍了XSS漏洞的三种类型:反射型、存储型和DOM型,并以permeate生态测试系统为例,详述了反射型和存储型XSS的挖掘过程,包括思路分析、漏洞检验和结果分析。通过实例展示了如何发现和绕过后端及前端的防护措施,强调了前端开发者在XSS防御中的重要性。

一、背景

笔者最近在慕课录制了一套XSS跨站漏洞 加强Web安全视频教程,课程当中有讲到XSS的挖掘方式,所以在录制课程之前需要做大量实践案例,最近视频已经录制完成,准备将这些XSS漏洞的挖掘过程记录下来,方便自己也方便他人。

在本篇文章当中会一permeate生态测试系统为例,笔者此前写过一篇文章当中笔者已经讲解如何安装permeate渗透测试系统,因此这里不再重复讲解如何安装此渗透测试系统,参考文档:利用PHP扩展Taint找出网站的潜在安全漏洞实践

二、内容概要

  1. XSS漏洞原理
  2. 反射型挖掘
  3. 存储型挖掘

三、漏洞简介

在实践漏洞之前,笔者准备先简单介绍一下XSS漏洞,不过XSS的相关概念介绍并不是本文的重点,因此不会过多细讲;XSS的漏洞类型主要分为三类:反射型、存储型、DOM型

3.1 漏洞成因

XSS的漏洞主要成因是后端接收参数时未经过滤,导致参数改变了HTML的结构,如下图所示
image

在图中可以看到攻击者的参数被原样放到了HTML代码当中,导致原本的结构被改变,当这份代码被浏览器执行之后,将执行alert事件。

3.2 反射型

反射型XSS在笔者闹钟的定义是,如果URL地址当中的恶意参数会直接被输出到页面中,导致攻击代码被触发,便称之为反射型XSS,如下图所示
image

在图中可以看到,此处原本是输入一个名字,单实际传递了一个script标签,此标签也被原样放到了HTML结构当中,结果script标签代码中的代码被触发

3.3 存储型

存储型XSS,顾名思义便是恶意参数被存储起来了,通常存储在后端服务器当中,所以存储型XSS在URL地址当中不会包含恶意参数,对于受害者来说,很难发现已经被攻击了,如下图存储型XSS被触发

image

在图中笔者并没有在URL地址当中看到script代码,但是攻击代码依然被触发,说明攻击代码来自于服务器,而这个攻击代码确实是由攻击者传递到服务器当中去的。

一般情况下,当攻击者将攻击代码通过表单传递到服务器当中去,会得到一个新页面的地址,这个地址中URL并没有明显异常,比如如下URL地址

http://permeate.songboy.net/article/1

但当存在存储型XSS时,受害者打开此URL,攻击代码将会被触发,这种情况下笔者便称之为存储型XSS漏洞。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值