Email-инъекция

Поделись знанием:
(перенаправлено с «E-mail инъекция»)
Перейти к: навигация, поиск

e-mail инъекция — это техника атаки, используемая для эксплуатации почтовых серверов и почтовых приложений, конструирующих IMAP/SMTP выражения из выполняемого пользователем ввода, который не проверяется должным образом. В зависимости от типа операторов, используемых злоумышленником, выделяют два типа инъекций: IMAP инъекция и SMTP инъекция.

IMAP / SMTP инъекции позволяют получить доступ к почтовому серверу, к которому ранее доступа не было. В некоторых случаях эти внутренние системы не имеют того же уровня безопасности, что и остальная инфраструктура. Таким образом, злоумышленники могут обнаружить, что почтовый сервер, дает лучшие результаты с точки зрения эксплуатации. Этот метод позволяет избежать возможных ограничений, которые могут существовать на уровне приложений (CAPTCHA, максимальное количество обращений и т. д.).

Типичная структура IMAP / SMTP инъекции заключается в следующем:

  Header: окончание ожидаемой команды
  Body: инъекция новых команд
  Footer: начало ожидаемой команды

Важно отметить, что для того, чтобы выполнились IMAP / SMTP команды, предыдущие команды должны были прекращены с CRLF (% 0d% 0a) последовательностью.

Некоторые примеры нападений с использованием IMAP / SMTP инъекции техники являются:

  • Эксплуатация уязвимостей IMAP/SMTP протокола;
  • Уклонение от ограничений приложений;
  • Уклонение от антиробота;
  • Утечка информации;
  • Спам.


Примеры сценариев атак

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

Давайте посмотрим на пример IMAP инъекции, использующей функциональные возможности чтения сообщений. Предположим, что приложение использует параметр веб-почты «message_id», чтобы сохранить идентификатор сообщений, которые пользователь желает прочитать. Когда запрос, содержащий идентификатор сообщения отправляется, это будет выглядеть следующим образом:

 <webmail> / read_email.php? message_id = <номер>

Предположим, что php-скрипт «read_email.php», отвечающий за показ связанного с ним сообщения, передает запрос на сервер IMAP, не выполняя никаких проверок на значение <номер>, указанное пользователем. Команда, отправленная на почтовый сервер будет выглядеть следующим образом:

FETCH <number> BODY[HEADER]

В связи с этим, злоумышленник может попытаться провести атаку IMAP инъекции через параметр «message_id», используемый приложением для связи с сервером. Например, команда IMAP «CAPABILITY» может быть введена, используя следующую последовательность:

<webmail>/read_email.php?message_id=1 BODY[HEADER]%0d%0aV001 CAPABILITY%0d%0aV002 FETCH 1

Это позволит произвести следующую последовательность команд IMAP на сервере:

???? FETCH 1 BODY[HEADER]
V001 CAPABILITY
V002 FETCH 1 BODY[HEADER]

где:

Header = 1 BODY[HEADER]
Body   = %0d%0aV100 CAPABILITY%0d%0a
Footer = V101 FETCH 1

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

Предположим, что приложение электронной почты ограничивает количество электронных писем, отправленных в выбранный период времени. SMTP инъекция позволит уклониться от этого ограничения, просто добавляя команды RCPT, как направления, в нужном злоумышленнику количестве:

 POST <webmail>/compose.php HTTP/1.1
 -----------------------------134475172700422922879687252
 Content-Disposition: form-data; name="subject"
 Test
 .
 MAIL FROM: external@domain1.com
 RCPT TO: external@domain1.com
 RCPT TO: external@domain2.com
 RCPT TO: external@domain3.com
 RCPT TO: external@domain4.com
 Data
 This is an example of SMTP Injection attack
 .
 -----------------------------134475172700422922879687252
 ...

Это создаст следующую последовательность SMTP команд, которые будут отправлены на почтовый сервер:

 MAIL FROM: <mailfrom>
 RCPT TO: <rcptto>
 DATA
 Subject: Test
 .
 MAIL FROM: external@domain.com
 RCPT TO: external@domain1.com
 RCPT TO: external@domain2.com
 RCPT TO: external@domain3.com
 RCPT TO: external@domain4.com
 DATA
 This is an example of SMTP Injection attack
 .
 ...

Напишите отзыв о статье "Email-инъекция"

