Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Совет Уязвимость системы авторизации

hyndo

Активный участник
Баллы
63
Имя в Minecraft
hyndor
Уязвимость системы авторизации!АНаТоЛий ЧерВяк выпустил видео с уязвимостью системой авторизации.В чем суть уязвимости то что при регистрации в БД колонка сесии пуста и что значит что можно с легкостью запустить клиент через батник и спокойно зайти на сервер так как сесия будет равна 0 и сервер скажит что все норм.
Теперь как пофиксить?Я не очень разбируюсь в java и php но все же учу.Мой вариант при регистрации в колонку с сесией заносится рандомная сесия, а при запуске лаунчера регенит новую.
Я не знаю как это все сделать.Я просто предложил свой вариант прошу не давать особой критики потому что пишу на форуме первый раз.
 
Уязвимость системы авторизации!АНаТоЛий ЧерВяк выпустил видео с уязвимостью системой авторизации.В чем суть уязвимости то что при регистрации в БД колонка сесии пуста и что значит что можно с легкостью запустить клиент через батник и спокойно зайти на сервер так как сесия будет равна 0 и сервер скажит что все норм.
Теперь как пофиксить?Я не очень разбируюсь в java и php но все же учу.Мой вариант при регистрации в колонку с сесией заносится рандомная сесия, а при запуске лаунчера регенит новую.
Я не знаю как это все сделать.Я просто предложил свой вариант прошу не давать особой критики потому что пишу на форуме первый раз.
*facepalm*
два слова: хеш&соль
 
Зачем велосипед изобретать? :)
Да прааавда что!
Давайте, как последнее школоло, ставить DLE с пабликовским MineCraft-шабоном, лк с говнокодом, форум IPB, лаунчер сашка, сборка с РБ
И радоваться *_*
Я вот уважаю ТС, ибо лучше стараться сделать свое, нежели взять говнище готовенькое, и делать проект SO THAT THOUSANDS!
 
Уязвимость системы авторизации!АНаТоЛий ЧерВяк выпустил видео с уязвимостью системой авторизации.В чем суть уязвимости то что при регистрации в БД колонка сесии пуста и что значит что можно с легкостью запустить клиент через батник и спокойно зайти на сервер так как сесия будет равна 0 и сервер скажит что все норм.
Теперь как пофиксить?Я не очень разбируюсь в java и php но все же учу.Мой вариант при регистрации в колонку с сесией заносится рандомная сесия, а при запуске лаунчера регенит новую.
Я не знаю как это все сделать.Я просто предложил свой вариант прошу не давать особой критики потому что пишу на форуме первый раз.
Чей лаунчер?
 
Обломинго вам всем. И передайте червяку что он реально червяк :D.
if (!preg_match("/^[a-zA-Z0-9_-]+$/", $user) || !preg_match("/^[a-zA-Z0-9:_-]+$/", $sessionid) || !preg_match("/^[a-zA-Z0-9_-]+$/", $serverid)){

echo "Bad login";
exit;
}
Ни null ни пробел не пропустит в лаунчере сашка.
 
Обломинго вам всем. И передайте червяку что он реально червяк :D.
if (!preg_match("/^[a-zA-Z0-9_-]+$/", $user) || !preg_match("/^[a-zA-Z0-9:_-]+$/", $sessionid) || !preg_match("/^[a-zA-Z0-9_-]+$/", $serverid)){

echo "Bad login";
exit;
}
Ни null ни пробел не пропустит в лаунчере сашка.
на посмотри может ты не так понял

Обломинго вам всем. И передайте червяку что он реально червяк :D.
if (!preg_match("/^[a-zA-Z0-9_-]+$/", $user) || !preg_match("/^[a-zA-Z0-9:_-]+$/", $sessionid) || !preg_match("/^[a-zA-Z0-9_-]+$/", $serverid)){

echo "Bad login";
exit;
}
Ни null ни пробел не пропустит в лаунчере сашка.
Ахахах твой прег-матч тоже обходиться
Ответить
·
cleardot.gif

cleardot.gif


Roskonix
16 часов назад




Что-то не получается... Батник есть, пути прописаны, клиент запускается, аккаунт пустой(сессия не записана). При попытке зайти на сервер пишет Bad login.
Что я делаю не так?
Ответить
·
cleardot.gif

cleardot.gif

Все ответы (3)

АНаТоЛий ЧерВяк


11 часов назад


Не во всех сашах прегматч
В основном стоит MySQL фильтры
Да, не спорю сцук забыл про него =_=

Ответить
·
cleardot.gif

cleardot.gif


АНаТоЛий ЧерВяк


10 часов назад


+Alex Alexx Ах б*я...
Прегматч блочит пробелы
Но ведь не кто не отменял пустоту ;D
 
на посмотри может ты не так понял


Ахахах твой прег-матч тоже обходиться
Ответить
·
cleardot.gif

cleardot.gif


Roskonix
16 часов назад




Что-то не получается... Батник есть, пути прописаны, клиент запускается, аккаунт пустой(сессия не записана). При попытке зайти на сервер пишет Bad login.
Что я делаю не так?
Ответить
·
cleardot.gif

cleardot.gif

Все ответы (3)

АНаТоЛий ЧерВяк


11 часов назад


Не во всех сашах прегматч
В основном стоит MySQL фильтры
Да, не спорю сцук забыл про него =_=

Ответить
·
cleardot.gif

cleardot.gif


АНаТоЛий ЧерВяк


10 часов назад


