[ÖNEMLİ DUYURU] PHPMailer KULLANAN HERKESİN BAKMASINI RİCA EDİYORUM!
17
●1.412
- 30-12-2016, 22:41:17Kimlik doğrulama veya yönetimden onay bekliyor.Yüzeysel olarak baktığımda güvenlik zaafiyeti sadece kod çalıştırabilmeyi mümkün kılmaktadır. Bu zaafiyeti kullanabilmek için de PHP 'nin harici komut yürütme fonksiyonlarının devre dışı bırakılmamış olması gerekiyor. Root yetkisine ulaşabilmek için de hedef sunucuda kritik seviyede (kernel, servis..) bir güvenlik zaafiyeti daha tespit edilmesi gerek.saintx adlı üyeden alıntı: mesajı görüntüle
--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 22:41:17 -->-> Daha önceki mesaj 22:16:14 --
Zend Framework kullananlar içinde geçerli artık https://www.exploit-db.com/exploits/40979/ - 30-12-2016, 23:01:58cPanel vb. PHPSU kullananlarda bu sorun olmaz. Onlarda kullanıcıları ve grupları ayırdığından anca yazılım dosyalarını silebilir. Aslında bu bile başlı başına bi' dertPROOYUN adlı üyeden alıntı: mesajı görüntüle
- 01-01-2017, 06:23:26Kimlik doğrulama veya yönetimden onay bekliyor.PROOYUN adlı üyeden alıntı: mesajı görüntüle
Benim anlamadığım nokta, youtube de video çeken kişi, siteye resim yüklüyor. Oysa phpmailer class'ı i içerisinde bunu yapabilmesi için ne: copy nede move_uploaded_file gibi bir kodlama mevcut değil.
Henüz bunun doğru olup olmadığını net şekilde anlamadım. Sanırım emin olmak için paylaşılan test etmek gerek.
Ayrıca dışarıdan class.phpmailer.php dosyasını çağırmayı engellemek ve sadece sitenin kendine ait olan php dosyalarının class.phpmailer.php 'i çağırabilmesini sağlamakda önemli bir çözüm olabilir, php sayfalara define eklenerek bu yapılabilir.
gibi gibi:
if (!defined('IN_PHPBB')) { die('Hacking attempt!'); exit; } - 01-01-2017, 22:05:39Laravel icin gecerli mi bu acik ?saintx adlı üyeden alıntı: mesajı görüntüle
- 02-01-2017, 14:33:15Güncel sürüm ve güncel bağımlılıkları (dependency) yüklemediyseniz; evet, geçerli!kingofseo adlı üyeden alıntı: mesajı görüntüle
- 02-01-2017, 14:48:28Açığın nedeni Setfrom methodunun escape edilmemesinden kaynaklanıyor. Yani ;
$message->setFrom($email_from, 'Attacker');
burada kullanılan mail adresini direk POST , GET yada Session vb kullanıcının erişebileceği bir yapıda kullanıyorsanız dışarıdan kod çalıştırmaya imkan veriyor. Zaten kod çalıştıktan sonra da shell yüklemesi yapmak zor değil.
En garanti yol class'ı güncellemek. bu açık çok uzun zamandır mevcuttu ve wordpress'in contact form vb eklentilerinde ciddi zararlar verilmiş. - 03-01-2017, 02:20:54Big_Turk adlı üyeden alıntı: mesajı görüntüle
Gerçekten bu kadar basit birşeyden kaynaklanıyorsa orada setfrom'a $email_from i girerken bir mail kontrolü yapmak mantıklı olacaktır:
preg_match("/[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+/i", $aaa, $bbb);Hatta aklıma geldi de, bu daha iyi olur:
preg_match("/[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+/i", mysql_real_escape_string($aaa), $bbb);Kodun çalıştığı test edilmiştir. - 03-01-2017, 03:01:27Bu atak Swiftmailer'de PHPMailer'de bilimum tüm paketlerde çalışıyor. Yani, major frameworklerde (Laravel, Symfony etc.) WordPress, Joomla! (? Emin değilim.) hepsi için geçerli. Paketlerin güncel sürümleri yayınlandı. Güncellemelerinizi yapmanızı şiddetle tavsiye ederim.