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개의 가장 관련성 높은 템플릿 엔진을 지원합니다.

저장소 보기
42338114개월 전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에 따라 라이선스가 부여됩니다.

    도구 다운로드