+Alex Alexx Ах б*я...
Прегматч блочит пробелы
Но ведь не кто не отменял пустоту ;D
пфф пустота.
PHP:
    if ( empty ( $_GET['sessionId'] ) and empty ( $_GET['user'] ) and empty ( $_GET['serverId'] ) and !preg_match("/^[a-zA-Z0-9_-]+$/", $user) || !preg_match("/^[a-zA-Z0-9:_-]+$/", $sessionid) || !preg_match("/^[a-zA-Z0-9_-]+$/", $serverid)){

    echo "Bad login";
    exit;
    }
 
пфф пустота.
PHP:
    if ( empty ( $_GET['sessionId'] ) and empty ( $_GET['user'] ) and empty ( $_GET['serverId'] ) and !preg_match("/^[a-zA-Z0-9_-]+$/", $user) || !preg_match("/^[a-zA-Z0-9:_-]+$/", $sessionid) || !preg_match("/^[a-zA-Z0-9_-]+$/", $serverid)){

    echo "Bad login";
    exit;
    }
Да и кто му же прег-матч легко обходиться... Я думаю что Червяк запросто сломает проект @alexandrage
 
Да и кто му же прег-матч легко обходиться... Я думаю что Червяк запросто сломает проект @alexandrage
я перевожу веб сурсы сашки на pdo думаю с моими сурсами станет сложнее сломать. да и то что сессия при регистрации пуста это тоже можно обойти тем что вписать любое рандомное число или что то ещё.
 
Так же нет ничего трудного проверить пустая ли колонка сессии или нет. Да и вообще в нормальных системах сессия должна быть хоть какая то (123456 тот же), иначе выйдет кака, которая в видео.
пфф пустота.
PHP:
    if ( empty ( $_GET['sessionId'] ) and empty ( $_GET['user'] ) and empty ( $_GET['serverId'] ) and !preg_match("/^[a-zA-Z0-9_-]+$/", $user) || !preg_match("/^[a-zA-Z0-9:_-]+$/", $sessionid) || !preg_match("/^[a-zA-Z0-9_-]+$/", $serverid)){

    echo "Bad login";
    exit;
    }
вместе с and не прокатит.
PHP:
 if ( empty ( $_GET['sessionId'] ) ||  empty ( $_GET['user'] ) || empty ( $_GET['serverId'] ) || !preg_match("/^[a-zA-Z0-9_-]+$/", $user) || !preg_match("/^[a-zA-Z0-9:_-]+$/", $sessionid) || !preg_match("/^[a-zA-Z0-9_-]+$/", $serverid)){
    echo "Bad login";
    exit;
    }
 
Так же нет ничего трудного проверить пустая ли колонка сессии или нет. Да и вообще в нормальных системах сессия должна быть хоть какая то (123456 тот же), иначе выйдет кака, которая в видео.

вместе с and не прокатит.
PHP:
 if ( empty ( $_GET['sessionId'] ) ||  empty ( $_GET['user'] ) || empty ( $_GET['serverId'] ) || !preg_match("/^[a-zA-Z0-9_-]+$/", $user) || !preg_match("/^[a-zA-Z0-9:_-]+$/", $sessionid) || !preg_match("/^[a-zA-Z0-9_-]+$/", $serverid)){
    echo "Bad login";
    exit;
    }
я немного забылся
 
Но ведь не кто не отменял пустоту ;D
с пустотой так же не сработает т.к. в большинстве исходников публикуемых здесь в MySQL таблицах по умолчанию значение для поля sessionId и прочих задается NULL ( спец. маркер для того чтобы различить пустую строку от еще не затронутого поля в бд)

Но наверное уникальные образцы с такой уязвимостью все таки найдутся.
 
Нихрена он не обходится, тебе никак не передать ни null ни просто пустоту. Еслиб все было так просто, то тогда бы уже всех взломали. А пока под видио червяка все пишут, НЕ работает!
Какой то червяк запилил видос и все повелись :D.

А для тебя фикс. Или ты хочешь чтоб у тебя вообще авторизация не проходила :D.

PHP:
    if ( !empty ( $_GET['sessionId'] ) ||  !empty ( $_GET['user'] ) || !empty ( $_GET['serverId'] ) || !preg_match("/^[a-zA-Z0-9_-]+$/", $user) || !preg_match("/^[a-zA-Z0-9:_-]+$/", $sessionid) || !preg_match("/^[a-zA-Z0-9_-]+$/", $serverid)){
    echo "Bad login";
    exit;
    }
Может ты устроишь с Червяком Баттл:D Тогда и увидим
 
Нихрена он не обходится, тебе никак не передать ни null ни просто пустоту. Еслиб все было так просто, то тогда бы уже всех взломали. А пока под видио червяка все пишут, НЕ работает!
Какой то червяк запилил видос и все повелись :D.

А для тебя фикс. Или ты хочешь чтоб у тебя вообще авторизация не проходила :D.

PHP:
    if ( !empty ( $_GET['sessionId'] ) ||  !empty ( $_GET['user'] ) || !empty ( $_GET['serverId'] ) || !preg_match("/^[a-zA-Z0-9_-]+$/", $user) || !preg_match("/^[a-zA-Z0-9:_-]+$/", $sessionid) || !preg_match("/^[a-zA-Z0-9_-]+$/", $serverid)){
    echo "Bad login";
    exit;
    }
разве ! empty ? для пустоты нам надо empty а для того что бы небыло её ! empty.
 

Поделиться этой страницей

Назад
Верх