E-mail-injektion er en angrebsteknik, der bruges til at udnytte mailservere og mailapplikationer, der konstruerer IMAP/SMTP-udtryk fra brugerinput, som ikke er korrekt valideret. Afhængigt af typen af operatører, der bruges af angriberen, er der to typer injektioner: IMAP-injektion og SMTP-injektion .
IMAP / SMTP-injektioner giver adgang til en mailserver, der tidligere ikke var tilgængelig. I nogle tilfælde har disse interne systemer ikke det samme sikkerhedsniveau som resten af infrastrukturen. På denne måde kan angribere opleve, at mailserveren giver de bedste resultater med hensyn til udnyttelse. Denne metode undgår mulige begrænsninger, der kan eksistere på applikationsniveau ( CAPTCHA , maksimalt antal hits osv.).
Den typiske struktur for en IMAP/SMTP-injektion er som følger:
Header: slutningen af forventet kommando Body: indsprøjtning af nye kommandoer Sidefod: start af forventet kommandoDet er vigtigt at bemærke, at for at IMAP/SMTP-kommandoerne kan udføres, skal de tidligere kommandoer være afsluttet med CRLF-sekvensen (%0d%0a).
Nogle eksempler på angreb ved hjælp af IMAP/SMTP-injektionsteknikken er:
IMAP-injektion Fordi injektionen finder sted på en IMAP-server, skal formatet og specifikationerne for denne protokol respekteres. Mail-applikationer interagerer normalt med IMAP-serveren for at udføre deres funktioner i de fleste tilfælde og er derfor mere sårbare over for denne type angreb.
Lad os se på et eksempel på en IMAP-injektion ved hjælp af meddelelseslæsningsfunktionen. Antag, at en applikation bruger webmailparameteren "message_id" til at gemme id'et for de beskeder, som brugeren ønsker at læse. Når en anmodning indeholdende et meddelelses-id sendes, vil det se sådan ud:
http://<webmail>/read_email.php? message_id = <nummer>Lad os antage, at php-scriptet "read_email.php", der er ansvarlig for at vise den meddelelse, der er knyttet til det, sender en anmodning til IMAP-serveren uden at udføre nogen kontrol på <number>-værdien angivet af brugeren. Kommandoen sendt til mailserveren ser sådan ud:
FETCH <number> BODY[HEADER]
På grund af dette kunne en angriber forsøge et IMAP-injektionsangreb gennem parameteren "message_id" brugt af applikationen til at kommunikere med serveren. For eksempel kan IMAP-kommandoen "CAPABILITY" indtastes ved at bruge følgende sekvens:
http://<webmail>/read_email.php?message_id=1 BODY[HEADER]%0d%0aV001 KAPABILITET%0d%0aV002 FETCH 1Dette vil udstede følgende sekvens af IMAP-kommandoer på serveren:
???? HENT 1 BODY[HEADER] V001 FUNKTION V002 FETCH 1 BODY[HEADER]hvor:
Overskrift = 1 BODY[HEADER] Brødtekst = %0d%0aV100 KAPABILITET%0d%0a Sidefod = V101 FETCH 1SMTP-injektion Fordi kommandoinjektion udføres under en SMTP-server, skal formatet og specifikationerne for denne protokol respekteres. På grund af begrænsningen af driften af applikationer, der bruger SMTP-protokollen, er vi hovedsageligt begrænset til at sende e-mail. Brugen af SMTP-injektion kræver, at brugeren er autentificeret inden, så det er nødvendigt, at angriberen har en gyldig webmail.
Antag, at et e-mail-program begrænser antallet af e-mails, der sendes i en valgt tidsperiode. SMTP-injektion vil give dig mulighed for at omgå denne begrænsning ved blot at tilføje RCPT-kommandoer som retninger, i den mængde, som angriberen ønsker:
POST http://<webmail>/compose.php HTTP/1.1 ----------------------------134475172700422922879687252 Indhold-Disposition: form-data; navn = "emne" prøve . MAIL FRA: ekstern@domæne1.com RCPT TIL: [email protected] RCPT TIL: [email protected] RCPT TIL: [email protected] RCPT TIL: [email protected] Data Dette er et eksempel på SMTP-injektionsangreb . ----------------------------134475172700422922879687252 ...Dette vil generere følgende sekvens af SMTP-kommandoer, der sendes til mailserveren:
MAIL FRA: <mailfrom> RCPT TIL: <rcptto> DATA Emne: test . MAIL FRA: eksternt@domæne.com RCPT TIL: [email protected] RCPT TIL: [email protected] RCPT TIL: [email protected] RCPT TIL: [email protected] DATA Dette er et eksempel på SMTP-injektionsangreb . ...