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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/hackmanit/tinja
漏洞扫描器动态代码分析 (DAST)Web应用程序漏洞利用Web安全模糊测试渗透测试
GitHubhackmanit/tinja

TInjA

TInjA 是一个用于测试网页模板注入漏洞的 CLI 工具,支持八种不同编程语言的 44 个最相关的模板引擎。

查看仓库
423383个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Release Go Report Card GitHub go.mod Go version License

TInjA – 模板注入分析器

TInjA 是一款用于测试网页是否存在模板注入漏洞的 CLI 工具。

它支持八种不同编程语言中的 44 个最相关的模板引擎(截至 2023 年 9 月)。

TInjA 由 Hackmanit 和 Maximilian Hildebrand 开发。

  • 功能
  • 支持的模板引擎
  • 安装
    • 选项 1:预编译二进制文件
    • 选项 2:使用 Go 安装
  • 用法
    • 指定标头、Cookie 和 POST 体
    • 在 SSTI 之外扫描 CSTI
    • 生成 JSONL 报告
    • 使用代理
    • 设置速率限制
  • 故障排除
  • 待办事项
  • 背景信息
  • 许可证

功能

  • 自动检测模板注入可能性并识别正在使用的模板引擎。
    • 支持 44 个最相关的模板引擎(见支持的模板引擎)。
    • 同时检测 SSTI 和 CSTI 漏洞。
      • SSTI = 服务器端模板注入
      • CSTI = 客户端端模板注入
  • 利用多语言有效载荷实现高效扫描:
    • 平均只需发送五个多语言有效载荷即可检测到模板注入可能性并识别模板引擎。
  • 以 JSONL 格式将爬取的 URL 传递给 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 对象必须在一行内。每个对象必须具有以下结构 (额外的换行和缩进仅用于显示):
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 时需要代理的 PEM 格式 CA 证书。例如,Burp Suite 的 CA 证书默认是 DER 格式。可使用以下命令进行转换:

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

设置速率限制

  • --ratelimit/-r 指定每秒允许的最大请求数。默认情况下,此数字不受限制。
    • 示例:tinja url -u "http://example.com/" --ratelimit 10

故障排除

  • [ERR] Couldn't connect to URL: remote error: tls: user canceled
    • 使用代理并通过 HTTPS 连接时,需要使用 --proxycertpath 指定代理的 CA 证书(.pem)(见使用代理)。
  • [ERR] Error reading response from target server via proxy: malformed HTTP response "HTTP/1.1"
    • 在 Burp Suite 的设置中禁用 Default to HTTP/2 if the server supports it(Network > HTTP)。

待办事项

  • 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 许可证 2.0 版。

下载工具