漏洞总结:DI-8100 路由器 file_exten.asp 栈缓冲区溢出 1. 漏洞概述 漏洞类型:栈缓冲区溢出 (Stack-based Buffer Overflow, CWE-121) 受影响组件:DI-8100 路由器固件中的 CGI 脚本 ( ) 触发条件:在处理文件扩展名配置操作( 或 )时,处理带有超长字符串的 参数。 根本原因:函数 使用 将用户提供的 参数( )直接复制到栈上的缓冲区,且未进行长度验证。攻击者可利用此漏洞覆盖栈上的关键控制数据(如 MIPS 架构下的返回地址和保存的帧指针)。 2. 影响范围 厂商:D-Link (DI-8100 的 OEM 制造商) 产品:DI-8100 Multi-WAN VPN Router 固件版本:确认在分析的版本中存在(具体版本未指定,但可能影响所有当前发布版本) 攻击向量: 远程:是 (HTTP POST 请求) 认证:需要 (有效的管理员会话) 攻击路径:POST 请求至 ,携带 或 以及超大的 参数。 潜在后果:执行任意代码、设备完全沦陷、拒绝服务 (DoS) 或网络内的横向移动。 3. 修复方案 建议:对 脚本中处理 参数的逻辑进行修复,确保在将用户输入复制到缓冲区之前进行严格的长度验证。避免使用不安全的函数如 ,或使用带长度限制的函数(如 )。 临时缓解:如果无法立即修复,应限制对 的访问,并确保只有授权的管理员可以访问该接口。 4. 概念验证 (PoC) 代码 ```bash CVE-DI-8100-file_exten_sprintf curl -c cookies.txt -d "user=admin&password=admin" "http://192.168.0.1/login.cgi" -d "user=admin&password=admin" curl -X POST "http://192.168.0.1/file_exten.asp" -b cookies.txt -d "opt=add&name=$(python -c 'print