hacktricks/pentesting-web/email-injections.md
2024-02-10 18:14:16 +00:00

10 KiB
Raw Blame History

E-posta Enjeksiyonları


Trickest kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.
Bugün Erişim Alın:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!

HackTricks'ı desteklemenin diğer yolları:

Gönderilen e-postaya enjekte edin

Gönderen argümanından sonra Cc ve Bcc enjekte edin

From:sender@domain.com%0ACc:recipient@domain.co,%0ABcc:recipient1@domain.com

Argüman Enjeksiyonu

Mesaj, alıcı ve alıcı1 hesaplarına gönderilecektir.

From:sender@domain.com%0ATo:attacker@domain.com

The message will be sent to the original recipient and the attacker account.

Konu argümanı enjekte edin

From:sender@domain.com%0ASubject:This is%20Fake%20Subject

Sahte konu, orijinal konuya eklenir ve bazı durumlarda onun yerine geçer. Bu, posta servisinin davranışına bağlıdır.

Mesajın gövdesini değiştirin

İki satır boşluk ekleyin, ardından mesajın gövdesini değiştirmek için mesajınızı yazın.

From:sender@domain.com%0A%0AMy%20New%20%0Fake%20Message.

PHP mail() fonksiyonunun sömürülmesi

PHP'de, mail() fonksiyonu, e-posta göndermek için kullanılan bir işlevdir. Ancak, bu fonksiyonun yanlış kullanılması, e-posta enjeksiyonu saldırılarına yol açabilir. E-posta enjeksiyonu saldırıları, kötü niyetli kullanıcıların hedef sisteme zararlı kod enjekte etmesine olanak tanır.

E-posta enjeksiyonu saldırıları, genellikle kullanıcı tarafından sağlanan verilerin doğrudan e-posta içeriğine eklenmesiyle gerçekleştirilir. Bu, saldırganın e-posta gövdesine ek komutlar veya ek e-posta başlıkları eklemesine olanak tanır.

Bu saldırıyı gerçekleştirmek için, saldırganın hedef sisteme zararlı bir e-posta göndermesi gerekmektedir. Zararlı e-posta, hedef sistemin e-posta sunucusu tarafından işlenirken, saldırganın istediği komutları çalıştırmasına olanak tanır.

E-posta enjeksiyonu saldırılarını önlemek için, kullanıcı tarafından sağlanan verilerin doğru bir şekilde doğrulanması ve filtrelenmesi önemlidir. E-posta adresleri, başlıklar ve gövde içeriği gibi verilerin doğrulanması ve gerektiğinde temizlenmesi gerekmektedir.

Ayrıca, mail() fonksiyonunun güvenli bir şekilde kullanılması için, e-posta adreslerinin ve diğer verilerin doğru bir şekilde biçimlendirilmesi gerekmektedir. Örneğin, e-posta adreslerinin geçerli bir formatta olduğunu doğrulamak için uygun doğrulama yöntemleri kullanılmalıdır.

E-posta enjeksiyonu saldırılarına karşı korunmak için, güvenlik açıklarını tespit etmek ve düzeltmek için düzenli bir güvenlik denetimi yapılması önemlidir. Ayrıca, güncel ve güvenli bir PHP sürümünün kullanılması da önemlidir, çünkü daha eski sürümler genellikle bu tür saldırılara daha savunmasızdır.

# The function has the following definition:

php --rf mail

Function [ <internal:standard> function mail ] {
- Parameters [5] {
Parameter #0 [ <required> $to ]
Parameter #1 [ <required> $subject ]
Parameter #2 [ <required> $message ]
Parameter #3 [ <optional> $additional_headers ]
Parameter #4 [ <optional> $additional_parameters ]
}
}

5. parametre ($additional_parameters)

Bu bölüm, bir saldırganın bunu kontrol ettiği varsayılarak bu parametreyi nasıl istismar edeceği üzerine olacak.

Bu parametre, PHP'nin, ikili sendmail'i çağırmak için kullanacağı komut satırına eklenecektir. Bununla birlikte, escapeshellcmd($additional_parameters) işleviyle temizlenecektir.

Bir saldırgan, bu durumda sendmail için çıkarılacak parametreleri enjekte edebilir.

/usr/sbin/sendmail'in uygulama farklılıkları