Ссылки

  • [projects.webappsec.org/Mail-Command-Injection|«Mail Command Injection. Project: WASC Threat Classification. Threat Type: Attack. Reference ID: WASC-30»]
  • [www.ietf.org/rfc/rfc0821.txt|«RFC 0821: Simple Mail Transfer Protocol»]
  • [www.ietf.org/rfc/rfc3501.txt|«RFC 3501: Internet Message Access Protocol — Version 4rev1»]
  • [www.derkeiler.com/Mailing-Lists/securityfocus/bugtraq/2002-05/0077.html «CRLF Injection by Ulf Harnhammar»]
  • [www.securephpwiki.com/index.php/Email_Injection|«Email Injection — Injecting email headers»]
  • [www.php.net/manual/en/ref.mail.php#62027|«PHP Mail Functions discussions»]
  • [www.nextgenss.com/papers/aspmail.pdf «E-mail Spoofing and CDONTS.NEWMAIL», David Litchfield]
  • [www.owasp.org/index.php/Testing_for_IMAP/SMTP_Injection|«Testing for IMAP/SMTP Injection», Vicente Aguilera.]
  • [www.webappsec.org/projects/articles/121106.pdf «MX Injection : Capturing and Exploiting Hidden Mail Servers», Vicente Aguilera.]

Отрывок, характеризующий Email-инъекция

В это время Петя, в первой комнате, увидав и схватив сабли, и испытывая тот восторг, который испытывают мальчики, при виде воинственного старшего брата, и забыв, что сестрам неприлично видеть раздетых мужчин, отворил дверь.
– Это твоя сабля? – кричал он. Девочки отскочили. Денисов с испуганными глазами спрятал свои мохнатые ноги в одеяло, оглядываясь за помощью на товарища. Дверь пропустила Петю и опять затворилась. За дверью послышался смех.
– Николенька, выходи в халате, – проговорил голос Наташи.
– Это твоя сабля? – спросил Петя, – или это ваша? – с подобострастным уважением обратился он к усатому, черному Денисову.
Ростов поспешно обулся, надел халат и вышел. Наташа надела один сапог с шпорой и влезала в другой. Соня кружилась и только что хотела раздуть платье и присесть, когда он вышел. Обе были в одинаковых, новеньких, голубых платьях – свежие, румяные, веселые. Соня убежала, а Наташа, взяв брата под руку, повела его в диванную, и у них начался разговор. Они не успевали спрашивать друг друга и отвечать на вопросы о тысячах мелочей, которые могли интересовать только их одних. Наташа смеялась при всяком слове, которое он говорил и которое она говорила, не потому, чтобы было смешно то, что они говорили, но потому, что ей было весело и она не в силах была удерживать своей радости, выражавшейся смехом.
– Ах, как хорошо, отлично! – приговаривала она ко всему. Ростов почувствовал, как под влиянием жарких лучей любви, в первый раз через полтора года, на душе его и на лице распускалась та детская улыбка, которою он ни разу не улыбался с тех пор, как выехал из дома.
– Нет, послушай, – сказала она, – ты теперь совсем мужчина? Я ужасно рада, что ты мой брат. – Она тронула его усы. – Мне хочется знать, какие вы мужчины? Такие ли, как мы? Нет?
– Отчего Соня убежала? – спрашивал Ростов.
– Да. Это еще целая история! Как ты будешь говорить с Соней? Ты или вы?
– Как случится, – сказал Ростов.
– Говори ей вы, пожалуйста, я тебе после скажу.
– Да что же?
– Ну я теперь скажу. Ты знаешь, что Соня мой друг, такой друг, что я руку сожгу для нее. Вот посмотри. – Она засучила свой кисейный рукав и показала на своей длинной, худой и нежной ручке под плечом, гораздо выше локтя (в том месте, которое закрыто бывает и бальными платьями) красную метину.
– Это я сожгла, чтобы доказать ей любовь. Просто линейку разожгла на огне, да и прижала.
Сидя в своей прежней классной комнате, на диване с подушечками на ручках, и глядя в эти отчаянно оживленные глаза Наташи, Ростов опять вошел в тот свой семейный, детский мир, который не имел ни для кого никакого смысла, кроме как для него, но который доставлял ему одни из лучших наслаждений в жизни; и сожжение руки линейкой, для показания любви, показалось ему не бесполезно: он понимал и не удивлялся этому.
– Так что же? только? – спросил он.
– Ну так дружны, так дружны! Это что, глупости – линейкой; но мы навсегда друзья. Она кого полюбит, так навсегда; а я этого не понимаю, я забуду сейчас.
– Ну так что же?
– Да, так она любит меня и тебя. – Наташа вдруг покраснела, – ну ты помнишь, перед отъездом… Так она говорит, что ты это всё забудь… Она сказала: я буду любить его всегда, а он пускай будет свободен. Ведь правда, что это отлично, благородно! – Да, да? очень благородно? да? – спрашивала Наташа так серьезно и взволнованно, что видно было, что то, что она говорила теперь, она прежде говорила со слезами.
Ростов задумался.
– Я ни в чем не беру назад своего слова, – сказал он. – И потом, Соня такая прелесть, что какой же дурак станет отказываться от своего счастия?
– Нет, нет, – закричала Наташа. – Мы про это уже с нею говорили. Мы знали, что ты это скажешь. Но это нельзя, потому что, понимаешь, ежели ты так говоришь – считаешь себя связанным словом, то выходит, что она как будто нарочно это сказала. Выходит, что ты всё таки насильно на ней женишься, и выходит совсем не то.
Ростов видел, что всё это было хорошо придумано ими. Соня и вчера поразила его своей красотой. Нынче, увидав ее мельком, она ему показалась еще лучше. Она была прелестная 16 тилетняя девочка, очевидно страстно его любящая (в этом он не сомневался ни на минуту). Отчего же ему было не любить ее теперь, и не жениться даже, думал Ростов, но теперь столько еще других радостей и занятий! «Да, они это прекрасно придумали», подумал он, «надо оставаться свободным».