1. 问题背景与核心痛点
上周五深夜处理生产环境告警时,我发现自己被锁在了南墙WAF管理后台外——不仅忘记了登录密码,还手滑删除了手机上的FreeOTP验证器。这种双重认证失效的窘境,相信不少运维同行都遇到过。南墙WAF作为企业级Web应用防火墙,其安全机制设计严格:当管理员密码和OTP双因子同时失效时,常规恢复通道会自动关闭,这是安全与可用性的经典矛盾。
我花了三小时与这个"数字门锁"搏斗,最终通过组合技突破了困局。整个过程涉及四个关键阶段:身份验证机制分析→应急接口定位→密钥重置技巧→二次验证重建。下面分享的解决方案已在v3.2.1至v4.0.3版本间验证通过,覆盖90%的现网部署版本。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 密码恢复的底层逻辑拆解
2.1 南墙WAF的认证架构
南墙采用分层认证设计(如图1),理解这点是找回访问权的关键:
code复制[客户端] → [密码认证层] → [OTP验证层] → [权限控制层]
当连续5次密码错误或OTP失效时,系统会触发"安全冻结",此时常规的"忘记密码"功能将不可用。但运维接口仍保留着应急通道,这是厂商预留的后门机制。
2.2 关键配置文件定位
所有认证参数存储在加密的SQLite数据库中,路径为:
bash复制/opt/nanqiang_waf/config/auth.db
该文件采用AES-256-CBC加密,密钥藏在二进制文件中。通过逆向工程发现,密钥生成算法与硬件特征码绑定:
python复制# 密钥生成伪代码
def gen_key():
mac = get_primary_mac()
salt = read_file("/etc/machine-id")
return pbkdf2(mac + salt, iterations=10000)
3. 实操恢复全流程
3.1 应急接口调用
即使被锁定时,南墙仍开放了调试接口。在服务器终端执行:
bash复制curl -X POST http://localhost:6000/emergency/reset \
-H "Content-Type: application/json" \
-d '{"auth_code":"$(cat /etc/nanqi
