bWAPP Mail Header Injection

1 year ago 70
BOOK THIS SPACE FOR AD
ARTICLE AD

Mail Header Injection Nedir?

Mail Header Inection, Bir saldırganın web sayfalarındaki e-posta iletişim formları gibi e-postayla ilgili işlevleri kötüye kullanarak kurbanlara kötü amaçlı e-posta göndermesine izin veren bir güvenlik açığıdır. Email Header Injection, SMTP header injection veya mail command injection olarakta adlandırılır.

Low Level

SMTP ayarlarınızı ayarlamadıysanız bWAPP’ın “admin/settings.php” kısmından ayarlayın. Ben örnek olarak Postfix ile localde “itsecgames.com” adında bir SMTP sunucusu yapılandırdım.

Burada bir mail gönderme alanı mevcut ve “E-mail us your questions at bwapp@mailinator.com.” diye bir yazı ile karşılaşıyoruz. Soruları bwapp@mailinator.com mail adresine göndermemizi istemekte.

Gerekli alanları doldurup maili gönderdiğimizde ekrana “Your message has been sent to our master bee!” geldiğini gördük.

Mailinator üzerinden mailimizi kontrol ettiğimizde de mailin geldiğini gördük.

E-mail alanına “1234" yazıp mailimizi böyle yolladığımızda,

E-mail kısmına yazdığımız “1234" ü bir mail olarak tanımlayıp “1234@itsecgames.com” den mail gelmiş gibi görünmekte. E-mail alanında bir kontrol olmadığı için saldırganlar “itsecgames.com” üzerinden Sosyal Mühendislik saldırıları yapabilirler.

İsteğimizi Burp Suite ile yakalayıp Repeater modülüne attık ve “&email=bwappsender@itsecgames.com” den sonra “%0ACc:bwapp@yopmail.com” ekledik ve isteğimizi bu şekilde sunucuya yolladık.

Mailinator da “bwapp@yopmail.com” mail adresini maili “cc” tagı ile maile dahil ettik.

Aynı mailin YopMail’e de geldiğini gözlemledik. Maile başarılı bir şekilde “Cc” tagı eklediğimiz gözlemledik.

“Cc” alanı Carbon Copy anlamına gelirken, “Bcc” alanı Blind Carbon Copy anlamına gelir. “Cc” alanı, mail gönderen kişinin birincil mail alıcısından başka birine mailin karbon kopyasını göndermesine olanak tanır. “Bcc” de mailin bir karbon kopyasını birine göndermek için kullanılır.

Medium & Hard Level

E-mail alanına tekrardan “1234” yazıp yollamak istediğimizde “Enter a valid e-mail address!” diye bir hata vermekte ve geçerli bir mail olmadığını söylemekte.

Uygulamanın kaynak kodunu incelediğimizde “email_check_2” adında bir fonksiyon olduğunu gördük.

Fonksiyonda PHP’de ki “FILTER_VALIDATE_EMAIL” kullanıldığını gözlemledik. Bu E-mail adreslerinin doğru olup olmadığını kontrol eder.

İsteğimizi tekrardan Burp Suite ile yakalayıp Repeater modülüne attık ve “&email=bwappsender@itsecgames.com” den sonra “%0ACc:bwapp@yopmail.com” ekledik ve isteğimizi bu şekilde sunucuya yolladık. Ekrana “Enter a valid e-mail address!” geldiğini gördük.

Mailinatordan mailimizi kontrol ettiğimizde mailin geldiğini yalnız Low Leveldaki gibi “Cc” eklemediğini gözlemledik.

Uygulamanın kaynak kodunu incelediğimizde “maili_check_2” adında bir fonksiyon oluğunu gördük.

Bu fonksiyonda PHP’de ki “FILTER_SANITIZE_EMAIL” kullanıldığını gözlemledik. Bu E-mail adreslerindeki “Illegal Characters” dediğimiz geçersiz karakterleri temizler. “str_replace” fonksiyonun “\n” “\r” ve “bcc” gibi karakterleri boşluğa çevirmekte. Mail Header Injectiona karşı e-mail alanların kontrolü ve illegal karakterlerin engellenmesi gibi önlemler alınabilir. PHP’de ki “FILTER_SANITIZE_EMAIL” “FILTER_VALIDATE_EMAIL” ve “str_replace” kullanılabilir.

Yusuf Barış | Cyber Security Researcher

Read Entire Article