10 KiB
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ı:
- Şirketinizi HackTricks'te reklam vermek isterseniz veya HackTricks'i PDF olarak indirmek isterseniz ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerini edinin
- The PEASS Family koleksiyonumuzu keşfedin, özel NFT'ler
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @carlospolopm'ı takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.
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 MTA: http://www.sendmail.org/~ca/email/man/sendmail.html
- Postfix MTA: http://www.postfix.org/mailq.1.html
- Exim MTA: https://linux.die.net/man/8/eximReferences
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.
- Ör. john.doe(intigriti)@example.com → john.doe@example.com
Beyaz liste atlatma
Alıntılar
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
Üçü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
- https://resources.infosecinstitute.com/email-injection/
- https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html
- https://drive.google.com/file/d/1iKL6wbp3yYwOmxEtAg1jEmuOf8RM8ty9/view
- https://www.youtube.com/watch?app=desktop&v=4ZsTKvfP1g0
htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!
HackTricks'ı desteklemenin diğer yolları:
- Şirketinizi HackTricks'te tanıtmak veya HackTricks'i PDF olarak indirmek için ABONELİK PLANLARINI kontrol edin!
- Resmi PEASS & HackTricks ürünlerine göz atın.
- Özel NFT'lerden oluşan koleksiyonum