Добро пожаловать, Гость!
Тема закрыта для обсуждения
error_log - Страница 2
Помощь мастерам | error_log
Modules :
сталкивается с журналом ошибок, поэтому сайт не работает. решение?
[12-Nov-2017 12:11:30 UTC] PHP Notice: Only variables should be assigned by reference in /home/dcmsmodc/public_html/sys/inc/start.php on line 26
[12-Nov-2017 12:11:30 UTC] PHP Parse error: Invalid numeric literal in /home/dcmsmodc/public_html/sys/inc/sess.php on line 7
[12-Nov-2017 12:11:33 UTC] PHP Notice: Only variables should be assigned by reference in /home/dcmsmodc/public_html/sys/inc/start.php on line 26
[12-Nov-2017 12:11:33 UTC] PHP Parse error: Invalid numeric literal in /home/dcmsmodc/public_html/sys/inc/sess.php on line 7
error_log
12 Ноября 2017сталкивается с журналом ошибок, поэтому сайт не работает. решение?
[12-Nov-2017 12:11:30 UTC] PHP Notice: Only variables should be assigned by reference in /home/dcmsmodc/public_html/sys/inc/start.php on line 26
[12-Nov-2017 12:11:30 UTC] PHP Parse error: Invalid numeric literal in /home/dcmsmodc/public_html/sys/inc/sess.php on line 7
[12-Nov-2017 12:11:33 UTC] PHP Notice: Only variables should be assigned by reference in /home/dcmsmodc/public_html/sys/inc/start.php on line 26
[12-Nov-2017 12:11:33 UTC] PHP Parse error: Invalid numeric literal in /home/dcmsmodc/public_html/sys/inc/sess.php on line 7
Комментарии:
Оброк 15 Ноября 2017
kantry, Держите меня семеро...))
От скажи, как ты меня читаешь.
Упрощаю до не куда...
1) Идёшь в папку сессиями, выбираешь одну(любую)
И редактируешь(длинна 32 или больше символов
что бы не сработало условие
if (!preg_match('#[A-z0-9]{32}#i',$sess)...
а так же нарочно добавляешь символы, в данном
случае доллар, проверяем на запрет)
Например...
// --- Было sess_s67ekcekicvcvsvsa21rt77ni6
// --- Стало sess_$update$000000111111kcekicvcvsvsa21rt77ni6782$
2) Выходишь на сайт, ловишь и присваеваешь
себе отредактированную сессию
А именно
// --- $update$000000111111kcekicvcvsvsa21rt77ni6782$
3) Авторизуешься под ней(но авторизация не произойдёт)
4) Идёшь в phpMyAdmin в таблице user
находишь id или Ник под которым авторизовался
И в поле sess, будет именно то что ты присвоил
перед авторизацией себе, а именно - $update$000000111111kcekicvcvsvsa21rt77ni6782$
Если и так пробежка, то ты скорее мёртв нежели жив.
Более доступно я пояснить не смогу, извини...
Снимок (13.23Kb)
kantry, Держите меня семеро...))
От скажи, как ты меня читаешь.
Упрощаю до не куда...
1) Идёшь в папку сессиями, выбираешь одну(любую)
И редактируешь(длинна 32 или больше символов
что бы не сработало условие
if (!preg_match('#[A-z0-9]{32}#i',$sess)...
а так же нарочно добавляешь символы, в данном
случае доллар, проверяем на запрет)
Например...
// --- Было sess_s67ekcekicvcvsvsa21rt77ni6
// --- Стало sess_$update$000000111111kcekicvcvsvsa21rt77ni6782$
2) Выходишь на сайт, ловишь и присваеваешь
себе отредактированную сессию
А именно
// --- $update$000000111111kcekicvcvsvsa21rt77ni6782$
3) Авторизуешься под ней(но авторизация не произойдёт)
4) Идёшь в phpMyAdmin в таблице user
находишь id или Ник под которым авторизовался
И в поле sess, будет именно то что ты присвоил
перед авторизацией себе, а именно - $update$000000111111kcekicvcvsvsa21rt77ni6782$
Если и так пробежка, то ты скорее мёртв нежели жив.
Более доступно я пояснить не смогу, извини...
kantry 15 Ноября 2017
Оброк, всего хорошего - это значит сказать больше нечего?
Все что идет за session_id НЕ нужно, это НЕ идентификатор сессии, свое значение он меняет после каждого перехода.
А вы прицепились к тому что не имееет значения.
Перечитываем вместе с комментариями
Для парноиков
П.С. Про косяки хостеров здесь речь не шла.
Оброк, всего хорошего - это значит сказать больше нечего?
Все что идет за session_id НЕ нужно, это НЕ идентификатор сессии, свое значение он меняет после каждого перехода.
А вы прицепились к тому что не имееет значения.
Перечитываем вместе с комментариями
Для парноиков
П.С. Про косяки хостеров здесь речь не шла.
Оброк 15 Ноября 2017
kantry, Я уже не знаю как тебе пояснить...))
Прежде чем подтвердить слова Stavra
Я это всё воспроизвёл, что и тебе предложил сделать.
Но ты или ленишься или просто не можешь.
Тебе на блюдечке подали, я даже разложил что надо делать
(не всё конечно по известным причинам - пабл) а ты нет да нет.
Ну на нет и суда нет, если человек не хочет слышать...
Значит оно ему не надо...))
Касательно прав, тут говорить много не стоит.
Директория с сессиями пишет в себя...))
Кстати, недавно на одном сайте столкнулся с аномалией.
Захожу в tmp, да ладно там файл...
Тут папка
Тут папка
Тут и ещё и ещё...
А тут уже пошли сессии
Представляешь картину... А как оно всё туда попало, загадка...))
Это получается какой то садо-мазо-хакер
Получив права рут, с перепугу начал лить папки в директорию с сессиями...))
Добавить не чего, то что надо сказал.
А услышал ты или нет, твоё личное дело.
Всего хорошего.
kantry, Я уже не знаю как тебе пояснить...))
Прежде чем подтвердить слова Stavra
Я это всё воспроизвёл, что и тебе предложил сделать.
Но ты или ленишься или просто не можешь.
Тебе на блюдечке подали, я даже разложил что надо делать
(не всё конечно по известным причинам - пабл) а ты нет да нет.
Ну на нет и суда нет, если человек не хочет слышать...
Значит оно ему не надо...))
Касательно прав, тут говорить много не стоит.
Директория с сессиями пишет в себя...))
Кстати, недавно на одном сайте столкнулся с аномалией.
Захожу в tmp, да ладно там файл...
Тут папка
Тут папка
Тут и ещё и ещё...
А тут уже пошли сессии
Представляешь картину... А как оно всё туда попало, загадка...))
Это получается какой то садо-мазо-хакер
Получив права рут, с перепугу начал лить папки в директорию с сессиями...))
Добавить не чего, то что надо сказал.
А услышал ты или нет, твоё личное дело.
Всего хорошего.
kantry 15 Ноября 2017
Оброк, что то я вас недопонимаю, взломать конечно можно ВСЕ.
Но... нет там авторизации по полю с хэшем сессии. Для интереса можешь зайти в базу удалить этот хэш и спокойно лазить по сайту, авторизованым. А вот то зачем он нужен, да можно без него обойтись, это хвост из 2008 года. Что бы добраться до php сессии нужны определенные права, я и пишу, если у тебя есть такие права(изменить - прочитать) сессию, то на хрена она тебе тогда надо? С этими правами ты и так можешь что угодно делать.
Оброк, что то я вас недопонимаю, взломать конечно можно ВСЕ.
Но... нет там авторизации по полю с хэшем сессии. Для интереса можешь зайти в базу удалить этот хэш и спокойно лазить по сайту, авторизованым. А вот то зачем он нужен, да можно без него обойтись, это хвост из 2008 года. Что бы добраться до php сессии нужны определенные права, я и пишу, если у тебя есть такие права(изменить - прочитать) сессию, то на хрена она тебе тогда надо? С этими правами ты и так можешь что угодно делать.
Оброк 14 Ноября 2017
kantry, Привет. Рад видеть тебя...))
Как понял, Stavr заострил внимание
не на session_start();
Ибо я не нашёл не одного упоминание об этом в его постах, а на условии
// --- if (!preg_match('#[A-z0-9]{32}#i',$sess))
И сказать как есть, он прав.
Условие действительно не реагирует на символы
Не реагирует на наличие 32 символов и более
Согласись, довольно странное поведение...))
И опираясь на ниже расположенное
// --- $sess = addslashes(session_id());
Имеем следующее...
При условии что имя файла лежащего
вместе с сессиями, 32 или более символов
так же имея идентификатор, мы легко извлечём
и прочитаем содержимое этого файла
Но ты скажешь, ведь зная идентификатор
любой иной сессии, мы так же сможем её извлечь
На что я тебе отвечу - да ты прав.
Но ключевое тут условие
// --- if (!preg_match('#[A-z0-9]{32}#i',$sess))
Почему оно так странно работает и собственно для каких таких целей...))
Первое...
Благодаря выше обозначенному условию
Идентификатор сессии, извлекается как есть
и в базу данных, ложиться в "чистом виде"
То есть, всем назло, присваиваем себе эту сессию
и под ней авторизуемся...
Авторизоваться при наличии более 32 символов нам не удастся, да и не надо...
Но если имя сессии содержит sql запрос, то он уйдёт по назначению
от содержимого сессии
Например если: refer|N;id_user|s:2:"12"
То в поле sess, юзера под ид 12 цель достигнута...))
Я согласен, впереди ещё много НО и как бы тумана...
Но кое что, мы уже установили...))
Проверь сам, развивай, у тебя получиться.
надеюсь не во зло людям.
Всего хорошего...))
kantry, Привет. Рад видеть тебя...))
Как понял, Stavr заострил внимание
не на session_start();
Ибо я не нашёл не одного упоминание об этом в его постах, а на условии
// --- if (!preg_match('#[A-z0-9]{32}#i',$sess))
И сказать как есть, он прав.
Условие действительно не реагирует на символы
Не реагирует на наличие 32 символов и более
Согласись, довольно странное поведение...))
И опираясь на ниже расположенное
// --- $sess = addslashes(session_id());
Имеем следующее...
При условии что имя файла лежащего
вместе с сессиями, 32 или более символов
так же имея идентификатор, мы легко извлечём
и прочитаем содержимое этого файла
Но ты скажешь, ведь зная идентификатор
любой иной сессии, мы так же сможем её извлечь
На что я тебе отвечу - да ты прав.
Но ключевое тут условие
// --- if (!preg_match('#[A-z0-9]{32}#i',$sess))
Почему оно так странно работает и собственно для каких таких целей...))
Первое...
Благодаря выше обозначенному условию
Идентификатор сессии, извлекается как есть
и в базу данных, ложиться в "чистом виде"
То есть, всем назло, присваиваем себе эту сессию
и под ней авторизуемся...
Авторизоваться при наличии более 32 символов нам не удастся, да и не надо...
Но если имя сессии содержит sql запрос, то он уйдёт по назначению
от содержимого сессии
Например если: refer|N;id_user|s:2:"12"
То в поле sess, юзера под ид 12 цель достигнута...))
Я согласен, впереди ещё много НО и как бы тумана...
Но кое что, мы уже установили...))
Проверь сам, развивай, у тебя получиться.
надеюсь не во зло людям.
Всего хорошего...))
kantry 14 Ноября 2017
Stavr, я и не для тебя писал, а для тех кто так же как и ты, уперто думает что то, что за session_start(); идет, имеет какое то существенное значение.
Stavr, я и не для тебя писал, а для тех кто так же как и ты, уперто думает что то, что за session_start(); идет, имеет какое то существенное значение.