Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
TInjA — TInjA는 웹 페이지에서 템플릿 인젝션 취약점을 테스트하기 위한 CLI 도구이며, 8가지 프로그래밍 언어에 대한 44개의 가장 관련성 높은 템플릿 엔진을 지원합니다. | Kitploit
도구/GitHubGitHub/hackmanit/tinja
Vulnerability ScannersDynamic Code Analysis (DAST)Web Application ExploitationWeb SecurityFuzzingPenetration Testing
GitHubhackmanit/tinja

TInjA

TInjA는 웹 페이지에서 템플릿 인젝션 취약점을 테스트하기 위한 CLI 도구이며, 8가지 프로그래밍 언어에 대한 44개의 가장 관련성 높은 템플릿 엔진을 지원합니다.

저장소 보기
423383개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Release Go Report Card GitHub go.mod Go version License

TInjA – 템플릿 인젝션 분석기

TInjA는 웹 페이지에서 템플릿 인젝션 취약점을 테스트하기 위한 CLI 도구입니다.

8가지 프로그래밍 언어에 대한 가장 관련성 높은 44개의 템플릿 엔진(2023년 9월 기준)을 지원합니다.

TInjA는 Hackmanit과 Maximilian Hildebrand에 의해 개발되었습니다.

  • 기능
  • 지원되는 템플릿 엔진
  • 설치
    • 옵션 1: 미리 빌드된 바이너리
    • 옵션 2: Go를 사용하여 설치
  • 사용법
    • 헤더, 쿠키 및 POST 본문 지정
    • SSTI 외에 CSTI 스캔
    • JSONL 보고서 생성
    • 프록시 사용
    • 속도 제한 설정
  • 문제 해결
  • 할 일
  • 배경 정보
  • 라이선스

기능

  • 템플릿 인젝션 가능성의 자동 탐지 및 사용 중인 템플릿 엔진 식별.
    • 가장 관련성 높은 44개의 템플릿 엔진 지원 (지원되는 템플릿 엔진 참조).
    • SSTI와 CSTI 취약점이 모두 탐지됩니다.
      • SSTI = 서버 측 템플릿 인젝션
      • CSTI = 클라이언트 측 템플릿 인젝션
  • 폴리글롯 사용으로 효율적인 스캔:
    • 평균적으로 템플릿 인젝션 가능성이 탐지되고 템플릿 엔진이 식별될 때까지 웹 페이지에 5개의 폴리글롯만 전송됩니다.
  • 크롤링된 URL을 JSONL 형식으로 TInjA에 전달합니다.
  • 원시 HTTP 요청을 TInjA에 전달합니다.
  • 사용자 지정 헤더, 쿠키, 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"
    }
}

헤더, 쿠키 및 POST 본문 지정

  • --header/-H는 요청에 추가할 헤더를 지정합니다.
    • 예시: tinja url -u "http://example.com/" -H "Authentication: Bearer ey..."
  • --cookie/-c는 요청에 추가할 쿠키를 지정합니다.
    • 예시: 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로 연결할 때, 프록시의 CA 인증서(.pem)를 --proxycertpath로 지정해야 합니다 (프록시 사용 참조).
  • [ERR] Error reading response from target server via proxy: malformed HTTP response "HTTP/1.1"
    • Burp Suite 설정(Network > HTTP)에서 Default to HTTP/2 if the server supports it을 비활성화하세요.

할 일

  • 폴리글롯을 배치할 위치를 표시하는 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에 따라 라이선스가 부여됩니다.

도구 다운로드