0
<< предыдущая заметкаследующая заметка >>
11 сентября 2013
Найдена уязвимость - аж пиздец! ;)

Уязвимость только для многопользовательского движка в публичном режиме — пока у нас, насколько мне известно, он один такой инсталлирован (с опцией в конфиге $mnogouser=1;), называется binoniq.net ;)

Так вот — по моему упущению там все-таки, оказывается, довольно долго имелись в доступе некоторые модули, которых у простого пользователя быть не должно. Ну, то есть, до революции с системой авторизации год назад опасны были почти все модули, которые позволяли пользователю рисовать свой HTML и JS. А после введения нашей революционной авторизации я на этот счет совсем расслабился и все модули разрешил. И забыл, что у нас есть ровно один модуль, который разрешать кому попало совсем нельзя — PHPEVAL. Потому что он рисует не пользовательский HTML и JS, а исполняет самый настоящий пользовательский PHP:

{_PHPEVAL:
...любой PHP-код...
$o='и что по итогу напечатать';
_}

Какое счастье, что про этот модуль никто не вспомнил и не попробовал с ним поиграться! ;)

Исправил: теперь модуль исполняет произвольный PHP-код только для корневого аккаунта. Который админу принадлежит. Но согласитесь, феерическая дыра была, просто небывалая. Верно? ;)

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Mac Firefox
0
0
Fatalist
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
и вам доброй ночи
Windows IE
0
0
D.iK.iJ
Ура! Работа идет.
А восстановление пароля на бинонике будет?
Windows IE
0
0
D.iK.iJ
Fatal error: /ajax/module.php
Ошибка при отправке почты на d****j@yandex.ru

Тест тест...

{_PHPEVAL:

$o='и что по итогу напечатать';
_}
Linux Firefox
 Москва
0
0
Леонит Каганофф
В смысле?
Windows IE
0
0
D.iK.iJ
Пытаюсь восстановить пароль для своего старого логина dikij
Пишет:
Fatal error: /ajax/module.php
Ошибка при отправке почты на d*****j@yandex.ru
Linux Firefox
 Москва
0
0
Леонит Каганофф
Задумался.
Linux Firefox
 Москва
0
0
Леонит Каганофф
А что разве не было? В движке это давным давно.
Должно работать и на Бинонике.
Windows Firefox
 Санкт-Петербург
0
0
Кошак
Offtopic:
Или я что-то не то делаю, или что-то глючит - не получается сохранить в заметке более одного тега.
Даже если набираешь тэги из существующих - сохраняется только первый в строке.
Куда копать?

И ещё, пытался установить движок "вчистую" - не срабатывает - разрешения для config.php прописываются как 000 (а не 644), из-за чего вылетает "ошибка доступа".
Linux Firefox
 Москва
0
0
Леонит Каганофф
В заметке на Бинонике или на стендалоне? Это чуть разные механизмы. Кроме того, тэги лучше сохраняются, насколько я помню, если заметка уже существует.

Про config.php ничего не могу сказать пока :( А если ему проставить права как надо, и запустить повторно?
Windows Firefox
 Санкт-Петербург
0
0
Кошак
На стэндэлоне у себя, независимо от того, когда тэгируется заметка (во время создания, или редактирования уже сохраненной). Движок синхронизируется с движком на /blog.

Произойдёт повторная ошибка. Сейчас сгенерю, и пришлю, что пишет.
О! Я отстал от жизни - уже minstall.php, а я на автопилоте install.php от уже имеющегося использовал! Сейчас проверим!
Linux Firefox
 Москва
0
0
Леонит Каганофф
Не!
1) /minstall.php нужен для того, чтобы поставить МИНИМАЛЬНЫЙ комплект движка, который заработает. Это нужно при начальной инсталляции (достаточно загрузить на хостинг /minstall.php), либо когда по какой-то причине /install не отрабатывает, и надо обновить базовый комплект для восстановления минимальной работоспособности.

