GD-WLAN登入頁面抓包及curl模擬方法

送你到了瓦房店西發表於2024-10-21

摘要:

校園網Web認證介面點選登入時會傳送一個 Post 請求,密碼使用時間戳作為金鑰進行 RC4 加密(後經驗證,時間戳可為任意值),伺服器根據金鑰解密並驗證賬戶與密碼,驗證透過便可以正常上網。因而可以採用curl等工具模擬 Post 請求,完成登入。實現路由器、伺服器、手機、平板等快捷聯網。


1、抓包過程:

  1. 使用Chrome等瀏覽器開啟認證頁面:
    認證頁面

  2. F12 啟動開發者選項,在 網路 介面勾選 保留日誌 ,點選 登入 進行抓包:
    抓包

  3. 開啟登入 Post 請求的資料包,記錄表單資料:
    檢視源
    獲取到的表單資料:

    opr=pwdLogin&userName=190402119&pwd=8554a893831318fc&auth_tag=1709788455684&rememberPwd=1
    

2、模擬 Post 請求:

Windows:
使用CMD執行以下命令(引號部分為獲取到的表單資料):

curl -d "opr=pwdLogin&userName=190402116&pwd=d520e5601c21&auth_tag=1697423769777&rememberPwd=1" https://10.91.200.211:444/ac_portal/login.php -k

正確登入後的反饋如下(可以儲存為 .bat 檔案一鍵執行):
Windows

Linux(OpenWRT、Ubuntu、DSM 等):
使用終端執行,其餘一致,略。

iOS:
使用捷徑功能,向 https://v.sut.edu.cn:444/ac_portal/login.php 傳送 Post 請求並獲取內容,若包含 success 則提示 登陸成功
捷徑


3、加密演算法分析:

對錶單內容整理如下:

欄位
opr(操作) pwdLogin
userName(使用者名稱) 190402116
pwd(密碼密文) d520e5601c21
auth_tag(使用者認證標籤) 1697423769777
remamberPwd(是否記住密碼) 1

其中, pwdauth_tag 每次登入都會變化。

不難看出, auth_tag 實際上是個13位時間戳,實為每次登入的時間,如圖:
時間戳

pwd 則是使用時間戳 auth_tag 作為金鑰進行 RC4 加密後的結果:
RC4加密
嘗試使用任意時間戳作為金鑰,對密碼進行加密,對應登入命令如下:

curl -d "opr=pwdLogin&userName=190402119&pwd=6468854cb9d8e0fb&auth_tag=6&rememberPwd=1" https://10.91.200.211:444/ac_portal/login.php -k

經測試,可以成功登入:
任意時間戳測試


4、RC4線上加解密:

線上RC4加密解密 (lddgo.net)

相關文章