文章目录
方法一 获取配置文件
参考陕西广电光猫获取超管密码 -sjxin1997
登录user账号后访问
http://192.168.1.1/romfile.cfg
并下载
romfile.cfg
文件,在文件中搜索useradmin。
方法二 获取配置文件(法一失效的情况)
2.1 相关参数
- 网关名称:HGU B1型家庭网关
- 型号:GL3100B1
- 固件版本:V3.0.16353
2.2 具体操作
登录user账号后访问
http://192.168.1.1/boaform/formSaveConfig
,会出现如下提示:
此时点击
储存
按钮即可保存配置文件,同法一在文件中查找useradmin。
方法三 暴力破解(不推荐,需要python运行环境)
3.1 前言
受到陕西广电 HGU B2 光猫获取超级密码 改桥接模式 提升网速的skip ban方法的启发,编写了一个python程序用来解决HGU B1型家庭网关无法访问
http://192.168.1.1/romfile.cfg
但仍希望获取超级管理员密码的暴力破解python脚本。
3.2 相关参数
- 网关名称:HGU B1型家庭网关
- 型号:GL3100B1
- 固件版本:V3.0.16353
3.3 代码核心思想
问题一:该网关加入了一个密码防暴力破解机制,即使用userPwdErrCount来记录密码错误的次数,当该值大于3时,需等待一分钟才能继续尝试密码。具体判断JavaScript代码如下图所示:
解决方法:参照陕西广电 HGU B2 光猫获取超级密码 改桥接模式 提升网速,每当密码错误次数为2时,输入一次普通用户的正确密码来重置。
if(i%2==1):# 防止密码错误次数到达上限
login_data ={"username":"user","psd":"改为你自己的密码","login_in":"%B5%C7%C2%BC"}
session.post(login_url,login_data,allow_redirects=False)
res = session.post(logout_url,allow_redirects=False)
问题二:如何判断登录成功?
解决方法:网关判断账号密码是否正确的URL为
http://192.168.1.1/boaform/admin/formLogin
,使用POST方法传输数据,判断后,会响应一个302重定向状态码,如果重定向到
/admin/login.asp
,则说明登录失败,如果重定向到
/
,则说明登录成功。
3.4 根据上述思想,编写python代码如下:
代码所需python库:requests库和beautifulsoup库。
安装方法:打开cmd,使用命令
python -m pip install requests beautifulsoup4
之后将以下代码复制保存成
.py
文件并执行。注意将login_data里面的密码改为自己的密码。
import requests
from bs4 import BeautifulSoup
for i inrange(10000):
User_Agent ="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36"
headers ={"User-Agent":User_Agent}
session = requests.Session()
response = session.get("http://192.168.1.1")
cookies = session.cookies
login_url ="http://192.168.1.1/boaform/admin/formLogin"if(i%2==1or i==0):# 防止密码错误次数到达上限
login_data ={"username":"user","psd":"改成你自己的密码","login_in":"%B5%C7%C2%BC"}
session.post(login_url,login_data,allow_redirects=False)
logout_url ="http://192.168.1.1/boaform/admin/formLogout"
res = session.post(logout_url,allow_redirects=False)
login_data ={"username":"useradmin","psd":"{:0>4}".format(i),"login_in":"%B5%C7%C2%BC"}print(login_data)
res = session.post(login_url,login_data,allow_redirects=False)
soup = BeautifulSoup(res.text,'html.parser')#文档对象
a_lable = soup.find_all('a')if(a_lable[0]['href']=='/'):print(i)break
执行等待穷举完成即可。
版权归原作者 mar-velous 所有, 如有侵权,请联系我们删除。