Günümüz web uygulaması dünyasında; kurulum aşamasında pratik, kullanım açısından birçok insana hitap eden, ekonomik boyutta kendi kulvarındaki mimarilere nazaran daha az maliyetli bir yapıya sahip olan WordPress web uygulamaları Third (3.) parti plugin ve hazır temalar kullanılması yönünden birçok güvenlik zafiyetini de beraberinde getirmektedir.
Dolayısı ile hem pentest yapan kişi açısından hem de WordPress sitenizin güvenlik yönetimi açısından temel seviyede, ilk bakışta test edilecek ve güvenlik önlemleri alınabilecek bazı noktalar vardır.
Bunlar;
1- XML-RPC, HTTP’nin bir tür taşıma mekanizması ve XML’nin kodlama mekanizması şeklinde çalışarak veri transferine olanak tanıyan bir WordPress özelliğidir.
- Saldırgan xmlrpc.php dosyasını kullanarak sadece bir komut kullanarak yüzlerce farklı şifre ve kullanıcı adı deneyebilmektedir. Bu sayede genellikle brute force saldırılarını tespit ederek önleyebilen güvenlik araçlarını devre dışı bırakabilmektedir.
- Xmlrpc.php’deki pingback özelliği kullanılarak, saldırganlar bunu DDoS saldırısına dönüştürebilmektedir. Neredeyse sınırsız sayıda IP adresi sağlayabilmektedir.
Bahsi edilen güvenlik zafiyetlerinden korunmak için basitçe bu dosyayı devre dışı bırakmak, bir noktaya kadar koruma sağlayacaktır.
2- oEmbed, yüklemek istediğiniz medyayı barındıran siteden, HTML kodunu kopyalayıp yapıştırma ihtiyacını ortadan kaldırmak için tasarlanmıştır. Videoları, resimleri, metni ve daha fazlasını destekler.
- /wp-json/oembed/1.0/embed?url= web uygulamasına yapılan istek aracılığıyla hassas bilgileri elde etmesine olanak tanıyan, yazarların isimlerinin yanlış işlenmesinden kaynaklı yazar kullanıcı adları vb. bilgiler ele geçirilebilmektedir.
Ya bu özellik devre dışı bırakılmalı ya da doğru yapılandırılmalıdır.
3- Dompdf.php Dompdf özünde (çoğunlukla) PHP ile yazılmış CSS 2.1 uyumlu bir HTML düzeni ve işleme motorudur. Stil odaklı bir oluşturucudur. Harici stil sayfalarını, satır içi stil etiketlerini ve ayrı HTML öğelerinin stil özelliklerini indirir ve okur. Aynı zamanda çoğu HTML özniteliğini de destekler.
- Birden çok eklentinin Dompdf kimliği doğrulanmamış Yerel Dosya Ekleme (LFI) güvenlik açığına sebep olabilir.
Dolayısı ile dompdf.php doğru yapılandırılmalıdır.
4- REST bilindiği üzere, HTTP isteklerini işleyen bir tür servistir. Bu servis sayesinde HTTP’nin standart işlevlerini kullanarak web kaynağı üzerinde değiştirme, güncelleme, silme gibi işlemler yapılabilmektedir. Bugün pek çok mobil uygulama ve wordpress uygulamaları veri katmanı ile ilişkilerini REST API’ler ile sağlamaktadır.
- //example.com/wp-json/wp/v2/users gibi rest api’ler üzerinden hassas veriler ifşa edilebilmektedir. Örneğin, wp-json/wp/v2/users api üzerinden kullanıcı adları ele geçirilebilir.
Tüm varsayılan REST API uç noktalarını kaldırmak için aşağıdaki kodu eklemeniz gerekir:
‘’<?php remove_action(‘rest_api_init’, ‘create_initial_rest_routes’, 99); ?>’’
5- Eğer hedef wordpress sitede register özelliği etkin hale getirilmişse (varsayılan olarak devre dışıdır) doğrudan register linkini çağırmak sizi site içine sokacaktır.
- https://wordpressitesi/wp-login.php?action=register kullanılarak giriş sağlanır.
Bunu engellemek adına register özelliğinin etkin olup olmadığı, kontrol edilmelidir.
6- WordPress temanızı ve eklenti dosyalarınızı doğrudan WordPress yönetici alanınızdan düzenlemenize olanak tanıyan yerleşik bir kod düzenleyicisiyle birlikte gelir.
- Saldırganlar bu alana eriştiğinde burada bir güvenlik riski oluşturabilir, çünkü burada zararlı bir php kodu enjekte edebileceklerdir. Bu yüzden kapatmanızı öneririz.
Aşağıdaki kodu wp-config.php dosyanıza ekleyerek bunu kolayca yapabilirsiniz.
define( ‘DISALLOW_FILE_EDIT’, true );
7- /wp-content/uploads/ gibi gerekli olmayan dizinlerde, kod yürütme zafiyetini engellemek için PHP dosya yürütmesi devre dışı bırakılmalıdır.
8- Dizine göz atma, bilgisayar korsanları tarafından bilinen güvenlik açıklarına sahip herhangi bir dosyanız olup olmadığını öğrenmek için kullanılabilir, böylece erişim elde etmek için bu dosyalardan yararlanabilirler.
Web sitenizin kök dizinindeki .htaccess dosyasını bulun. Bundan sonra, .htaccess dosyasının sonuna aşağıdaki satırı eklemeniz gerekir:
Options -Indexes ekledikten sonra .htaccess dosyasını kaydedip sitenize geri yüklemeyi unutmayın.
9- Wp-Admin login form ekranı tahmin edilebilir türden isimlendirilmemelidir. Giriş denemeleri sınırlandırılmalı, iki faktörlü kimlik doğrulama getirilmelidir. Aynı zamanda login form sayfasında sunucu tarafı düzeyinde, bu istekleri etkili bir şekilde engelleyecek ek parola koruması ekleyebilirsiniz.
KVKK, ISO 27001, Bilgi ve İletişim Güvenliği Rehberi, ISO 27701, Bilgi Güvenliği, Siber Güvenlik ve Bilgi Teknolojileri konularında destek ve teklif almak için lütfen