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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
TInjA — TInjAは、Webページのテンプレートインジェクション脆弱性をテストするためのCLIツールであり、8つの異なるプログラミング言語向けの、最も関連性の高い44のテンプレートエンジンをサポートしています。 | Kitploit
ツール/GitHubGitHub/hackmanit/tinja
脆弱性スキャナー動的コード分析 (DAST)ウェブアプリケーション悪用ウェブセキュリティファジングペネトレーションテスト
GitHubhackmanit/tinja

TInjA

TInjAは、Webページのテンプレートインジェクション脆弱性をテストするためのCLIツールであり、8つの異なるプログラミング言語向けの、最も関連性の高い44のテンプレートエンジンをサポートしています。

リポジトリを見る
423383ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Release Go Report Card GitHub go.mod Go version License

TInjA – テンプレートインジェクションアナライザー

TInjA は、Web ページのテンプレートインジェクション脆弱性をテストするための CLI ツールです。

8 つの異なるプログラミング言語に対応する、最も関連性の高い 44 のテンプレートエンジン(2023 年 9 月時点)をサポートしています。

TInjA は Hackmanit と Maximilian Hildebrand によって開発されました。

  • 機能
  • サポートされているテンプレートエンジン
  • インストール
    • オプション1: プリビルドバイナリ
    • オプション2: Go を使用してインストール
  • 使用法
    • ヘッダー、Cookie、POST ボディの指定
    • SSTI に加えて CSTI のスキャン
    • JSONL レポートの生成
    • プロキシの使用
    • レート制限の設定
  • トラブルシューティング
  • TODO
  • 背景情報
  • ライセンス

機能

  • テンプレートインジェクションの可能性の自動検出と、使用中のテンプレートエンジンの特定。
    • 最も関連性の高い 44 のテンプレートエンジンをサポート(サポートされているテンプレートエンジンを参照)。
    • SSTI と CSTI の両方の脆弱性を検出します。
      • SSTI = サーバーサイドテンプレートインジェクション
      • CSTI = クライアントサイドテンプレートインジェクション
  • ポリグロットの使用による効率的なスキャン:
    • テンプレートインジェクションの可能性が検出され、テンプレートエンジンが特定されるまで、平均して 5 つのポリグロットのみが Web ページに送信されます。
  • クロールされた URL を JSONL 形式で TInjA に渡します。
  • 生の HTTP リクエストを TInjA に渡します。
  • カスタムヘッダー、Cookie、POST パラメータ、クエリパラメータを設定します。
  • プロキシ(例:Burp Suite)経由でトラフィックをルーティングします。
  • レート制限を設定します。

サポートされているテンプレートエンジン

.NET

  • DotLiquid
  • Fluid
  • Razor Engine
  • Scriban

Elixir

  • EEx

Go

  • html/template
  • text/template

Java

  • Freemarker
  • Groovy
  • Thymeleaf
  • Velocity

JavaScript

  • Angular.js
  • Dot
  • EJS
  • Eta
  • Handlebars
  • Hogan.js
  • Mustache
  • Nunjucks
  • Pug
  • Twig.js
  • Underscore
  • Velocity.js
  • Vue.js

PHP

  • Blade
  • Latte
  • Mustache.php
  • Smarty
  • Twig

Python

  • Chameleon
  • Cheetah3
  • Django
  • Jinja2
  • Mako
  • Pystache
  • SimpleTemplate Engine
  • Tornado

Ruby

  • ERB
  • Erubi
  • Erubis
  • Haml
  • Liquid
  • Mustache
  • Slim

インストール

オプション1: プリビルドバイナリ

TInjA のプリビルドバイナリはリリースページで提供されています。

オプション2: Go を使用してインストール

必要条件: go1.21 以上

root@kitploit:~
go install -v github.com/Hackmanit/TInjA@latest

使用法

  • 単一 URL のスキャン: tinja url -u "http://example.com/"
  • 複数 URL のスキャン: tinja url -u "http://example.com/" -u "http://example.com/path2"
  • ファイルで提供された URL のスキャン: tinja url -u "file:/path/to/file"
  • 生の HTTP リクエストを含むファイルを渡して単一 URL をスキャン: tinja raw -R "/path/to/file"
  • JSONL ファイルで追加情報が提供された URL のスキャン: tinja jsonl -j "/path/to/file"
    • JSONL ファイルの各行には、単一の JSON オブジェクトが含まれている必要があります。JSON オブジェクト全体が 1 行にある必要があります。各オブジェクトは次の構造を持つ必要があります (追加の改行とインデントは表示目的のみです):
