Hoşgeldin Sivil

.
Forum Yöneticisi: Administrator | Bu Bölümde Yetkili Tüm Yöneticiler? | Bu konuyu okuyanlar?

 Forum Ana Sayfa
   Web Güvenlik Açıkları

   
 Kurallar    Aktif Konular    PM    Kayıt Ol     Giriş Yap  
» WEB | Vertical Privilege Escalation
 Konu Kalitesi %2.5
Oy Ver   
 
Gönderilme Tarihi: 15 Nisan 2022 11:36:34 - Kayıtlı IP
  Mesajı İhbar Et!     

s27anonym
0x27 | Akıncı

Yüzbaşı

İstanbul
20 Mart 2022
27 Mesaj

Durum: Urfalıyam


Aktiflik
Seviye
Deneyim



OWASP TOP 10 | Vertical Privilege Escalation



Vertical Privilege Escalation Nedir?


Vertical Privilege Escalation —bir saldırgan, güvenliğini ihlal edilen mevcut bir hesapla daha fazla yönetici izni veya erişim elde etmeye çalışır. Örneğin, bir saldırgan herhangi bir ağdaki normal kullanıcı hesabını ele geçirir ve yönetici izinleri veya root yani kök erişimi elde etmeye çalışır.


Penetrasyon Testi Nedir?

Penetrasyon testi veya etik bilgisayar korsanlığı olarak da adlandırılan sızma testi, olası bir saldırganın istismar edebileceği güvenlik açıklarını bulmak için bir bilgisayar sistemini, ağı veya web uygulamasını test etme uygulamasıdır.




Hedef sitemiz CloudCity ekibine ait olan cloudcity.com domain adresidir.



Daha sonra, bize verilen kullanıcı bilgileri ile sisteme giriş yapalım.



Giriş Başarılı.



Başarılı bir şekilde oturum açtık, ürün hakkında bir fikir edinmek ve test senaryolarını daha fazla belirlemek ve güvenlik testi senaryoları geliştirmek için CloudCity'nin kullanıcı arayüzü menülerine ve işlevlerine göz atıp değerlendirmekle başlayalım.



hesap ayrıcalıkları, yalnızca CloudCity'nin izleme panosuna erişimle sınırlıdır.




Ayarlar sayfası, kullanıcı ayrıntılarını, parola kimlik bilgilerini güncellemek ve iki faktörlü kimlik doğrulamayı yapılandırmak için eylemler sunar.

bu yapılandırma seçeneklerini gözden geçirdikten sonra, kullanıcının mevcut CloudCity hesap parolasını değiştirmesine olanak tanıyan Parolanızı Değiştir özelliğini test edelim.



CloudCity parolamızı bize verilen kimlik bilgileriyle güncelleyelim.


Save Changes



CloudCity'nin Parolayı Değiştir işlevinin arka uç sunucusuyla nasıl iletişim kurduğunu anlamamız için bir uygulama web proxy'si kullanarak tarayıcı tarafından oluşturulan HTTP isteğine müdahale edelim.


Web proxy'si nedir?

HTTP proxy olarak da bilinen bir web proxy, web geliştiricilerinin makineleri ile uzak bir web uygulaması arasındaki ham HTTP ve HTTPS trafiğini görüntülemesine ve değiştirmesine olanak tanıyan bir yazılım hata ayıklama aracıdır. Bu, HTTP/HTTPS istek ve yanıt verilerini, istek değişkenlerini ve parametrelerini, başlıkları vb. içerebilir.



Değişiklikleri Kaydet düğmesini tıklattıktan sonra, tarayıcımız ve değerine sahip parametreler olarak geçen ve geçen bir POST istek oluşturur. oldPassword newPasswordpassword123password567

account Ayrıca parametre değeri olarak ayarlanmış ek bir parametre iletilir 3 .



Uygulamayı test etmeye devam etmeden önce, bir kullanıcının parolasını güncellemek için HTTP POST isteğimizin CloudCity uygulaması tarafından nasıl işlendiğini daha fazla analiz edelim.




changeAccountPassword
kullanıcı tarafından başlatılan parola güncellemelerini işler.

session.getAttribute
İlk önce oturum açmış olan kullanıcıyı oturumdan alır.

getParameter

Ardından, o kullanıcı POST için newPassword, oldPassword ve account parametre değerlerini sorgular.

updatePasswordFor(user);
Son olarak, kullanıcı nesnesi yeni kimlik bilgileriyle güncellenir.



POST, talebini ele geçirip analiz ettikten sonra, parametre değerini aşağıdaki hesap numarasıyla güncellemeye çalışır : account

account 1

Not
Parametreyi değiştirirken KOD penceresine dikkat edin. account



3 parametre değerini silip doğru değeri giriyoruz. 1



Şimdi ise cevabı analiz edelim.



JSON yanıt gövdesi, parolanın başarıyla değiştirildiğini onaylayan bir mesaj içerir.


