E-mail Injection; Инъекции в почтовую функциональность веб-приложений

Так сложилось, что одним из вариантов решения задачи сбора ответов пользователей на формы является использование электронной почты. Электронная почта – комплексная технология, в работе которой задействован целый список компонентов.

В таком сценарии формы выступают посредниками между рядом компонентов и пользователем, что, как известно из истории, неизбежно ведёт к эксплуатации уязвимостей технологий через пользовательский ввод – к инъекциям.

И, поскольку в распоряжении атакующего оказывается цепочка из компонентов различных реализаций, такая функциональность – просторное поле для анализа и проведения не одного, но сразу нескольких видов инъекций.

 • Основы работы почты:
  ◦ Почтовые протоколы
  ◦ Почтовые компоненты
  ◦ Конструкция письма
  ◦ Специальные конструкции
 • Потенциальные уязвимости:
  ◦ CRLF Injection
  ◦ Arbitrary Command Flag Injection
 • Демонстрация эксплуатации:
  ◦ Заготовка приложения
  ◦ NodeJS + smtp-client (CRLF SMTP Injection + E-mail hijacking)
  ◦ PHP + mail() (CRLF SMTP Injection + Command Flag Injection)
  ◦ Python + imaplib / email (CRLF IMAP Injection + Improper Input Validation)

Читать далее