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

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

перевожу на русский, к примеру $_GET['sessionId'] передается пустой:
если ( (размер GET не равно 3) или (не пустая $_GET['sessionId']) или (не пустая $_GET['user']) ) =
= если (0 или 0 или 1), результат логического сложения 1, условие срабатывает, но срабатывает на не пустой $_GET['user']

или это я торможу?
 
перевожу на русский, к примеру $_GET['sessionId'] передается пустой:
если ( (размер GET не равно 3) или (не пустая $_GET['sessionId']) или (не пустая $_GET['user']) ) =
= если (0 или 0 или 1), результат логического сложения 1, условие срабатывает, но срабатывает на не пустой $_GET['user']

или это я торможу?
Все же мой касяк :D. Одиночные нули определаються неправильно
http://alexandrage.dyndns.org/site/joinserver.php?sessionId=00&user=00&serverId=00

sizeof($_GET)!=3 это 3 гет в строке ?get1=1$get2=2&get3=3 Может кому то нужна такая проверка.
А кто был вот таким умником :D

[11 02 2014 20:09] ud`fm9fm:`83=050gnhd7ni`b652oc3n;70719122hha031<o02h<147`hj4`=3:5`gin1g Gioner -39de3e162405236a33eda3695560811859cd77e1
 
Последнее редактирование:
Я майном давно не занимаюсь, но, как мне кажется, можно просто сделать проверку на определенное кол-во символов. Ведь в сессии определенное количество знаков и символов? (32,64)
Достаточно не пропускать null и все.
 
Если лаунчер уязвим, то админку могут взломать?(войти под логином админа)
 
Если лаунчер уязвим, то админку могут взломать?(войти под логином админа)
Тут обсуждается другого рода уязвимость. Якобы зарегистрированный лузернейм у которого сессия еще null, может зайти с батника не введя сессию. Не знаю на счет других лаунчеров, в лаунчере сашка нет таких дыр. Хоть и защита от читов там слабенькая, но дыр точно нету.
Sashok724 сейчас пабликовый лаунчер, он теперь как api -> пример для написания лаунчера на java. И как временное решение для новичков.
 
Последнее редактирование:
А для тебя фикс. Или ты хочешь чтоб у тебя вообще авторизация не проходила :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;
    }
Не мой код :coffee:
 
Dereku, Как все запущено, у меня принимается aes s= и на скрипте расшифровывает.
 
Dereku, Как все запущено, у меня принимается aes s= и на скрипте расшифровывает.
Вот я примерно тоже самое хочу сделать на авторизации в клиенте - шифровать в одну строку все переменные и расшифровывать в клиенте. Вот только пока порт креативного инвентаря с 1.3.2 на 1.2.5 криво работает - блоки не отображаются во вкладках :(
 
Вот я примерно тоже самое хочу сделать на авторизации в клиенте - шифровать в одну строку все переменные и расшифровывать в клиенте. Вот только пока порт креативного инвентаря с 1.3.2 на 1.2.5 криво работает - блоки не отображаются во вкладках :(
Я шифрую в одну строку ник, сессию, сервер, инфу от универсального обхода.
 
Я шифрую в одну строку ник, сессию, сервер, инфу от универсального обхода.
:\
булева активности аккаунта, булева бана, строка ника, строка сессии, int писем, int группы, int предупреждений, int виртуальных денег, int реальных денег.
Вот так вот :D
Хотя оно потом будет изменяться - я ещё не смотрел, какие виды шифровки могут дешифровываться обратно :/
 
:\
булева активности аккаунта, булева бана, строка ника, строка сессии, int писем, int группы, int предупреждений, int виртуальных денег, int реальных денег.
Вот так вот :D
Хотя оно потом будет изменяться - я ещё не смотрел, какие виды шифровки могут дешифровываться обратно :/
Вот и я думаю, может rsa юзать, там паблик ключ не может расшифровывать.
 
Привер ребятки :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;
    }
Заметь, это ты сейчас тут написал, а на проектах стоят голые лаунчеры :) без данного фикса..

Вот код фильтрации в реальном времени (стоит на 99% проектов с сашами)
PHP:
    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;
    }

И не каких Empty
Так что не надо мне тут голову засерать :)
 
Привер ребятки :D
Это дело я выложил не совсем для обхода батника
(я в начале указал что для людей которые знают куда это можно применить)
Пустыми бывают не только колонки с сессией, об этом не стоит забывать...

Заметь, это ты сейчас тут написал, а на проектах стоят голые лаунчеры :) без данного фикса..

Вот код фильтрации в реальном времени (стоит на 99% проектов с сашами)
PHP:
    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;
    }

И не каких Empty
Так что не надо мне тут голову засерать :)
Фикс вступил в силу почти сразу же после того, как @alexandrage увидел тему :D
 
Фикс вступил в силу почти сразу же после того, как @alexandrage увидел тему :D
пффф. ждите нового фикса, с PDO :D
Привер ребятки :D
Это дело я выложил не совсем для обхода батника
(я в начале указал что для людей которые знают куда это можно применить)
Пустыми бывают не только колонки с сессией, об этом не стоит забывать...

Заметь, это ты сейчас тут написал, а на проектах стоят голые лаунчеры :) без данного фикса..

Вот код фильтрации в реальном времени (стоит на 99% проектов с сашами)
PHP:
    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;
    }

И не каких Empty
Так что не надо мне тут голову засерать :)
пфф. пойду туториал запишу :D
 

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

Назад
Верх