root@kitploit:~
{
"request":{
    "method":"POST",
    "endpoint":"http://example.com/path",
    "body":"name=Kirlia",
    "headers":{
        "Content-Type":"application/x-www-form-urlencoded"
    }
}

ヘッダー、Cookie、POST ボディの指定

  • --header/-H はリクエストに追加するヘッダーを指定します。
    • 例: tinja url -u "http://example.com/" -H "Authentication: Bearer ey..."
  • --cookie/-c はリクエストに追加する Cookie を指定します。
    • 例: tinja url -u "http://example.com/" -c "PHPSESSID=ABC123..."
  • --data/-d はリクエストに追加する POST ボディを指定します。
    • 例: tinja url -u "http://example.com/" -d "username=Kirlia&password=notguessable"

SSTI に加えて CSTI のスキャン

  • --csti は CSTI のスキャンを有効にします。
    • 例: tinja url -u "http://example.com/" --csti

デフォルトでは、TInjA は SSTI のみをスキャンします。CSTI のスキャンにはヘッドレスブラウザが使用され、RAM と CPU の使用量が増加する可能性があります。

JSONL レポートの生成

  • --reportpath は JSONL 形式のレポートの生成を有効にします。レポートはスキャンされた URL ごとに更新され、指定されたパスに保存されます。
    • 例: tinja url -u "http://example.com/" --reportpath "/home/user/Documents"

プロキシの使用

  • --proxyurl はスキャンに使用するプロキシの URL とポートを指定します。
    • 例: tinja url -u "http://example.com/" --proxyurl "http://127.0.0.1:8080"
  • --proxycertpath はプロキシの CA 証明書を PEM 形式で指定します(HTTPS URL のスキャン時に必要)。
    • 例: tinja url -u "http://example.com/" --proxyurl "http://127.0.0.1:8080" --proxycertpath "/home/user/Documents/cacert.pem"

プロキシを使用して HTTPS URL をスキャンするには、プロキシの CA 証明書が PEM 形式で必要です。Burp Suite の CA 証明書は、例えば DER 形式で提供されます。変換するには、次のコマンドを使用できます:

openssl x509 -inform DER -outform PEM -text -in cacert.der -out cacert.pem

レート制限の設定

  • --ratelimit/-r は 1 秒あたりの最大リクエスト数を指定します。デフォルトでは制限はありません。
    • 例: tinja url -u "http://example.com/" --ratelimit 10

トラブルシューティング

  • [ERR] Couldn't connect to URL: remote error: tls: user canceled
    • プロキシを使用して HTTPS 経由で接続する場合、プロキシの CA 証明書 (.pem) を --proxycertpath で指定する必要があります(プロキシの使用を参照)。
  • [ERR] Error reading response from target server via proxy: malformed HTTP response "HTTP/1.1"
    • Burp Suite の設定 (Network > HTTP) で、「サーバーがサポートしている場合に HTTP/2 をデフォルトにする」を無効にします。

TODO

  • TINJA マーカー:ポリグロットを配置する場所をマークします。
  • マルチパートボディと JSON のサポート。
  • オプション:ブラインド SSTI ペイロード(例:sleep ペイロード)。
  • CSTI または SSTI が検出されたかどうかのフィードバック。
  • テンプレートエンジンのエラーメッセージについてヘッドレスブラウザのコンソールを確認(https://github.com/go-rod/rod/issues/330 を参照)。
  • 入力が反映されない場合のエラー検出の改善。

背景情報

テンプレートインジェクションと TInjA – テンプレートインジェクションアナライザー に関する詳細情報を提供するブログ記事はこちらにあります:

テンプレートインジェクション脆弱性 – 理解、検出、特定

TInjA は Maximilian Hildebrand の修士論文の一部として開発されました。 修士論文の結果は、以下で公開されています:

  • テンプレートインジェクションテーブル
  • テンプレートインジェクションプレイグラウンド
  • TInjA – テンプレートインジェクションアナライザー
  • 修士論文 (PDF)

ライセンス

TInjA – テンプレートインジェクションアナライザーは、Hackmanit と Maximilian Hildebrand によって、彼の修士論文の一部として開発されました。TInjA – テンプレートインジェクションアナライザーは Apache License, Version 2.0 の下でライセンスされています。

ツールをダウンロード