pikachu ------xss漏洞(几中类型简单的介绍)

XSS(跨站脚本)概述
** Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:**
** 1.反射性XSS;**
** 2.存储型XSS;**
** 3.DOM型XSS;**

** XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。**
** XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。**
** 形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。**
** 因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:**
** 输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;**
** 输出转义:根据输出点的位置对输出到前端的内容进行适当转义;**

** 你可以通过“Cross-Site Scripting”对应的测试栏目,来进一步的了解该漏洞。 **

反射型xss(get)
产生原因:传递的参数直接存在页面代码中,而且没有过滤
流程
1 打开pikachu,找到Cross-Site Scripting-反射型xss(get)

2 点击F12查看页面原码这里有长度限制,我们应该将他修改大一点

3 在对话框里面输入>&6666等特殊字符,点击提交,检查是否有过滤。

4 打开页面原码看见没有被处理

5 修改长度限制在对话框输入<script>alert('xss')</script>会弹出窗口


存储型XSS
1 存储型XSS漏洞跟反射型形成的原因一样,不同的是存储型XSS下攻击者可以将脚本注入到后台存储起来,构成更加持久的危害,因此存储型XSS也称“永久型”XSS

2 我们输入111 留言列表中出现,我们刷新,发现留言还在上面

3 判断有没有xss漏洞,输入带有特殊符号的语句
'"<>?%66666

我们右键查看页面源码

4 可以看到没有做任何的过滤处理
接下来我们构造js语句,输出一个简单的弹窗
输入 <script>alert('xss')</script>
输出弹窗,刷新之后依旧出现,因为这条留言已经被存储在数据库里了,所以每次访问都会出现,所以说危害是很大的

DOM型XSS
我们可以把DOM理解为一个一个访问HTML的标准的编程接口。DOM是一个前端的接口,并没有和后端做任何的交互。

接下来进行演示
1 首先我们在输入框中随便输入一串字符。可以看到弹出一个what do you see?的提示。

2 我们查看一下源码,Ctrl+F搜索一下what定位到源码的相关位置,不难发现这里有一段js的代码,我们可以简单分析一下这段代码。以前我们接触到的反射型和存储型都是通过后台输出,我们可以从源代码中看到输入点就是源码中的input标签,DOM型的XSS漏洞通过了解我们可以知道是纯前端的漏洞,分析源码可移知道我们输入后得到一个字符串,然后通过字符串拼接的方式拼接到a href中。输出点我们可以从标签构造一个闭包函数。

3 构造一个闭包函数输入到文本框中去。我们实际上是使前面的a标签进行闭合操作,然后在完整的a标签中加入了一个警告框。其实这种DOM注入没有什么太大的用处,因为既没有发送到后台进行操作,也没有输入到URL中去

4 我们可以看一下后面的DOM-x型。我们将前面的文本框中构造的闭合a标签的代码重新输入到下面的DOM型中去。(#'onclick="alert(111)")可以看到也正常弹出了警告框,我们查看一下网络源码发现这个DOM型是获取了浏览器URL中的参数,所以这就可以与我们的URL参数相关联构造出一个恶意的URL与反射型XSS就有一些相似了。

原文地址:https://www.cnblogs.com/renletao/p/13159250.html