То есть сперва - /minstall.php, а затем все остальное - /install

Синхронизировать сегодня лучше на /dnevnik :) Про /blog и binoniq.net я забывать стал что-то.

Вообще вся работа ведется на http://lleo.homeip.net - это Супербета. Его можно вписать из Инсталла в список серверов обновления и обновляться прямо с него. Оно и быстрее - всеж-таки lleo.me в Канаде, а это тормоза...
Windows Firefox
 Санкт-Петербург
0
0
Кошак
"Неизменно превосходный результат"

Warning: require(/var/www/lj.cats-home.net/config.php): failed to open stream: Permission denied in /var/www/lj.cats-home.net/minstall.php on line 131 Fatal error: require(): Failed opening required 'config.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/lj.cats-home.net/minstall.php on line 131

права на config.php - 000
Изменение прав вручную на 644 перемен не даёт, кроме блокирования доступа (ошибка 403).
Linux Firefox
 Москва
0
0
Леонит Каганофф
А вот это уже глюк хостинга. Хотя...
Давай сделаем так:

1. Обновитесь с /blog (последнюю версию я накатил).

2. Запустите /minstall.php?config
Он покажет права на config.php

3. Запустите /minstall.php?config=644
Он установит права на файл от имени Apache (возможно, этот файл считается принадлежащим ему, а не юзеру, зашедшему с ftp).

2. Снова запустите /minstall.php?config чтобы показать права.

Учтите, что работает команда только ?config=644, никакие другие права (например 600) пока выставить невозможно: мне сейчас просто лень строить систему по установке прав и думать о том, могут ли возникнуть какие-то проблемы безопасности от нее.
Windows Firefox
 Санкт-Петербург
0
0
Кошак
Ничего не понимаю... Глянул в код minstall - должен казать права, а на деле выводит форму создания конфига.

Результат не меняется. В любом разе - это эксперимент был, привык уже новый экземпляр методом копирования имеющегося генерить.

P.S. Хостинг - специально прирученный: Ubuntu Server на кухонном компе, так что издеваться можно как захочется, бэкапы есть. :)

Linux Firefox
 Москва
0
0
Леонит Каганофф
Поигрался. Доигрался :(

Forbidden
You don't have permission to access /minstall.php

Можно мне какой-нибудь иной доступ, чтоб разобраться?
Linux Firefox
 Москва
0
0
Леонит Каганофф
Дружище, прошу прощения - это у меня был адов глюк. Почему-то в config.php.tmpl были в первых же строках прописаны переменные прав для файлов 0. Откуда в темплейте оказался ноль, после каких отладок - ума не приложу.

В общем, удалите всё, возьмите из любого места свежий minstall.php, и далее всё получится.
Windows Firefox
 Санкт-Петербург
0
0
Кошак
Не всё так гладко:
при попытке входа на http://lj.cats-home.net/install
Error 404: Subdomain lj not exist on http://lj.cats-home.net/
Windows Firefox
 Санкт-Петербург
0
0
Кошак
TNX!
Сейчас проверю, что получилось.

Хм... Пароль запросил, прописал хэш в конфиг. А в админку не пускает. Как будто и не вводил пароля.
адрес выглядит как: http://lj.cats-home.net/install?reboot=0.25608907235256506

Леонид, если сейчас времени/настроения/желания возиться с непонятностями не особо есть - ситуация абсолютно некритична. Поскольку есть живой движок, и он вполне устанавливается копированием.

Редактировать... Да, я - тормоз, там же для группы разрешения выставляются как "read only". А хозяин файлов - апач. :) Вот потому и. Как бы сделать?
Linux Firefox
 Москва
0
0
Леонит Каганофф
Так все правильно.
Сначала движок просил придумать пароль, чтобы сохранить в конфиге.
А теперь надо тот же пароль ввести.

Я не стал эти вещи совмещать - хотя бы для того, чтобы убедиться, что пароль записан верно.

всего комментариев: 26

<< предыдущая заметка следующая заметка >>