Так сложилось, что одним из вариантов решения задачи сбора ответов пользователей на формы является использование электронной почты. Электронная почта – комплексная технология, в работе которой задействован целый список компонентов.
В таком сценарии формы выступают посредниками между рядом компонентов и пользователем, что, как известно из истории, неизбежно ведёт к эксплуатации уязвимостей технологий через пользовательский ввод – к инъекциям.
И, поскольку в распоряжении атакующего оказывается цепочка из компонентов различных реализаций, такая функциональность – просторное поле для анализа и проведения не одного, но сразу нескольких видов инъекций.
• Основы работы почты:
◦ Почтовые протоколы
◦ Почтовые компоненты
◦ Конструкция письма
◦ Специальные конструкции
• Потенциальные уязвимости:
◦ 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)