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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2017-14980 — Sync Breeze Enterprise 10.0.28 の /login ハンドラ経由で到達可能なスタックベースのバッファオーバーフロー。入力長の未チェックがスタックメモリを破壊する方法を示しています。 | Kitploit
ツール/GitHubGitHub/themalwareguardian/cve-2017-14980
脆弱性分析エクスプロイトリバースエンジニアリングシェルコードウェブアプリケーション悪用デバッガファジング学習と教育ペイロード開発バイナリエクスプロイト
GitHubthemalwareguardian/cve-2017-14980

CVE-2017-14980

135ヶ月前未レビュー

Sync Breeze Enterprise 10.0.28 の /login ハンドラ経由で到達可能なスタックベースのバッファオーバーフロー。入力長の未チェックがスタックメモリを破壊する方法を示しています。

リポジトリを見る

人気

すべて見る →

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

すべてのツールを探索

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

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

🐞 CVE-2017-14980: Sync Breeze Enterprise 10.0.28 - スタックベースのバッファオーバーフロー

Sync Breeze Enterprise 10.0.28 の /login ハンドラを通じて到達可能なスタックベースのバッファオーバーフロー。入力長のチェック漏れがスタックメモリを破壊する様子を示しています。




📑 目次

  • このリポジトリが存在する理由
  • この脆弱性が興味深い理由
  • 背景と影響を受けるソフトウェア
  • 脆弱性について
  • クラッシュのトリガー
  • エクスプロイト方法



🎓 このリポジトリが存在する理由

このリポジトリは、メモリ破壊エクスプロイトを教える際に使用する教材の一部です(通常の業務に加えて、私はさまざまなサイバーセキュリティコースで教鞭をとり、次世代のリバースエンジニアを育成しています)。

CVE-2017-14980 は、学生に生のTCPプロトコルではなくHTTP経由での vanilla EIP overwrite を体験させたいときに使用するケースです。一見単純に見えます。ログインフォーム、長いパスワード、クラッシュ。しかし、HTTPのコンテキストでは、すぐには気づきにくい bad characters のセットが導入されており、学生はデータが脆弱なバッファに到達する前にどのように処理されているかを考えさせられます。なぜ%、&、+、= がここで bad chars になるのかを理解するにはURLエンコーディングの理解が必要であり、それ自体が有益な教訓となります。




💡 この脆弱性が興味深い理由

Sync Breeze Enterprise は、Web管理インターフェースを公開するWindowsファイル同期アプリケーションです。脆弱性はログインハンドラにあり、パスワードフィールドを固定サイズのスタックバッファに長さチェックなしでコピーします。このケースが教育に役立つ理由は以下の通りです。

  • 認証不要。 認証チェックの前のログイン処理中にオーバーフローが発生します。
  • 直接的なEIP上書き。 SEH、ヒープ、マルチステージのエクスプロイトは不要です。保存された戻りアドレスが直接上書きされます。
  • HTTPコンテキストにより、明らかでない bad characters が導入される。 通常の \x00、\x0a、\x0d に加えて、application/x-www-form-urlencoded コンテンツタイプにより、\x25 (%)、\x26 (&)、\x2b (+)、\x3d (=) が bad chars となります。サーバーはバッファにコピーする前にURLエンコードされたボディをデコードするためです。bad char 分析を省略していきなりシェルコードに進んだ学生は、ペイロードがメモリに到達する前に静かに破壊されることになります。
  • アプリケーションに同梱されたモジュール内の信頼性の高いガジェット。 Sync Breeze にバンドルされている libspp.dll は、ASLR、SafeSEH、CFG なしでコンパイルされているため、ガジェットアドレスは再起動後も固定されています。



🔍 背景と影響を受けるソフトウェア

Sync Breeze Enterprise は、リモート管理用の組み込みWebサーバーを含むWindowsファイル同期ツールです。Webインターフェースは、有効にするとTCPポート80でリッスンし、/login にログインフォームを公開します。脆弱性は、パスワードフィールドを処理するPOSTハンドラにあります。

主要な技術的詳細:

  • 脆弱性タイプ: スタックベースのバッファオーバーフロー
  • 影響を受けるバージョン: Sync Breeze Enterprise 10.0.28
  • 影響を受けるエンドポイント: POST /login, password パラメータ
  • 脆弱なコンポーネント: ログインフォームハンドラ
  • 認証の必要性: なし
  • 影響: リモートコード実行



⚠️ 脆弱性について

Sync Breeze は、ログインフォームを処理する際にPOSTボディを読み取り、パスワードフィールドを抽出します。その値は、長さをチェックせずに固定サイズのスタックバッファにコピーされます。脆弱なロジックの簡略化したバージョンは次のようになります。

root@kitploit:~
char password_buffer[256];

strcpy(password_buffer, password_field);

POSTボディはコピーが行われる前にURLデコードされるため、%25 のような文字はバッファに到達する前に % にデコードされます。これが、特定のURL特殊文字が bad chars として動作する理由でもあり、HTTPレイヤーがデータを解釈した後、脆弱なコピー操作にデータが到達する前に解釈されます。十分に長いパスワード値を送信すると、コピーがバッファの終端を超えて書き込まれ、保存された戻りアドレスが上書きされます。関数が戻るとき、CPUはスタックから攻撃者制御の値をEIPにロードし、そこにジャンプします。




💥 クラッシュのトリガー

クラッシュは、/login に長すぎるパスワードを含むPOSTリクエストを送信することで再現できます。認証は不要です。Pythonを使用した例:

root@kitploit:~
import socket

HOST = '127.0.0.1'
PORT = 80

payload = b"A" * 600

body = b"username=admin&password=" + payload
request = (
	b"POST /login HTTP/1.1\r\n"
	b"Host: 127.0.0.1\r\n"
	b"Content-Type: application/x-www-form-urlencoded\r\n"
	b"Content-Length: " + str(len(body)).encode() + b"\r\n"
	b"Connection: close\r\n"
	b"\r\n" +
	body
)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(request)
s.close()

デバッガで実行すると、クラッシュによりEIPがユーザ制御のデータで上書きされていることがわかります。

root@kitploit:~
EIP = 41414141

これにより、オーバーフローによって保存された戻りアドレスが破壊されたことが確認されます。




💣 エクスプロイト方法

このリポジトリの目的は、クラッシュのデモンストレーションだけでなく、ファジングから動作するリバースシェルまでの完全なエクスプロイトプロセスを段階的に説明することです。

メインのREADMEを整理するため、詳細なエクスプロイトノート、スクリプト、デバッガ手順は、このリポジトリの Vulnerability 📂 フォルダに配置しています。

そこには、このCVEをエクスプロイトするために使用した完全なワークフローが含まれています。具体的には以下の通りです:

  • パスワードフィールドのファジングによるクラッシュの特定。
  • オフセットの発見によるEIPのスタック上の正確な位置の特定。
  • URLエンコードされたPOSTボディに対する bad character 分析(HTTP固有の bad chars を含む)。
ツールをダウンロード
  • ASLRやSafeSEHなしでコンパイルされたモジュール libspp.dll 内の JMP ESP ガジェットの特定。
  • シェルコードの配置と実行。