Injecție de e-mail

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 12 februarie 2021; verificările necesită 2 modificări .

Injecția de e-mail  este o tehnică de atac folosită pentru a exploata serverele de e-mail și aplicațiile de e-mail care construiesc expresii IMAP/SMTP din intrarea utilizatorului care nu este validată corespunzător. În funcție de tipul de operatori utilizați de atacator, există două tipuri de injecții: injecție IMAP și injecție SMTP .

Injecțiile IMAP / SMTP permit accesul la un server de e-mail care anterior nu era accesibil. În unele cazuri, aceste sisteme interne nu au același nivel de securitate ca și restul infrastructurii. În acest fel, atacatorii pot descoperi că serverul de e-mail oferă cele mai bune rezultate în ceea ce privește exploatarea. Această metodă evită eventualele restricții care pot exista la nivelul aplicației ( CAPTCHA , numărul maxim de accesări etc.).

Structura tipică a unei injecții IMAP/SMTP este următoarea:

Antet: sfârșitul comenzii așteptate Corp: injectare de comenzi noi Subsol: începutul comenzii așteptate

Este important de remarcat că, pentru ca comenzile IMAP/SMTP să fie executate, comenzile anterioare trebuie să fi fost terminate cu secvența CRLF (%0d%0a).

Câteva exemple de atacuri care utilizează tehnica de injecție IMAP/SMTP sunt:

Exemple de scenarii de atac

Injectarea IMAP Deoarece injectarea are loc pe un server IMAP, formatul și specificațiile acestui protocol trebuie respectate. Aplicațiile de e-mail interacționează de obicei cu serverul IMAP pentru a-și îndeplini funcțiile în majoritatea cazurilor și, prin urmare, sunt mai vulnerabile la acest tip de atac.

Să ne uităm la un exemplu de injecție IMAP folosind funcționalitatea de citire a mesajelor. Să presupunem că o aplicație folosește parametrul webmail „message_id” pentru a stoca id-ul mesajelor pe care utilizatorul dorește să le citească. Când este trimisă o solicitare care conține un ID de mesaj, va arăta astfel:

http://<webmail>/read_email.php? mesaj_id = <număr>

Să presupunem că scriptul php „read_email.php”, responsabil de afișarea mesajului asociat acestuia, trimite o solicitare către serverul IMAP fără a efectua vreo verificare asupra valorii <număr> specificată de utilizator. Comanda trimisă către serverul de e-mail va arăta astfel:

FETCH <number> BODY[HEADER]

Din această cauză, un atacator ar putea încerca un atac de injecție IMAP prin parametrul „message_id” utilizat de aplicație pentru a comunica cu serverul. De exemplu, comanda IMAP „CAPABILITY” poate fi introdusă folosind următoarea secvență:

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

Aceasta va emite următoarea secvență de comenzi IMAP pe server:

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

Unde:

Antet = 1 BODY[HEADER] Corp = %0d%0aV100 CAPABILITY%0d%0a Subsol = V101 FETCH 1

Injectarea SMTP Deoarece injectarea comenzii este efectuată sub un server SMTP, formatul și specificațiile acestui protocol trebuie respectate. Datorită limitării operațiunilor aplicațiilor care utilizează protocolul SMTP, ne limităm în principal la trimiterea de e-mail. Utilizarea injectării SMTP necesită ca utilizatorul să fie autentificat înainte, deci este necesar ca atacatorul să aibă un webmail valid.

Să presupunem că o aplicație de e-mail limitează numărul de e-mailuri trimise într-o perioadă de timp selectată. Injecția SMTP vă va permite să ocoliți această limitare prin simpla adăugare de comenzi RCPT ca instrucțiuni, în cantitatea pe care atacatorul o dorește:

POST http://<webmail>/compose.php HTTP/1.1 -----------------------------134475172700422922879687252 Conținut-Dispoziție: formular-date; nume="subiect" Test . MAIL DE LA: [email protected] RCPT către: [email protected] RCPT către: [email protected] RCPT către: [email protected] RCPT LA: [email protected] Date Acesta este un exemplu de atac cu injecție SMTP . -----------------------------134475172700422922879687252 ...

Aceasta va genera următoarea secvență de comenzi SMTP care vor fi trimise către serverul de e-mail:

MAIL FROM: <mailfrom> RCPT TO: <rcptto> DATE Subiect: test . MAIL DE LA: [email protected] RCPT către: [email protected] RCPT către: [email protected] RCPT către: [email protected] RCPT LA: [email protected] DATE Acesta este un exemplu de atac cu injecție SMTP . ...

Link -uri