При тестировании форм регистрации имеет смысл проверять поле email на SSTI, например:
attacker+{{payload}}@gmail.comВполне возможный кейс у какого-нибудь хостинг-провайдера: приложение позволяет поднимать собственные инстансы CMS, в результате чего 👇
1️⃣ Создается пользователь
2️⃣ Разворачивается инфраструктура
3️⃣ Предоставлялся доступ к phpMyAdmin
После проверки БД через phpMyAdmin ты выясняешь, что email пользователя сохраняется как
attacker+49@gmail.com. И тут понеслась:✔️ Подтверждаем, что шаблон вычисляется сервером, а не просто сохраняется
✔️ Выясняем, что приложение использует Ansible для автоматического развёртывания инстансов, и пользовательские данные попадают в Ansible-конфигурации
✔️ В итоге получаем утечку Ansible конфига, извлекаем Ansible переменные
Для повышения импакта используем особенность Ansible: модуль lookup поддерживает тип
pipe, который позволяет выполнять системные команды.
P. S. SSTI может жить не в шаблоне веб-приложения, а глубоко в инфраструктуре. Инъекции в конфигурационные файлы = высокий импакт.
