坐標lylzad ,今天剛從聯通公司辦理了千兆光貓更換,200M的寬帶用百兆光貓怎么也說不過去啊,於是今日便得到了這台新的光貓。

剛接上路由器,令我頭大的事情就發生了,這個新的光貓是光貓路由器二合一,自動給我完成了撥號,這肯定不能忍啊,我的ddns啊 !!!
於是走上了光貓管理員密碼破解之路。
可以看到光貓的背面是提供了一個 普通用戶的登錄賬號和密碼的

在朋友的幫助下,看了很多帖子,整體來說有兩種方法來破解:
1.通過telnet:
可以看這個貼子:山東聯通 kd-yun-811e 光貓超級密碼獲取,不過我沒有成功。而后又看了這個工具:天邑光貓配置工具貌似這個工具是適用於電信的。
2.通過修改網頁js:
通過修改js繞過表單驗證實現密碼修改。受到一篇帖子的啟發,他遇見的情況是,網頁限制沒有提供CUAdmin這個用戶名登陸的入口,然而通過修改js的表單值,實現了使用用戶名和密碼都是CUAdmin的方式實現了管理賬戶登錄。
而我也試圖使用這種方法發現我的情況並不相同,如圖,有兩個入口,我的版本給我了CUAdmin的這個登錄入口,並且我使用CUAdmin登錄並沒有成功。

驚喜便來了,當我使用默認的user賬戶登錄之后發現了這么一個修改user用戶密碼的頁面看了一會這個修改密碼的提交代碼后發現,改修改代碼就是簡單的一個post表單並且僅僅使用了幾行js來驗證表單數據。


function submit_pwd()
{
var docForm = document.getElementById('form_telacccfg');
with(docForm)
{
if ( window.parent.authLevel == 1)
{
if ( UserOldPassword.value != userPassword)
{
alert("舊密碼輸入錯誤!");
return;
}
}
if (UserPassword.value != AdminPassword.value)
{
alert("密碼兩次輸入不一致!");
return;
}
var str = new String();
str = UserPassword.value;
if (str.length > 64)
{
alert('密碼長度不能超過64個字符!');
return;
}
if (str.indexOf(' ') != -1)
{
alert('密碼不能包含空格');
return;
}
if ( parent.authLevel == USER && str.length >= 16)
{
alert('用戶密碼長度不能超過15個字符!');
return;
}
if ( window.parent.authLevel == 1) //user
{
widget.submitElemIndep('userpasswd.htm', 'set', 'InternetGatewayDevice.X_CU_Function.Web.UserPassword', UserPassword);
}
else{
if( $("Username_text").options[0].selected == true) //admin
{
//widget.submitElemIndep('userpasswd.htm', 'set', 'InternetGatewayDevice.X_BROADCOM_COM_LoginCfg.AdminPassword', UserPassword);
//對‘#’特殊字符進行轉義 add by:wh 2017.9.28
// if(str.indexOf('#')>-1){
// str=str.split("#");
// var passwordStr=str[0]+'%23'+str[1];
// loc = "userpasswd.htm?a=set&x=InternetGatewayDevice.X_CU_Function.Web.AdminPassword&AdminPassword=" + passwordStr;
// }
// else{
// loc = "userpasswd.htm?a=set&x=InternetGatewayDevice.X_CU_Function.Web.AdminPassword&AdminPassword=" + str;
// }
// var code = 'location="' + loc + '"';
// eval(code);
widget.submitElemIndep('userpasswd.htm', 'set', 'InternetGatewayDevice.X_CU_Function.Web.AdminPassword', AdminPassword);
}
else //user
{
widget.submitElemIndep('userpasswd.htm', 'set', 'InternetGatewayDevice.X_CU_Function.Web.UserPassword', UserPassword);
}
}
}
return true;
}
代碼修改為:
function submit_pwd()
{
var docForm = document.getElementById('form_telacccfg');
with(docForm)
{
if( $("Username_text").options[0].selected == true) //admin
{
widget.submitElemIndep('userpasswd.htm', 'set', 'InternetGatewayDevice.X_CU_Function.Web.AdminPassword', AdminPassword);
}
else //user
{
widget.submitElemIndep('userpasswd.htm', 'set', 'InternetGatewayDevice.X_CU_Function.Web.UserPassword', UserPassword);
}
}
return true;
}
具體操作不再上圖,學過一點點前端js的朋友相信都能做得到。
所以我實際做的事情就是,刪除js中的所有的驗證代碼,以及修改選擇器中的值為CUAdmin
如圖

直接輸入想要設置的密碼然后點擊保存就可以了。