Ancak, güncellenen kullanıcı hesabı bize ait olan hesap gibi görünmüyor. Bunun yerine yanıt, Alice'in hesabının güncellendiğini gösteriyor.



Önceki POST adımdaki yanıt, bizim - to account parametresini değiştirmemizin, muhtemelen başka bir kullanıcının ( ) hesap kimlik bilgilerinin güncellemiş olabileceğini gösterir. 31 alice@livemail.com
Doğrulamak için hesabımızdan çıkış yapalım ve Alice'in kullanıcı adını ve şifresini kullanarak CloudCity'ye erişmeye çalışalım. password567




Hesap parametresinde yaptığımız değişikliğin Alice'in CloudCity hesabı kimlik bilgilerini gerçekten etkileyip etkilemediğini kontrol etmek için parametreyi değiştirerek istekte belirlediğimiz yeni parolayı kullanarak Alice olarak oturum açalım : POST account




Vee BUM
Parola Güncelleme isteğindeki account parametre değerini değiştirerek, Alice'in hesap kimlik bilgilerini başarıyla güncellemeyi ve CloudCity hesabına erişim elde etmeyi başardık. POST



Not
Kullanılan güvenlik açığı, kötü niyetli bir kullanıcının ayrıcalıklı bir hesaba erişim kazandığı Türkçe deyimi ile Dikey Ayrıcalık Yükseltme saldırısı olarak bilinir. Ancak saldırı, Hesap Yönetimi işlevleriyle sınırlı değildir ve güvenilir olmayan parametre değerlerinin yeterli kimlik doğrulama ve yetkilendirme kontrolleri yapılmadan uygulamaya geçirildiği herhangi bir uygulama özelliğinde potansiyel olarak meydana gelebilir.



Vertical Privilege Escalation güvenlik açığının temel nedenini daha iyi anlamak için changePassword(), belirli bir hesabın parolasını güncellemek için kullanılan yönteme bir göz atalım.



account
Hesap kimliğinin, bu hesabın gerçekten oturumda etkin olan kullanıcıya ait olup olmadığı daha fazla kontrol edilmeden istekten alındığını unutmayın.

updatePasswordFor
Bu nedenle, kullanıcı kimlik bilgileri güncellendiğinde hiçbir doğrulama gerçekleşmedi ve basit bir POST isteği aracılığıyla User, sınırlarının dışında olması gereken bir nesneye doğrudan erişim kazandık.




Peki Bu Saldırıları Nasıl Azaltacağız?

Ayrıcalık Yükseltme güvenlik açıklarını etkin bir şekilde azaltmak için geliştiricilerin, kullanıcının istenen bir kaynağa veya işleve erişmek için gerekli ayrıcalıklara sahip olduğundan emin olmak için erişim denetimi kontrolleri uygulaması gerekir.

Tüm ürün düzeyinde uygun bir erişim kontrol politikası önemlidir. Tüm kullanıcılar ve gruplar için uygun erişim kontrol izinlerini tanımlamalıdır. Daha sonra bunların mimarlara, tasarımcılara, geliştiricilere ve destek ekiplerine açık bir şekilde açıklanması gerekir, böylece erişim denetimi uygulama genelinde tutarlı bir şekilde tasarlanır, uygulanır ve kullanılır.

İlk adım olarak, Privilege Escalation saldırılarını önlemek için savunmasız kod örneğimize basit bir erişim kontrolü kontrolünü nasıl ekleyebileceğimizi görelim.



if (user.getAccountId().equals(account)) {
Yöntemin değiştirilmiş uygulaması , istekten alınan parametre değerinin , kullanıcının etkin oturumundan çıkarılan kullanıcı nesnesinin hesap kimliğiyle eşleştiğinden changePassword() emin olmak için ek bir denetim ekler. account POST




___________________________________________
Cyber-Warrior TIM
          
  Lojistik Destek ,    
 
 
Gönderilme Tarihi: 15 Nisan 2022 12:49:40 - Kayıtlı IP
  Mesajı İhbar Et!     

EmreZeriX

Komodor

/public_html
14 Aralık 2021
104 Mesaj

Durum: Yorgun


Aktiflik
Seviye
Deneyim
Moderatör

Görev Org./Grup :

Sosyal Medya


Lojistik

Uzmanlık Alanları:
BD Script
AI Researcher

Her konu gibi bu konuda da harika bir emek görüyorum ellerine sağlık.


___________________________________________

          
     
 
 
Git:
  Arkadaşına yolla

Sayfa Yüklenme Süresi: 0.0532


 

İçerik Yöneticisi : AKTIF / Veriler Aktarıldı...
IP Adresiniz : 18.97.14.80 Güvenlik Nedeniyle Kayıt Altındadır.



Uzun yoldan geldik, uzun yola devam...

   


Reklam vermek için tıklayın

Forum Kuralları | Üye Olmak İçin | CyberAkademi | Operasyonel TİM'ler
CYBERAKADEMI ~ 2021