Wordpress Xmlrpc.php Hacking + Tool

J4LL4DJ4LL4D is verified member.

Kayıtlı Kullanıcı
Kayıtlı Kullanıcı
Puan 3
Çözümler 0
Katılım
17 Ocak 2025
Mesajlar
15
Tepkime puanı
3
Puan
3
@J4LL4DJ4LL4D is verified member.

Merhabalar. Forumdakı ilk paylaşımımda hoşgördüm sizleri. Bu yazıda WP sitelerde bolca namını duyduğumuz XMLRPC hakkında biraz konuşucaz. Geçelim yazımıza.

WordPress XMLRPC Nedir?

WordPress XMLRPC, diğer web siteleri ve yazılımların WordPress sitenizle etkileşime geçmesini sağlar. Bu özellik, bir API olarak da bilinir. XMLRPC’nin kullanım örnekleri arasında yeni yazılar oluşturmak, yorum eklemek, sayfaları silmek ve WordPress’te yaygın olarak kullanılan pingback işlemleri bulunur.

XMLRPC, adından da anlaşılacağı üzere XML verisi gönderip alarak çalışır. WordPress’te XMLRPC’den sorumlu dosya xmlrpc.php’dir. Bu dosya, gelen XML verisini işler ve yanıtı yine XML formatında döner.

WordPress XMLRPC Bir Güvenlik Sorunu mu?

XMLRPC, birçok farklı uygulama tarafından kullanılan standart bir protokoldür. WordPress kurulumlarında varsayılan olarak etkinleştirildiği için, WordPress sitelerinin güvenliği üzerinde olumsuz etkisi olabileceği endişesi bulunmaktadır. Bu makalede, XMLRPC’nin güvenliği ele alınacak ve endişe duyulması gerekip gerekmediği değerlendirilecektir.

XMLRPC İstekleri Nasıl Görünür?

XML:
Tipik bir API isteği aşağıdaki gibi görünür:

<?xml version="1.0" encoding="iso-8859-1"?>
<methodCall>
  <methodName>demo.sayHello</methodName>
  <params>
    <param></param>
  </params>
</methodCall>

xmlrpc.php dosyasına geçerli XML verisi bir POST isteği olarak gönderilmelidir. Linux’ta bunu yapmak için en kolay yöntem cURL kullanmaktır. Aşağıdaki komut, ‘demo.sayHello.txt’ dosyasındaki XML içeriğini uzak WordPress API’sine POST isteği olarak gönderir:

curl --data @demo.sayHello.txt [URL]http://www.sanalordu.com/xmlrpc.php[/URL]<br>

Yanıt şu şekilde görünecektir:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
  <params>
    <param>
      <value>
        <string>Hello!</string>
      </value>
    </param>
  </params>
</methodResponse>

WordPress XMLRPC Etkin Olduğunda Güvenlik Riskleri Nelerdir?

Yıllar boyunca, WordPress XMLRPC API’sini etkileyen birçok güvenlik sorunu ortaya çıkmıştır. wpscan.com üzerinde yapılan hızlı bir aramada aşağıdaki güvenlik açıkları görülebilir:

qzaar09.png


SQL Injection (SQL Enjeksiyonu)
Server-Side Request Forgery (SSRF)
Denial of Service (DoS)
ve diğerleri.
Bu açıklar WordPress 1.5.1.2 sürümüne kadar uzanmaktadır.


XMLRPC Nasıl Devre Dışı Bırakılır?

XMLRPC’yi devre dışı bırakmak için birçok güvenlik eklentisi bulunmaktadır. Ancak, kendi WordPress güvenlik eklentimizde XMLRPC kontrolünü uygularken, bu eklentilerin çoğunun XMLRPC’yi tamamen devre dışı bırakmadığını gördük. Çoğu eklenti yalnızca XMLRPC arayüzündeki kimlik doğrulamayı devre dışı bırakır ve bu yalnızca kimlik doğrulama gerektiren yöntemlere erişimi engeller. Ancak kimlik doğrulama gerektirmeyen yöntemler hala herkese açık kalır.

Kimlik doğrulamanın devre dışı bırakılması saldırı yüzeyini önemli ölçüde azaltır. Ancak, kimlik doğrulama gerektirmeyen yöntemlerin geçmişte ciddi güvenlik açıklarına sahip olduğu bilinmektedir. Örneğin, pingback SSRF (Server-Side Request Forgery) güvenlik açığı bunlardan biridir.

XMLRPC’ye erişimin tamamen engellendiğinden emin olmanın tek yolu, bunu web sunucusu yapılandırması üzerinden yapmaktır. Aşağıda en popüler web sunucuları için örnekler verilmiştir:

Nginx

NGINX:
location = /xmlrpc.php {
    deny all;
    return 404;
}

Apache

Ana Apache yapılandırma dosyanıza aşağıdaki kodu ekleyebilir veya WordPress dizininde bir .htaccess dosyası oluşturarak şu içeriği kullanabilirsiniz:
Apache yapılandırması:
<Files "xmlrpc.php">
  Require all denied
</Files>

Kaynak Koddan Devre Dışı Bırakma

Scott Brown Consulting, XMLRPC’yi WordPress veya bir WordPress eklentisinden devre dışı bırakmak için bir yöntem belgelemiştir. Bu, xmlrpc_methods filtresini kullanır ve şu şekilde uygulanır:

PHP:
// XMLRPC'yi devre dışı bırak
function remove_xmlrpc_methods( $methods ) {
  return array();
}
add_filter( 'xmlrpc_methods', 'remove_xmlrpc_methods' );

XMLRPC’nin Devre Dışı Olduğunu Kontrol Etmek

WordPress güvenlik eklentimiz, XMLRPC’nin etkin olup olmadığını algılar. Ayrıca, hem kimlik doğrulamalı hem de kimlik doğrulamasız erişimin engellenip engellenmediğini de test eder. Yukarıda belirttiğimiz gibi, çoğu eklenti kimlik doğrulamasız yöntemlere hala izin verebilir.

XMLRPC tamamen etkinse, şu uyarıyı göstereceğiz:

XMLRPC etkin

nwilw0t.png


XMLRPC tamamen devre dışı değilse, şu uyarıyı göstereceğiz:
XMLRPC kısmen devre dışı

cgaqbms.png


Sonuç

Etkinleştirildiğinde, XMLRPC WordPress sitenizin saldırı yüzeyini artırır, çünkü saldırganların kullanabileceği daha fazla “pencere” sağlar. WordPress’in en son sürümünde XMLRPC’nin yeterince güvenli olduğundan emin olsak da, çoğu durumda XMLRPC’nin web sunucusu yapılandırmalarıyla devre dışı bırakılmasını öneriyoruz.

Bazı eklentiler XMLRPC’yi devre dışı bıraktığını iddia etse de, kimlik doğrulamasız yöntemleri açık bırakma riskine dikkat edilmelidir. XMLRPC’nin düzgün bir şekilde devre dışı bırakıldığından emin olmak için güvenlik eklentimizle ücretsiz bir tarama yapabilirsiniz.

Brute force

Piyasada pek çok brute force yazılımı mevcut. Kendiniz de github üzerinden tarama yapa bilirsiniz. Ben size bir tanesinin linkini paylaşıyorum. Basit bir tooldur ve zaten açıklamasından nasıl çalıştığını anlyacaksınız


Selametle
 
eline sağlık
 
Geri
Üst