Перевод: Server Side Template Injection - что-то необычное!

Перевод: Server Side Template Injection - что-то необычное!

@Ent_TranslateIB

Как дела, ребята! Меня зовут Сагар Саджеев, и это мой рассказ об одной из моих недавних находок SSTI (Server Side Template Injection).

Согласно Portswigger, Server-side template injection - это когда злоумышленник может использовать родной синтаксис шаблона для внедрения вредоносной полезной нагрузки в шаблон, которая затем выполняется на стороне сервера. Механизм шаблонов позволяет вам использовать статические файлы шаблонов в вашем приложении.

По сути, это способ внедрить что-то (полезную нагрузку) в шаблонизатор, который, в свою очередь, выполняется на стороне сервера. В некоторых случаях это может привести к RCE.

Как я нашел ошибку SSTI?

  1. На сайте target.com была простая страница регистрации/регистрации аккаунта.
  2. В поле "Name" введите {{7*7}}.
  3. Остальную часть страницы заполните соответствующим образом. Обратите внимание, что полезная нагрузка должна быть введена только в поле Name.
  4. Это обычное и предполагаемое поведение веб-приложений - поприветствовать нового пользователя письмом и попросить его подтвердить почту.
  5. Вот основной текст письма, тема которого выглядит так:

49, Добро пожаловать на target.com

Образец изображения для справки

Так как же я получил имя 49?

  • Потому что полезная нагрузка {{7*7}} была выполнена шаблонизатором и передана на внутренний сервер.
  • В большинстве случаев успешный SSTI может быть увеличен до RCE. Но мы не можем обобщить конкретную полезную нагрузку, поскольку каждая полезная нагрузка будет уникальна для данного случая.
  • {{system('whoami')}} → Это одна из полезных нагрузок, которая может доказать RCE. Но вероятность того, что эта полезная нагрузка будет выполнена, довольно низка.

Вот еще несколько полезных нагрузок, которые вы можете попробовать:

  1. {{7*'7'}}
  2. #{ 5* 8 }
  3. ,@(5+5)
  4. Вы можете найти больше полезных нагрузок SSTI в Интернете. Но постарайтесь модифицировать и адаптировать эту полезную нагрузку самостоятельно. Это увеличит вероятность того, что она будет выполнена.
  • Я сообщил об этом около месяца назад и до сих пор не получил никакого ответа от компании. Такой подход компаний очень утомителен для охотника за ошибками. Надеюсь, когда-нибудь они ответят на мое письмо :)

Надеюсь, сегодня вы узнали что-то новое. Я сделал еще три статьи о разных интересных ошибках. Они доступны в моем профиле на Medium. Пожалуйста, ознакомьтесь с ними тоже. (https://medium.com/@sagarsajeev)

Временная шкала

Отправлено : 03-07-2022

→ Нет ответа от компании, по состоянию на 05-08-2022 ←

Я время от времени делюсь советами о Bug Bounties и связанных с ними вещах на своих страницах в Twitter и LinkedIn. Так что следите за мной там.

Если у вас есть какие-либо вопросы, не стесняйтесь писать мне. Я буду более чем счастлив помочь.

Счастливого хакинга!

Оригинал статьи - здесь.
Поддержите автора хлопками на Medium.


Перевод статьи был выполнен проектом перевод энтузиаста:

  • 📚 @Ent_TranslateIB - Телеграмм канал с тематикой информационной безопасности
  • 🔥 @Ent_Translate - Инстаграм проекта

Report Page