Siber Uzay'ın Haber Platformu

H4cktimes Youtube Kanalı

CVE-2016-8870 Joomla Hesap Oluşturma Zafiyeti

0

Açık kaynak CMS’ler içinde en popülerlerden biri olan Joomla‘da iki önemli zafiyet tespit edildi. Joomla 3.4.4 ve 3.6.3 sürümlerinde görülen zafiyetler, CVE-2016-8869 ve CVE-2016-8870 şeklinde tanımlanıyor.

CVE-2016-8870 zafiyetine yapılan saldırı ile, siteye kayıt (üyelik) özelliği kapalı olsa dahi saldırgan kayıt işlemi gerçekleştirebiliyor.

Analiz işlemi için Joomla 3.6.3 sürümünü kurabilirsiniz. Zafiyet bulunan sürümde iki farklı kayıt yönteminin olduğu görülüyor:

1. components/com_users/controllers/registration.php dosyasına baktığınızda, aşağıdaki kodu göreceksiniz:

[box style=”note”]

UsersControllerRegistration::register() function public function register()
{
// Check for request forgeries.
JSession::checkToken() or jexit(JText::_(‘JINVALID_TOKEN’));// If registration is disabled – Redirect to login page.
if (JComponentHelper::getParams(‘com_users’)->get(‘allowUserRegistration’) == 0)
{
$this->setRedirect(JRoute::_(‘index.php?option=com_users&view=login’, false));return false;
}

$app = JFactory::getApplication();
$model = $this->getModel(‘Registration’, ‘UsersModel’);

// Get the user data.
$requestData = $this->input->post->get(‘jform’, array(), ‘array’);

// Validate the posted data.
$form = $model->getForm();


}

[/box]

2. components/com_users/controllers/user.php dosyasına baktığınızda ise:

[box style=”note”]

UsersControllerUser::register() function
public function register()
{
JSession::checkToken(‘post’) or jexit(JText::_(‘JINVALID_TOKEN’));// Get the application
$app = JFactory::getApplication();// Get the form data.
$data = $this->input->post->get(‘user’, array(), ‘array’);// Get the model and validate the data.
$model = $this->getModel(‘Registration’, ‘UsersModel’);

$form = $model->getForm();


}

[/box]

UsersControllerRegistration::register() fonksiyonu ve UsersControllerUser::register() fonksiyonu karşılaştırıldığında ise şöyle bir şeyle karşılaşıyoruz:

[box style=”note”]

// If registration is disabled – Redirect to login page.
if (JComponentHelper::getParams(‘com_users’)->get(‘allowUserRegistration’) == 0)
{
$this->setRedirect(JRoute::_(‘index.php?option=com_users&view=login’, false));

return false;
}

[/box]

Eğer kayıt işlemi için UsersControllerUser::register() fonksiyonu kulanılabilirse, tespit işlemini bypass etmek mümkün. Her ne kadar genel olarak bu yöntem kullanılmıyor olsa da kullanılamayacağı anlamına gelmiyor. İlgili exploit’e exploit-db‘den erişebilirsiniz.

Nasıl korunulur?

Joomla 3.6.4 sürümüne güncelleme yapın

 

Yorum Bırak

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.