Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 29 Ответов
  • 5150 Просмотров
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Не могу войти в админку - Пустой пароль не допускается
Через фронт все нормально.
Версия Joomla 3.4.3

Пути к logs и tmp верные, права 755
В логах ошибок нет

В чем может быть дело?
« Последнее редактирование: 30.11.2015, 12:26:59 от b2z »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Пустой пароль не допускается
« Ответ #1 : 23.11.2015, 11:37:54 »
В чем, в чем, в том что пустой пароль не допускается, что за вопрос? Иначе ни о какой безопасности не может быть речи.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Re: Пустой пароль не допускается
« Ответ #2 : 23.11.2015, 13:18:52 »
Логин и пароль вводятся, они правильные. Однако возникает такое сообщение. С теми же логин/паролем через фронт вхожу без проблем.
Я - супер администратор
Другие админы также не могут войти.
Проблема возникла, предполагаю, после обновления.
Расширений для закрытия админки не устанавливались.
Темы, связанные с данной проблемой, не дали решения. В частности, рецепт про права на logs и tmp  - выставлял 777, нет результата.

В консоли при отправке запроса вижу:
Request URL:http://site.ru/administrator/index.php
Request Method:POST
Status Code:303 See other
...
Form Data
username: **** (реальный логин)
passwd: **** (пароль)
lang:
option:com_login
task:login
return:aW5kZXgucGhw
b1bc4fd8f1b549b964e6e878084e3d27:1

в error.log ничего

Уже не знаю куда копать.
« Последнее редактирование: 23.11.2015, 13:36:08 от mocart »
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Копать дальше по пути следования кода. У всех же работает, значит специфично для Вашего сайта.
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Откатился до последнего бекапа 3.4.1, смог войти, обновил сразу до 3.4.5 - вышел и зайти опять не могу

Warning
Empty password not allowed


в логах во время обновления:
PHP Warning:  require_once(1/platform.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in /home/n/*/*.ru/public_html/_NEW/libraries/import.legacy.php on line 42, referer: http://*.ru/_NEW/installation/index.php?view=finalise

PHP Fatal error:  require_once() [<a href='function.require'>function.require</a>]: Failed opening required '1/platform.php' (include_path='.:/usr/local/lib/php5:/usr/share/pear') in /home/n/*/*.ru/public_html/_NEW/libraries/import.legacy.php on line 42, referer: http://*.ru/_NEW/installation/index.php?view=finalise

PHP Fatal error:  Call to undefined method ContentViewArticle::close() in /home/n/*/*.ru/public_html/_NEW/libraries/legacy/application/application.php on line 409, referer: http://*.ru/_NEW/installation/index.php?view=finalise

Хотя, вроде как все обновилось, админка работала, я просто вышел

Спустя пару минут...
Перезалил на всякий пожарный все файлы из пакета Joomla_3.4.x_to_3.4.5-Stable-Patch_Package, вдруг чего не залилось, но это не дало результата
« Последнее редактирование: 24.11.2015, 14:25:56 от mocart »
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Восстановил, загрузил пакет Joomla_3.4.1_to_3.4.2-Stable-Patch_Package.zip через менеджер расширений, показало успешную установку, предложило обновляться дальше до 3.4.5 - не стал. Вышел из админки и войти после этого не могу опять :)
Опять же ошибок в error.log никаких. :( Только то же сообщение - Warning Empty password not allowed.

php 5.3.29
при восстановлении через Akeeba заметил что Register globals - нет
прописал в htaccess
php_flag register_globals on

Потом еще пробовал включить php 5.4 тоже самое всё
« Последнее редактирование: 24.11.2015, 22:17:07 от mocart »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Хм, откройте /administrator/components/com_login/models/login.php. В самом начале есть функция protected function populateState(), в ней замените строку
Код: php-brief
$method = $input->getMethod();
на
Код: php-brief
$method = 'POST';
и проверьте.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
robert, всё также.
Включил еще отладку, показывает 9 запросов

Спойлер
[свернуть]

В консоли браузера также видно, что POST запрос с логином и паролем отправляется, но в ответ приходит 303

Ерунда какая-то...
Сам впервые с таким сталкиваюсь...
« Последнее редактирование: 24.11.2015, 22:40:14 от mocart »
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
303 - это редиректится куда-то
либо сами что-то намудрили с защитаой админки, может плагин какой поставили или еще чего
или хостинг чего-то намудрил, как вариант для защиты от брута
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
303 - это редиректится куда-то
либо сами что-то намудрили с защитаой админки, может плагин какой поставили или еще чего
или хостинг чего-то намудрил, как вариант для защиты от брута
Само собой, если ввести неверный пароль, то тоже будет 303, разве нет?
Для защиты админки ничего не ставилось,htaccess из дистрибутива.
Прежде чем писать на форум, писал и звонил хостеру, тот божится, что ничего от брута не ставили, POST GET не блокируют
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Откройте /administrator/components/com_login/controller.php. В public function login() после
Код: php-brief
$credentials = $model->getState('credentials');
добавьте
Код: php-brief
if(empty($credentials['password'])){
$app->redirect('index.php','No password');
}else{
$app->redirect('index.php',$credentials['password']);
}
и попробуйте авторизоваться.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
да тупанул, перепутал с 301 :)
это кэш
тогда проверить можно очень просто
1 в administrator/index.php в начале прописать
Код
<?php die('test'); ?>
если в админке вместо входа увидите эту надпись "test", смотрите что происходит дальше
2 в administrator/components/com_login/login.php
пропишите вначале тоже самое при нажатии на кнопку войти должна появиться та же надпись

если не увидели значит чего-то где кэшируется или что-то не так)
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Откройте /administrator/components/com_login/controller.php. В public function login() после
Код: php-brief
$credentials = $model->getState('credentials');
добавьте
Код: php-brief
if(empty($credentials['password'])){
$app->redirect('index.php','No password');
}else{
$app->redirect('index.php',$credentials['password']);
}
и попробуйте авторизоваться.

Message
No password
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
да тупанул, перепутал с 301 :)
это кэш
тогда проверить можно очень просто
1 в administrator/index.php в начале прописать
Код
<?php die('test'); ?>
если в админке вместо входа увидите эту надпись "test", смотрите что происходит дальше
2 в administrator/components/com_login/login.php
пропишите вначале тоже самое при нажатии на кнопку войти должна появиться та же надпись

если не увидели значит чего-то где кэшируется или что-то не так)
1,2 вижу "test"
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
а если тут administrator/components/com_login/login.php прописать
Код
<?php die( var_dump($_POST['passwd']) ); ?>
пароль выводиться после нажатия на войти?
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
а если тут administrator/components/com_login/login.php прописать
Код
<?php die( var_dump($_POST['passwd']) ); ?>
пароль выводиться после нажатия на войти?
Да, выводится мой пароль
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
То же самое, но теперь после
Код: php-brief
$credentials = $model->getState('credentials');
добавьте
Код: php-brief
if(isset($_POST) && !empty($_POST)){
$app->redirect('index.php',$_POST['passwd']);
}else{
$app->redirect('index.php','No POST');
}
Не будь паразитом, сделай что-нибудь самостоятельно!
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
тогда хз)
надо смотреть на месте
смотрите какие плагины были установлены системные или группы user до обновления или после, может какой-то плагин не совместим с последней версией
в общем причин может быть много)
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
robert, вывелся мой пароль, который я ввел
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Тогда, либо плагины какие-то, либо настройки сервера (случайно не nginx?). На локалке проверяли?
Хотя нет, старая версия работала же.

P.S. А если вместо
Код: php-brief
$credentials = $model->getState('credentials');
напрямую прописать
Код: php-brief
$credentials = array(
'username' => $_POST['username'],
'password' => $_POST['passwd'],
'secretkey' => $_POST['secretkey']
);
?
« Последнее редактирование: 24.11.2015, 23:21:59 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
На локалке не проверял, на другом сервере тоже..
Версия базы данных   5.5.40-36.1
Кодировка базы данных   utf8_general_ci
Версия PHP   5.4.45
Веб-сервер   Apache/2.2.29
Интерфейс между веб-сервером и PHP   cgi-fcgi


Список всех плагинов
Спойлер
[свернуть]
И 2 компонента - com_rsform, com_akeeba, которые я пробовал также удалять перед обновлением и это ничего не дало (
« Последнее редактирование: 24.11.2015, 23:27:02 от mocart »
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Тогда, либо плагины какие-то, либо настройки сервера (случайно не nginx?). На локалке проверяли?
Хотя нет, старая версия работала же.

P.S. А если вместо
Код: php-brief
$credentials = $model->getState('credentials');
напрямую прописать
Код: php-brief
$credentials = array(
'username' => $_POST['username'],
'password' => $_POST['passwd'],
'secretkey' => $_POST['secretkey']
);
?
Я успешно авторизовался :)
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Только это еще не все: вы только немного сузили круг, надо найти причину и вылечить, нельзя так оставлять. Почему-то модель не кладет данные в сессию.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Я также пробовал очищать таблицу сессий в БД. После пробую авторизоваться - говорит ваша сессия истекла, введите заново логин и пароль. Заново ввожу и мне снова - Пустой пароль не допускается


Только это еще не все: вы только немного сузили круг, надо найти причину и вылечить, нельзя так оставлять. Почему-то модель не кладет данные в сессию.
Я уже рад :) Теперь согласен на что угодно, любые идеи, давайте доведем до конца.
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
robert, если оставить так, чем-то грозит?
*

frantzev.serezha

  • Новичок
  • 4
  • 0 / 0
robert, если оставить так, чем-то грозит?
грозит что возможен взлом твоего сайта, поскольку некоректно работает система, я уверен что тем самы на сайте есть уязвимость.
*

Tavol

  • Захожу иногда
  • 96
  • 3 / 0
Я бы на Вашем место рискнул бы установить чистую 3.4.5 и на нее прикрепить базу уже.
*

mocart

  • Захожу иногда
  • 112
  • 9 / 0
Проблема вроде бы решилась. Всё время перезаливал патч Joomla_3.4.x_to_3.4.5-Stable-Patch_Package по ftp, предполагая, что какие-то файлы во время автоматического обновления не обновлялись. Потом решил полный пакет установки Joomla_3.4.5-Stable-Full_Package распаковать в корень и авторизация стала проходить успешно. Других проблем не обнаружено пока.

Для информации: этот сайт был мигрирован в свое время с последней 2.5 до 3 версии стандартным инструментом обновления.

Всем спасибо!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться