利用XSS进行网页钓鱼

【XSS漏洞】利用XSS进行网页钓鱼

Hello 各位小伙伴周末晚上好
在这里插入图片描述

这里是你们微胖的小编Monster。

话说小编的老妈今天给小编打电话,叮嘱我平时吃饭少吃一点…
在这里插入图片描述

说昨天看我朋友圈发的照片,已经从以前的瓜子脸,变成国字脸了…
在这里插入图片描述
Whatever,让我们一起来看看今天的内容吧


一、实验概述

实验拓扑:
在这里插入图片描述

利用XSS漏洞,我们可以在网页中插入恶意js代码,通过js代码,我们可以干很多事情,例如伪造一个登陆页面。

当用户访问该网页时,就会自动弹出登陆页面,如果用户信以为真,输入了用户名与密码,密码就会传输到攻击者的服务器中,完成账号窃取。


二、编写登陆窗口代码

首先我们在攻击者服务器(192.168.211.1)编写一段弹窗代码,如下:
在这里插入图片描述
本段代码使用的是 PHP 的 HTTP 认证机制,说明如下。

首先,利用 header() 函数,我们可以向客户端浏览器发送 Authentication Required 信息,使其弹出一个用户名/密码输入窗口。

当用户输入用户名和密码后,包含有 URL 的 PHP 脚本将会和预定义变量 PHP_AUTH_USER、PHP_AUTH_PW 和 AUTH_TYPE 一起被调用,这三个变量分别被设定为用户名,密码和认证类型。

这三个预定义变量会被保存在 $_SERVER 数组中,我们再通过Get方法,将用户名、密码传递给record.php页面,等待下一步处理。

尝试访问一下这个页面,弹出登录框:
在这里插入图片描述

输入账号、密码123/123,通过GET方式发送给record.php:
在这里插入图片描述

这样,我们的登陆窗口页面就完成了,接下来编写记录页面。


三、用户信息记录

伪造的登陆界面,会把用户名、密码信息发送给record.php页面。

通过该页面,我们将用户名、密码保存到攻击者服务器本地,代码如下:
在这里插入图片描述
代码说明:

通过$_GET接收传过来的username和password的值

通过getenv方法,可以获取用户的ip地址和信息来源

通过date函数,记录下获取到信息的时间

通过fopen函数,通过a(追加)的方式,打开user.txt文件

通过fwrite的方式,将我们获取到的信息记录到user.txt文件中

最后,fclose函数关闭文件。


再访问一次登陆伪造页面,并输入用户名、密码123/123:

在这里插入图片描述
攻击者本地生成user.txt,成功记录账号、密码信息:
在这里插入图片描述


四、插入恶意js脚本

Web页面以DVWA平台 存储型XSS为例,我们来插入一个恶意JS代码。

代码构造如下:
在这里插入图片描述

通过插入iframe标签,让用户访问漏洞页面时,自动访问攻击者服务器上的钓鱼页面fish.php,出现登陆弹窗。

选择low安全等级,打开dvwa XSS(stored)页面 :
在这里插入图片描述

在Name栏、Message栏均存在存储型XSS,在Message中输入上面的恶意代码,并提交,会发现有输入长度限制:
在这里插入图片描述
不过这里是前端长度限制,我们直接修改当前网页代码即可,将maxlength改大:
在这里插入图片描述
再次输入,可顺利输入,点击提交即可:
在这里插入图片描述

当前页面马上出现弹窗:
在这里插入图片描述

现在我们使用靶机来模拟一次攻击行为,使用用户主机访问low安全等级的dvwa XSS(stored)页面,因为impossible等级不存在XSS漏洞,

立刻出现弹窗:

[外链图片转存失败(img-fSw9rkMZ-1563754984873)(C:\Users\Monster\AppData\Roaming\Typora\typora-user-images\1563719688890.png)]

使用用户名、密码,点击确认,页面恢复正常:
在这里插入图片描述

查看攻击者服务器user.txt文件:
在这里插入图片描述

同时,输入用户名、密码后,当前页面已存在PHP_AUTH_USER、PHP_AUTH_PW 变量,因此再次访问该页面,不会再出现弹窗,避免露馅:
在这里插入图片描述

利用XSS漏洞,我们甚至能跳转到一个和真实网站登陆界面一模一样的网页,更具有欺骗性。


好啦,以上就是今天的全部内容了~

如果有问题,或者是有想听的专题,也欢迎到我的微信公众号留言哦~
在这里插入图片描述
Peace!
在这里插入图片描述

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值