sendmail arayüzü, sistemde yüklü olan MTA e-posta yazılımı (Sendmail, Postfix, Exim vb.) tarafından sağlanır. Temel işlevsellik (-t -i -f parametreleri gibi) uyumluluk nedenleriyle aynı kalırken, diğer işlevler ve parametreler, yüklü olan MTA'ya bağlı olarak büyük ölçüde değişir.

İşte sendmail komutu/arayüzünün farklı man sayfalarından birkaç örnek:

Sendmail'in kökenine bağlı olarak, bunları kötüye kullanmak ve dosyaları sızdırmak veya hatta keyfi komutlar çalıştırmak için farklı seçenekler keşfedilmiştir. Nasıl yapıldığını buradan kontrol edin.

E-posta adına enjekte etme

E-postanın yoksayılan kısımları

+, - ve {} sembolleri nadir durumlarda etiketleme için kullanılabilir ve çoğu e-posta sunucusu tarafından yoksayılır.

Başlangıçta veya sonunda parantezler () arasındaki yorumlar da yoksayılır.

Beyaz liste atlatma

https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0

Alıntılar

https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0

IP'ler

Kare parantezler arasında IP'leri alan adı olarak da kullanabilirsiniz:

  • john.doe@[127.0.0.1]
  • john.doe@[IPv6:2001:db8::1]

Diğer zafiyetler

https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0

Üçüncü taraf SSO

XSS

Github veya salesforce gibi bazı hizmetler, üzerinde XSS yükleri olan bir e-posta adresi oluşturmanıza izin verir. Bu sağlayıcıları başka hizmetlere giriş yapmak için kullanabilir ve bu hizmetler e-postayı doğru bir şekilde temizlemiyorsa XSS oluşturabilirsiniz.

Hesap Ele Geçirme

Bir SSO hizmeti, verilen e-posta adresini doğrulamadan bir hesap oluşturmanıza izin veriyorsa (örneğin salesforce) ve daha sonra bu hesabı salesforce'a güvenen başka bir hizmete giriş yapmak için kullanabilirseniz, herhangi bir hesaba erişebilirsiniz.
Salesforce, verilen e-postanın doğrulanıp doğrulanmadığını belirtir, ancak uygulama bu bilgiyi dikkate almalıdır.

Yanıt Adresi

E-posta gönderirken Kimden: sirket.com ve Yanıt Adresi: saldırgan.com kullanabilirsiniz ve e-posta içeriden gönderildiği için herhangi bir otomatik yanıt gönderilirse, saldırgan bu yanıtı alabilir.

Sert Geri Dönüş Oranı

AWS gibi bazı hizmetler, genellikle %10 olarak ayarlanan bir Sert Geri Dönüş Oranı adı verilen bir eşik uygular. Bu, özellikle e-posta teslimat hizmetleri için kritik bir ölçüttür. Bu oran aşıldığında, AWS'nin e-posta hizmeti gibi bir hizmet, e-posta gönderme yeteneklerinizi askıya alabilir veya engelleyebilir.

Sert geri dönüş, alıcının adresinin geçersiz veya mevcut olmadığı için gönderenin geri döndürülen bir e-postasıdır. Bu, e-postanın mevcut olmayan bir adrese, gerçek olmayan bir alan adına veya alıcı sunucusunun e-postaları kabul etmeyi reddetmesi gibi çeşitli nedenlerle olabilir.

AWS bağlamında, 1000 e-posta gönderirseniz ve bunlardan 100'ü sert geri dönüşlere neden olursa (geçersiz adresler veya alanlar gibi nedenlerle), bu %10'luk bir sert geri dönüş oranı anlamına gelir. Bu orana ulaşmak veya aşmak, AWS SES (Basit E-posta Hizmeti)'nin e-posta gönderme yeteneklerinizi engellemesine veya askıya almasına neden olabilir.

Kesintisiz e-posta hizmeti sağlamak ve gönderen itibarını korumak için düşük bir sert geri dönüş oranını korumak önemlidir. Posta listelerinizdeki e-posta adreslerinin kalitesini izlemek ve yönetmek, bunu başarma konusunda önemli ölçüde yardımcı olabilir.

Daha ayrıntılı bilgi için AWS'nin sert geri dönüş ve şikayetlerle ilgili resmi belgelerine başvurulabilir: AWS SES Sert Geri Dönüş İşleme.

Referanslar

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!

HackTricks'ı desteklemenin diğer yolları: