Испугай своего провайдера.. ЧАСТЬ 2

DiMA

php.spb.ru
Команда форума
Испугай своего провайдера.. ЧАСТЬ 2

Мне тут пользователь phpRemoteView жалуется... Коллега из Приморья .)

Так вот, админ просек, что юзера сервера хакают местные сайт/чат у другого пользователя через remview. В качестве защиты от нее админ запретил выполнять функции realpath() и dir() !

Зацените степень тупости :)
 

young

Новичок
Меня больше последние три дня интересует другая тема - вычитать все сесии всех сайтов, благо на 90% серверов они лежат в /tmp/ и помскать там что-то интересное!
 

DiMA

php.spb.ru
Команда форума
Да, это типичная дыра большинства хостеров. Месяц или два назад я недели две убеждал одного *д*ота из хостера нет.ру, что хранение сессий в /tmp - это дыра. И предлагал элементарное решение - перенести сессии в /home/<login>/tmp. Но нет - баран уперся рогами. Так что ломайте. *д*отов надо наказывать. Нахрена им за такую тупость им зарплату платят.

> Бня, мужики, - это уже похоже на паранойю.

Ты сам подумай, что через /tmp можешь читать любые сессии и самое главное - создавать свою сессию с произвольными данными для любого сайта сервера!

Лично я уже давно с этим борюсь, храня сессии от моего чата в отдельном пользовательском каталоге.
 

webdeveloper

Guest
Автор оригинала: DiMA
Да, это типичная дыра большинства хостеров. Месяц или два назад я недели две убеждал одного *д*ота из хостера нет.ру, что хранение сессий в /tmp - это дыра. И предлагал элементарное решение - перенести сессии в /home/<login>/tmp. Но нет - баран уперся рогами. Так что ломайте. *д*отов надо наказывать. Нахрена им за такую тупость им зарплату платят.

> Бня, мужики, - это уже похоже на паранойю.

Ты сам подумай, что через /tmp можешь читать любые сессии и самое главное - создавать свою сессию с произвольными данными для любого сайта сервера!

Лично я уже давно с этим борюсь, храня сессии от моего чата в отдельном пользовательском каталоге.
Дима, это конечно классно что ты такой знающий, но не забывай что пытаясь наказать хостера ты прежде всего навредишь ообчным пользователям.
 

Ямерт

The Old One
Чем опасно хранение сессионных файлов в /tmp, объясните подробно, если не затруднит.

Хранить их в директории, доступной через Вэб - одно дело. Но чем плохо хранение в /tmp? С тем же успехом можно хранить эти файлы в какой-нибудь директории /my_fucking_good_directory. В чём дырка?
 

mrskhris

Guest
Если на хостинге есть несколько хостящихся (велик и могуч...), то любой из них может читать файлы сессий, созданные кем-то другим.
Так понятнее?
 

denisb

Guest
Хм-м, а разве это не проблема того, что хостер
просто не "догадался" использовать open_basedir ?
 

grunsh

Guest
А как можно вычислить имя файла?
Если на каталог /tmp снять права на чтения для азеров, то списка файлов вам невидать как своих ухов, пусть даже остается возможность открыть файл. sess_ds7sd87f5sdqdAD323412Q - по вашему можно как то догадаться?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
:) Когда-то я показал админам своего провайдера RemviewView, так провайдер вообще услугу хостинга закрыл! :)

Сессии лично я предпочитаю хранить в базе данных. Работает это намного быстрее, и кроме того, при реализации под виндами не образуется свалка старых файлов.
 

DiMA

php.spb.ru
Команда форума
> но не забывай что пытаясь наказать хостера ты прежде всего навредишь ообчным пользователям.

Не понял. Я кроме высказывания своего мнения о хостерах ничего не делаю.

А phpRemoteView - к взлому отношения не имеет. Это просто меджер файлов. Как Explorer. А вот что этим меджером делать - вопрос другой области.


Про дыру. Ну, мля, детский сад. Да причем тут open_basedir? Причем тут права? Никто не собирается лезть в /tmp, т.к. либо на это нет прав (при safemode), либо можно сразу залезть в каталог юзера без всяких сессий (при отключенном safemode).

Как ломать хостеров (для нервных - я опять только лишь показываю степерь тупости админов и ничего не делаю).

1. Ищем все сайты хостера. Можно взять /etc/passwd или конфиги апача. Или базу rinp'a просканить.. Как угодно найти все сайты.

2. Ищем на сайте распространненые программы, которые хранят данные на диске. Например: форумы, порталы, чаты. Ищем прогу в инете, ставим себе на сайт. Изучаем формат хранения сессий. Допустим, форум создает переменню-сессию "auth" со значением 1, если юзер авторизован. В "login" - логин, в "admin" - 0/1 (юзер/админ).

3. Идем на свой сайт этого хостера. Стартуем новую сессию (ЛЮБУЮ НОВУЮ). Записываем переменные auth=1, login=логин_реального_админа, admin=1. Выводим на экран номер новой сессии.

4. Обращаем к взламываемой проге на взламываемом сайте: index.php?PHPSESSID=полученный_номер_в_пункте_3. Наслаждаемся правами админа.
 

DiMA

php.spb.ru
Команда форума
Меня беспокоит только то, что я объяснял это одному указанному админу недели 2, а он и не почесался ничего сделать. И не признал, что либо не в состоянии изменить настройки сервера по тех. причинам (значит у них там все черех жопу работает и перенастроить очень трудно), либо просто лень делать лишнюю работу.

Остальные админы тоже наверняка знают про эту дыру. Кое-кто настраивает сервер нормально. Большинство - пофигисты. Мне то все равно, я у таких провайдеров не хостюсь и учить жить никого не собираюсь. Просто констатирую факты.
 

PhpDeveloper

Guest
3. Идем на свой сайт этого хостера. Стартуем новую сессию (ЛЮБУЮ НОВУЮ). Записываем переменные auth=1, login=логин_реального_админа, admin=1. Выводим на экран номер новой сессии.

4. Обращаем к взламываемой проге на взламываемом сайте: index.php?PHPSESSID=полученный_номер_в_пункте_3. Наслаждаемся правами админа.
А каким образом хостер может закрыть эту дыру ?

Получается никаким... ?!

Т е сессиями пользоваться не безопасно.
 

DiMA

php.spb.ru
Команда форума
ё....... ну сколько можно детский сад разводить?!

TEMP надо делать не общим в /tmp, а в /home/<username>/tmp
Настроить это в httpd.conf для одного клиента дело 20 секунд. Даже если их на сайте 1000, можно заставить админа это проделать руками (если интеллект не позволяет автоматизировать процесс).

Еще можно хранить сессии в базе. Но это ничем не лучше, чем настроить свою программу через ini_set("session.save_path","/home/user/tmp").
 

Sirius

PHP+MySQL=LOVE
Я согласен, что темпы должны быть у каждого юзера, своя...

Но я не согласен, что при правильном подходе с авторизацией через сессии, её можно хакнуть...

Смотрите: В сессию можно засунуть многое, что невозможно определить, даже имея номер сессии... Например мд5(ИП-адрес), а ещё можно добавить мд5(пароль) админа и попробуй подделай - так что это ошибка программиста - а не хостинга!
 
Сверху