讓一隻大貓咪在打字機上隨機地按鍵,當按鍵時間達到無窮時,幾乎必然能夠打出任何給定的文字,比如你看到的這個網誌。

華爲 OptiXstar P815E-X ONT 簡單上手

登入和管理

  • Web UI 的預設地址:192.168.100.1,似乎是運營商版公版。
    • Telnet / SSH 都預設開啓,無需另外設定。

預設密碼有兩組,分別是:

  • telecomadmin / admintelecom
  • root / admin

其中前者只能登入 Web UI 而後者可以登入 Web UI 和 Telnet / SSH。

Shell 使用

預設有 Shell 但是支援的命令有很多限制,用處非常有限。

可能是預設的 Terminal Type 有問題,Backspace 實際上是 Delete 的功能,如果需要向前刪除需要使用 Control - H
? 可以查看可用的命令列表;也可以輸入一半後按 ? 查看可能的補全。也可以使用 Tab 但效果一般。

查看目前的 SN:

SU_WAP>display sn

可以透過命令行Command-line修改 SN:

SU_WAP>set sn?
USAGE:
     set sn snid {value}
OPTIONS:
     snid: 20 digital or upper alpha chars for DSL Device, 16 hex digits or 12 characters end with 8 hex characters for others.

修改 Password 認證 ONT

Web UI 上可以在高級設置 - 系統管理 - ONT 認證中設定 LOID 認證、密碼認證,但選擇密碼認證會無法保存,一直提示:

密码的长度需要在0到10位之间

不確定這是否是目前版本韌體的一個 bug。

由於 LOID 認證的表格沒有問題,所以先用 LOID 認證的方式提交Commit
透過網頁開發者工具,可以看到校驗邏輯在瀏覽器中,通過校驗後構造出一個 POST 請求並發送。分析整個校驗和構造邏輯,可以透過修改請求的方式去修改 ONT 認證方式。

首先在 Console 中用自帶的函式把密碼和 SN 轉換到 16 進位:

var password = "a123456782";
var sn       = "SENU1234ABCD";
ChangeAsciitoHex(password); // PonHexPassword
conv12to16HexSn(sn);        // PonSN

在 ONT 認證頁面再提交一次,並把對應的請求複製爲 fetch 命令,主要是爲了獲取頁面的 Token。
然後修改其中的 body 再提交:

fetch("http://192.168.100.1/html/amp/ontauth/set.cgi?x=InternetGatewayDevice.DeviceInfo&y=InternetGatewayDevice.X_HW_XgponDeviceInfo&RequestFile=html/amp/ontauth/password.asp", {
  "headers": {
    "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
    "accept-language": "en-US,en;q=0.9",
    "cache-control": "max-age=0",
    "content-type": "application/x-www-form-urlencoded",
    "upgrade-insecure-requests": "1"
  },
  "referrer": "http://192.168.100.1/html/amp/ontauth/set.cgi?x=InternetGatewayDevice.DeviceInfo&y=InternetGatewayDevice.X_HW_XgponDeviceInfo&RequestFile=html/amp/ontauth/password.asp",
  "body": "x.X_HW_PonHexPassword=[PonHexPassword]&x.X_HW_PonSN=[PonSN]&x.X_HW_ForceSet=1&y.RegistrationID=[password]&y.MutualAuthSwitch=0&y.PreSharedKey=&x.X_HW_Token=[HWToken]",
  "method": "POST",
  "mode": "cors",
  "credentials": "include"
});

在 console 中執行,就可以修改了。並且這之後直接在 Web UI 中選擇密碼認證也可以修改提交了。

添加新评论