Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
smuggler — PythonベースのHTTPリクエストスマグリングおよびデシンクテストツール。設定可能なミューテーションペイロードと自動スキャンを使用して、CL.TEおよびTE.CLの脆弱性を検出します。 | Kitploit
ツール/GitHubGitHub/defparam/smuggler
脆弱性スキャナーウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト
GitHubdefparam/smuggler

smuggler

PythonベースのHTTPリクエストスマグリングおよびデシンクテストツール。設定可能なミューテーションペイロードと自動スキャンを使用して、CL.TEおよびTE.CLの脆弱性を検出します。

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
  ______                         _              
 / _____)                       | |             
( (____  ____  _   _  ____  ____| | _____  ____ 
 \____ \|    \| | | |/ _  |/ _  | || ___ |/ ___)
 _____) ) | | | |_| ( (_| ( (_| | || ____| |    
(______/|_|_|_|____/ \___ |\___ |\_)_____)_|    
                    (_____(_____|               

     @defparam

Smuggler

HTTPリクエストスマグリング / デシンクテストツール(Python 3製)

謝辞

James Kettle氏のHTTPデシンクに関する研究と手法に特に感謝します。

また、Smugglerのベータテストと、Nahamcon 2020での作業発表を許可してくれたBen Sadeghipour氏にも特に感謝します。

重要

このツールは、誤検出や見逃しがないことを保証しません。変異がOKと報告されたとしても、デシンク問題が存在しないとは限らず、より重要なことに、ツールが潜在的なデシンク問題を示したとしても、それが確実に存在するとは限りません。スクリプトは、大規模エンティティ(例:Google/AWS/Yahoo/Akamaiなど)のリクエストプロセッサに遭遇し、誤検出を示す可能性があります。

インストール

  1. git clone https://github.com/defparam/smuggler.git
  2. cd smuggler
  3. python3 smuggler.py -h

使用例

単一ホスト:

python3 smuggler.py -u <URL>

ホスト一覧:

cat list_of_hosts.txt | python3 smuggler.py

オプション

usage: smuggler.py [-h] [-u URL] [-v VHOST] [-x] [-m METHOD] [-l LOG] [-q]
                   [-t TIMEOUT] [--no-color] [-c CONFIGFILE]

optional arguments:
  -h, --help            このヘルプメッセージを表示して終了
  -u URL, --url URL     エンドポイント付きターゲットURL
  -v VHOST, --vhost VHOST
                        仮想ホストを指定
  -x, --exit_early      最初の発見でスキャンを終了
  -m METHOD, --method METHOD
                        使用するHTTPメソッド(例 GET, POST)デフォルト: POST
  -l LOG, --log LOG     ログファイルを指定
  -q, --quiet           サイレントモード。発見された問題のみをログ出力
  -t TIMEOUT, --timeout TIMEOUT
                        ソケットタイムアウト値 デフォルト: 5
  --no-color            カラーコードを抑制
  -c CONFIGFILE, --configfile CONFIGFILE
                        ペイロード設定ファイルのパス

Smugglerは最低限、-u/--url引数によるURL、またはstdin経由でパイプされたURLリストのいずれかを必要とします。URLがhttps://を指定している場合、SmugglerはSSL/TLSを使用してホスト:ポートに接続します。URLがhttp://を指定している場合、SSL/TLSは使用されません。ホストのみが指定された場合、スクリプトはデフォルトでhttps://を使用します。

-v/--vhost <host>を使用して、サーバーアドレスとは異なるHostヘッダーを指定します。

-x/--exit_earlyを使用して、潜在的な問題が見つかった時点で特定のサーバーのスキャンを終了します。パイプモードでは、Smugglerはリストの次のホストに進むだけです。

-m/--method <method>を使用して、POST以外のHTTP動詞(例 GET/PUT/PATCH/OPTIONS/CONNECT/TRACE/DELETE/HEADなど)を指定します。

-l/--log <file>を使用して、stdoutとファイルの両方に出力を書き込みます。

-q/--quietで冗長性を減らし、発見された問題のみをログ出力します。

-t/--timeout <value>を使用してソケットタイムアウトを指定します。値はソケットがハングしていると結論付けるのに十分高いが、テストを高速化するために十分低い値にする必要があります(デフォルト: 5)。

--no-colorを使用して、stdoutに出力されるカラーコードを抑制します(ログはデフォルトでカラーコードを含みません)。

-c/--configfile <configfile>を使用して、独自のSmuggler変異設定ファイルを指定します(デフォルト: default.py)。

設定ファイル

設定ファイルは、smugglerの./configディレクトリに存在するPythonファイルです。これらのファイルは、HTTPリクエストの内容とテストする転送エンコーディングの変異を記述します。

以下はdefault.pyの内容例です:

def render_template(gadget):
	RN = "\r\n"
	p = Payload()
	p.header  = "__METHOD__ __ENDPOINT__?cb=__RANDOM__ HTTP/1.1" + RN
	# p.header += "Transfer-Encoding: chunked" +RN	
	p.header += gadget + RN
	p.header += "Host: __HOST__" + RN
	p.header += "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36" + RN
	p.header += "Content-type: application/x-www-form-urlencoded; charset=UTF-8" + RN
	p.header += "Content-Length: __REPLACE_CL__" + RN
	return p


mutations["nameprefix1"] = render_template(" Transfer-Encoding: chunked")
mutations["tabprefix1"] = render_template("Transfer-Encoding:\tchunked")
mutations["tabprefix2"] = render_template("Transfer-Encoding\t:\tchunked")
mutations["space1"] = render_template("Transfer-Encoding : chunked")

for i in [0x1,0x4,0x8,0x9,0xa,0xb,0xc,0xd,0x1F,0x20,0x7f,0xA0,0xFF]:
	mutations["midspace-%02x"%i] = render_template("Transfer-Encoding:%cchunked"%(i))
	mutations["postspace-%02x"%i] = render_template("Transfer-Encoding%c: chunked"%(i))
	mutations["prespace-%02x"%i] = render_template("%cTransfer-Encoding: chunked"%(i))
	mutations["endspace-%02x"%i] = render_template("Transfer-Encoding: chunked%c"%(i))
	mutations["xprespace-%02x"%i] = render_template("X: X%cTransfer-Encoding: chunked"%(i))
	mutations["endspacex-%02x"%i] = render_template("Transfer-Encoding: chunked%cX: X"%(i))
	mutations["rxprespace-%02x"%i] = render_template("X: X\r%cTransfer-Encoding: chunked"%(i))
	mutations["xnprespace-%02x"%i] = render_template("X: X%c\nTransfer-Encoding: chunked"%(i))
	mutations["endspacerx-%02x"%i] = render_template("Transfer-Encoding: chunked\r%cX: X"%(i))
	mutations["endspacexn-%02x"%i] = render_template("Transfer-Encoding: chunked%c\nX: X"%(i))

独自のカスタムヘッダーやユーザーエージェントを指定するための入力引数はまだありません。default.pyをベースに独自の設定ファイルを作成し、適宜変更することをお勧めします。

Smugglerには3つの設定ファイルが付属しています: default.py(高速)、doubles.py(ニッチ、低速)、exhaustive.py(非常に低速) default.pyは変異が少ないため最速です。

設定ファイルは、-c/--configfile <configfile> コマンドラインオプションで指定します。

ペイロードディレクトリ

Smugglerディレクトリ内にpayloadsディレクトリがあります。Smugglerが潜在的なCLTEまたはTECLデシンク問題を発見すると、問題のあるペイロードのバイナリテキストファイルを自動的にpayloadsディレクトリにダンプします。すべてのペイロードファイル名には、ホスト名、デシンクタイプ、変異タイプが注釈として付けられます。これらのペイロードを使用して、サーバーに直接netcatするか、他の分析ツールにインポートします。

ヘルパースクリプト

デシンク問題を見つけた後は、ここにあるTurbo Intruderデシンクスクリプトを自由に使用してください: https://github.com/defparam/tiscripts DesyncAttack_CLTE.py と DesyncAttack_TECL.py は、デシンク攻撃の準備に適したスクリプトです。

ライセンス

これらのスクリプトはMITライセンスの下で公開されています。 LICENSEを参照してください。

ツールをダウンロード