摘要:
校園網Web認證介面點選登入時會傳送一個 Post 請求,密碼使用時間戳作為金鑰進行 RC4 加密(後經驗證,時間戳可為任意值),伺服器根據金鑰解密並驗證賬戶與密碼,驗證透過便可以正常上網。因而可以採用curl等工具模擬 Post 請求,完成登入。實現路由器、伺服器、手機、平板等快捷聯網。
1、抓包過程:
-
使用Chrome等瀏覽器開啟認證頁面:
-
按 F12 啟動開發者選項,在 網路 介面勾選 保留日誌 ,點選 登入 進行抓包:
-
開啟登入 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 檔案一鍵執行):
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 |
其中, pwd 和 auth_tag 每次登入都會變化。
不難看出, auth_tag 實際上是個13位時間戳,實為每次登入的時間,如圖:
而 pwd 則是使用時間戳 auth_tag 作為金鑰進行 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)