[:tr]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.
Therefore, there are some points that can be tested and taken security measures at a basic level, both in terms of the pentester and in terms of security management of your WordPress site.
These;
1. XML-RPC is a WordPress feature that allows data transfer by working as HTTP’s kind of transport mechanism and XML’s encoding mechanism.
• Using the xmlrpc.php file, the attacker can try hundreds of different passwords and usernames using just one command. In this way, it can disable security tools that can usually detect and prevent brute force attacks.
• By using the pingback feature in Xmlrpc.php, attackers can turn this into a DDoS attack. It can provide an almost unlimited number of IP addresses.
- To avoid the mentioned security vulnerabilities, simply disabling this file will provide protection up to a point.
2. oEmbed is designed to eliminate the need to copy and paste HTML code from the site hosting the media you want to upload. It supports videos, images, text and more.
• /wp-json/oembed/1.0/embed?url= author usernames etc due to mishandling of authors’ names, which allows the web application to obtain sensitive information through a request. information can be obtained.
Either this feature must be disabled or configured correctly.
3. Dompdf.php Dompdf is essentially a CSS 2.1 compatible HTML layout and rendering engine written (mostly) in PHP. It is a style driven builder. Downloads and reads external style sheets, inline style tags, and style properties of individual HTML elements. It also supports most HTML attributes.
• Multiple plugins can cause Dompdf unauthenticated Local File Inclusion (LFI) vulnerability.
Therefore, dompdf.php must be configured correctly.
4. As it is known, REST is a kind of service that processes HTTP requests. Thanks to this service, operations such as changing, updating, deleting the web resource can be performed using the standard functions of HTTP. Today, many mobile applications and wordpress applications provide their relations with the data layer with REST APIs.
• Sensitive data can be disclosed via rest api’s such as //example.com/wp-json/wp/v2/users. For example, usernames can be captured via the wp-json/wp/v2/users api.
To remove all default REST API endpoints you need to add the following code:
‘’<?php remove_action(‘rest_api_init’, ‘create_initial_rest_routes’, 99); ?>”
5. If the target wordpress site has the register feature enabled (disabled by default), calling the register link directly will get you into the site.
• Login is provided using https://wordpresssite/wp-login.php?action=register.
In order to prevent this, it should be checked whether the register feature is active or not.
6. It comes with a built-in code editor that allows you to edit your WordPress theme and plugin files directly from your WordPress admin area.
• When attackers access this area, it can pose a security risk because they could inject malicious php code there. That’s why we recommend turning it off.
You can do this easily by adding the following code to your wp-config.php file.
define( ‘DISALLOW_FILE_EDIT’, true );
7. In non-essential directories such as /wp-content/uploads/, PHP file execution should be disabled to avoid code execution vulnerability.
8. Directory browsing can be used by hackers to find out if you have any files with known vulnerabilities so they can exploit those files to gain access.
Find the .htaccess file in the root directory of your website. After that, you need to add the following line at the end of the .htaccess file:
After adding Options -Indexes, don’t forget to save the .htaccess file and upload it back to your site.
9. Wp-Admin login form screen should not be named as predictable. Login attempts should be limited and two-factor authentication should be introduced. You can also add additional password protection on the login form page at the server-side level, which will effectively block these requests.
[:]