跨站脚本漏洞(以Pikachu为例)

文章目录


前言

概述

XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的地位。

XSS是一种发生在Web前端的漏洞没所以其危害对象也主要是前端用户。

XSS漏洞可以用来进行钓鱼攻击、前端js挖矿、用户cookie获取。甚至可以集合浏览器自身的漏洞对用户主机进行远程控制等。

常见类型

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

反射型:交互的数据一般不会被存放在数据库里面,一次性,所见即所得,一般出现在查询类页面等。
存储型:交互的数据会被存放在数据库里面,永久性存储,一般出现在留言板、注册等页面。
DOM型:不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性也属于反射型。

形成原因

形成XSS漏洞的主要原因是程序对输入输出的控制不够严格,导致“精心构造”的脚本输入后,在输到前端时被浏览器当做有效代码解析执行从而产生危害。


一、反射型XSS

GET方式的XSS漏洞更加容易被利用,一般利用的方式是将带有跨站脚本的URL伪装后发送给目标
而POST由于是以表单方式提交,无法直接使用URL进行攻击,如何利用?

反射型XSS(get)

跨站脚本漏洞(以Pikachu为例)
输入‘“<>6666

跨站脚本漏洞(以Pikachu为例)
查看页面源代码可以发现我们输入的内容直接出现在了源代码当中:

跨站脚本漏洞(以Pikachu为例)

那么,就可以尝试输入一个js脚本,比如一个简单的弹窗 :

<script>alert('xss')</script>

由于输入框长度的限制,首先需要将长度改大一些,将20改为200

跨站脚本漏洞(以Pikachu为例)
跨站脚本漏洞(以Pikachu为例)

提交后出现:

跨站脚本漏洞(以Pikachu为例)

反射型XSS(post)



二、存储型XSS

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

跨站脚本漏洞(以Pikachu为例)
留言,并查看源代码:

跨站脚本漏洞(以Pikachu为例)
跨站脚本漏洞(以Pikachu为例)
同样是显示在一个p标签中,所以可以在留言框中输入一个弹窗

<script>alert('xss')</script>

提交后出现弹窗:

跨站脚本漏洞(以Pikachu为例)
与反射型XSS不同的是,每次刷新弹窗都会出现,因为已经存储在了后台。

三、DOM型XSS

可以把DOM理解为一个一个访问HTML的标准编程接口

DOM型xss

跨站脚本漏洞(以Pikachu为例)
查看源代码:
跨站脚本漏洞(以Pikachu为例)
构造闭合:

从<a href='"+str+"'>what do you see?</a>入手,
构造闭合为:<a href='#' onclick="alert(111)">'>what do you see?</a>
也就是,把“+str+”改为#' onclick="alert(111)">

将改后的内容输入到查询框,再次点击clickme和what do you see:
跨站脚本漏洞(以Pikachu为例)

DOM型xss-x

跨站脚本漏洞(以Pikachu为例)

查看源码,dom的输入是从浏览器获取,操作同上。

跨站脚本漏洞(以Pikachu为例)

上一篇:Pikachu靶场:暴力破解之token防爆破?


下一篇:pikachu漏洞练习平台(SQL—Inject)