Pikachu-XSS模块与3个案例演示
阅读原文时间:2023年07月08日阅读:1

一、概述

XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。

形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致"精心构造"的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。

因此在XSS漏洞的防范上,一般会采用"对输入进行过滤"和"输出进行转义"的方式进行处理:

输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;

输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

分类:1. 反射型XSS

2. 存储型XSS

3. DOM型XSS

**二、反射型XSS(get方式):
2.1 漏洞利用
**

第一步:前端设置,查看页面源代码把长度20设置长一点方便输入语句

**第二步:输入
**

get形式的XSS会生成相应的url是比较好利用的一种漏洞

**2.2反射型XSS(get)方式的案例演示:盗取用户cookie
**

本实验用的攻击服务器(收集cookie的后台)是我个人的阿里云ecs服务器(也可以另开一个虚拟机模拟攻击者)。模拟存在XSS漏洞的是我的主机(按模拟真实情况来说是相反的,但是因为服务器是linux,用win比较方便改文件,所以使用主机部署存在XSS的网站)。

**第一步:首先将pikachu的后台文件放在云上:注意修改配置文件连接数据库
**

下图就是攻击者(公网服务器端)登陆后台界面

**第二步:获得cookie的文件最后加一个重定向,直接返回到网站的初始界面,这样就在用户不留意的时候完成了盗取:
**

第三步:在存在XSS漏洞胡网页构造链接:

**注意把最大长度变一下:
**

我们可能会看到这样的网页,但是没关系,这是浏览器在防火墙(现在安全防护意识还是很高的尤其谷歌),可以关闭谷歌的防护或者用低等级的浏览器。但是最后这个链接是可以用的:

**第四步:假设用户被我骗了点进这个链接,会发现直接跳到了我重定向的网站。
**

用户可能处于懵逼:

第六步:我的后台实际上就接收到了用户的cookie信息:

然后就能用cookie做一些坏事达成攻击者的目的。

**三、反射型XSS(POST)
**

**3.1 漏洞利用
**

登陆之后,输入

我们看到post的XSS漏洞并不会在url中显示

**3.2反射XSS(POST)漏洞利用演示:
**

**思路:
**

我们需要自己搭一个恶意站点,然后在网站上放一个post表单将存放POST表单的链接发送给受害者,诱导受害者点击这个POST表单会自动向漏洞服务器提交一个POST请求,实现受害者帮我们提交POST请求的目的

**第一步:在恶意站点中修改服务器地址
**

上面是存在XSS漏洞的地址,下面是提交cookie的后台地址。

恶意页面的作用是:当用户访问这个页面时,会自动向漏洞服务器发送POST请求,然后重定向到漏洞服务器的index页面

**第二步:页面可以放到攻击者的服务器上:
**

这里我依然使用自己的服务器搭建恶意站点,下图是wdcp管理面板

**第三步:受害者访问
**

这样我们只要骗受害者访问101.200.56.135/post.html就能拿到他的cookie,并且返回重定向的页面,也就是网站的首页面(注意,这里受害者在XSS漏洞那必须是登陆状态才可以拿到cookie):

**第四步:点进去之后成功返回,然后查看后台:拿到了cookie数据
**

**四、存储型XSS
**

**4.1 漏洞利用
**

这一类XSS漏洞危害较大,会存储到数据库中,每次刷新都会执行;

**4.2利用存储型XSS漏洞制作钓鱼演示:
**

**第一步:把访问制作的basic认证界面语句插入后台
**

然后就会出现认证界面

**第二步:我们在认证界面的代码中添加自己的地址:
**

**第三步:假设这个受害者在没有防护意识的情况下输入用户名密码
**

**第四步:我们在后台查看 已经有相应的结果
**

**4.3利用存储型XSS漏洞进行键盘记录演示:
**

**第一步:将获得的键盘值发送到后台ip:
**

**第二步:然后设置允许被跨域访问(这里涉及跨域问题和同源策略)
**

**第三步:之后在存在存储型XSS的网站插入代码
**

插入后就访问了我们的后台获取键盘值的后台js文件

**第四步:当用户键入,然后可以在后台查看
**

**五、dom型XSS:
**

参考链接:https://www.w3school.com.cn/htmldom/index.asp

**漏洞利用:
**

dom是前端的操作,查看源码:

这里有段JS代码,它通过 getElementById 获取到了标签 Id 为 text的内容赋值给str, 然后又把 str 的内容通过字符串拼接的方式写到了 a 标签的 href 属性中,a标签会写到 Id 为 dom的 div 标签中

我们可以构造闭合的语句:a' onclick="alert('xss')">:

**六、Dom型XSS-x:
**

我们直接看源码:这次是直接在url中:

这种危害就会大很多,从url中获得有点和反射型xss类似:

构造闭合语句:a' onclick="alert('xss')">

**七、XSS盲打:
**

是属于xss漏洞的一种场景,和存储型xss类似。也可以作为一种尝试,因为很可能后台会过滤掉。

**漏洞利用:
**

输入:

然后在admin_login.php中登录后台发现已经存储国xss代码:

**八、XSS过滤:
**

几种XSS绕过的姿势:

1.直接f12修改前端的限制,例如长度。

2.大小写混合:'

这里的防范不适宜用实体编码的方式,就是上面那个函数,因为虽然可以解决XSS的问题,但是实体编码后的内容,在JS里面不会进行翻译,这样会导致前端的功能无法使用。

所以正确的防护应该在JS的输出点应该使用\对特殊字符进行转义。

以上:实验演示有三个

反射性XSS获取cookie

存储型xss制作钓鱼

存储性xss读取键盘

模拟攻击者:阿里云ecs个人服务器

模拟受害者:个人主机

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章