Помогите Вход на сервер под любым паролем.

vinipyx7

Старожил
Пользователь
Баллы
103
Имя в Minecraft
vinipyx7
Помогите у меня в лаунчере набираешь любой пароль к зарегистрированному на сайте нику и ты можешь под ним войти!
Подскажите где мне искать эту проблему, чтоб её исправить?
 
А не подскажешь что тут не так то?
<?php

require_once('../system.php');
$str = '';

if (!empty($_POST['user']) and !empty($_POST['password']) and !empty($_POST['version'])) {


require_once('../instruments/password.php');

$login = $_POST['user'];
$password = $_POST['password'];
$ver = $_POST['version'];

if (!preg_match("/^[a-zA-Z0-9_-]+$/", $login)) {

$str = "Login process [Bad symbols Login] ";
echo "Bad login";

} elseif (!preg_match("/^[a-zA-Z0-9_-]+$/", $password)) {

$str = "Login process [Bad symbols Password] ";
echo "Bad login";

} elseif (!preg_match("/^[0-9]+$/", $ver)) {

$str = "Login process [Bad symbols Version] ";
echo "Bad login";

} elseif (getGameInfo('launcher') == $ver) {

$result = BD("SELECT $bd_aPassword,$bd_aUsername,$bd_aLvl FROM $bd_table_accounts WHERE $bd_aUsername='$login'");

$line = mysql_fetch_array($result);

if (!$line) {
vtxtlog("Login process [Unknown user] User [$login] Password [$password]");
echo "Bad login";
exit;
}

$user_lvl = $line[$bd_aLvl];

if ($user_lvl <= 0) {

$str = "Login process [Banned user] User [$login] Password [$password]";
echo "Bad login";

} else {

$realPass = $line[$bd_aPassword];
$orig_login = $line[$bd_aUsername];

if (checkPass($realPass,$password))
{
$sessid = generateSessionId();
$gamebuild = getGameInfo('build');

BD("UPDATE $bd_table_accounts SET $bd_aSession='$sessid' WHERE $bd_aUsername='$login'");

$dlticket = md5($orig_login);
echo $gamebuild.':'.$dlticket.':'.$orig_login.':'.$sessid.':';
$str = "Login process [Success] User [$login] Session [$sessid]";
} else {
$str = "Login process [Bad login] User [$login] Password [$password]";
echo "Bad login";
}
}

} else {
$str = "Login process [Old version]";
echo 'Old version';
}

} else {

$str = "Login process [POST parameter empty] ";
if (empty($_POST['user'])) $str .= "LOGIN parameter is empty | ";
if (empty($_POST['password'])) $str .= "PASSWORD parameter is empty";
if (empty($_POST['version'])) $str .= "VER parameter is empty";

echo "Bad login";

}

vtxtlog($str);

?>
 
не, не подскажу, но вижу в коде функцию vtxtlog, значит где-то есть лог всех действий, найди его и посмотри, может что-то там будет написано

еще посмотри логи апача на предмет ошибок в php скриптах.
 
Вот нашел лог , но я в этом непониманию ни черта
Login process [Success] User [diman111] Session [142323470617236060036]
Join Server [Info] Session [142323470617236060036] | User [diman111] | Server [-1ec2f55d4f2e6f42e047e650bd6edb3a14e9ff6]
Join Server [Result] Login OK
Server Test [Success]
Login process [Success] User [glennck] Session [172225358315473566601]
Join Server [Info] Session [172225358315473566601] | User [glennck] | Server [45768d80fc3218941b84ad3dbd61fd6a1c419aef]
Join Server [Result] Login OK
Server Test [Success]
Login process [Success] User [zwerok] Session [146254301412538648022]
Join Server [Info] Session [146254301412538648022] | User [zwerok] | Server [2aca52b8487821d89b15decd98381869746fc142]
Join Server [Result] Login OK
Server Test [Success]
Login process [Success] User [danal340] Session [173880865512531512702]
Login process [Success] User [maska] Session [198960628810534425228]
Join Server [Info] Session [198960628810534425228] | User [maska] | Server [b64cd21635fbe2a9d0236b90caf30c2fc9e427b]
Join Server [Result] Login OK
Server Test [Success]
Join Server [Info] Session [173880865512531512702] | User [danal340] | Server [723c4882f534b6b9df6956b6b0ef441832600b54]
Join Server [Result] Login OK
Server Test [Success]
Login process [Success] User [danal340] Session [192223562813123489618]
Join Server [Info] Session [192223562813123489618] | User [danal340] | Server [-3d8d64d836e5a4016f61e75e2e363e3f8ed966e9]
Join Server [Result] Login OK
Server Test [Success]
Login process [Success] User [danal340] Session [187009555815664994749]
Join Server [Info] Session [187009555815664994749] | User [danal340] | Server [-4eb2a2fd31e3e9188dd54fc65d29d8c76b34e2aa]
Join Server [Result] Login OK
Server Test [Success]
Login process [Success] User [danal340] Session [133012325715194795019]
Join Server [Info] Session [133012325715194795019] | User [danal340] | Server [3ac1bc006e34dfafd73256c1654f7e0211b0e4a8]
Join Server [Result] Login OK
Server Test [Success]
Login process [POST parameter empty] PASSWORD parameter is empty
Login process [Success] User [Fredsimf] Session [182738129713570094225]
Login process [Success] User [Fredsimf] Session [167584650817797272687]
Login process [Success] User [Fredsimf] Session [109534606512188540462]
Login process [Success] User [vinipyx7] Session [208794537615948197227]
Join Server [Info] Session [208794537615948197227] | User [vinipyx7] | Server [53b9afb6b7f2830eaab5dabee950ad7402c3ba0]
Join Server [Result] Login OK
Server Test [Success]
Login process [Success] User [vinipyx7] Session [180341928914714141628]
Join Server [Info] Session [180341928914714141628] | User [vinipyx7] | Server [3fb15a1b0967ef46f338fd3f1276e579f945e430]
Join Server [Result] Login OK
Server Test [Success]
.
 
Если писать левый логин то не войдёш , а вот если любой зарегистрированый логин и любой пароль к нему пишешь то без проблем входишь под этим логином.
 
Что за система авторизации? И какой лаунчер. Хотя не в лаунчере проблема.
 
Авторизация через лаунчер!
 
А не подскажешь что тут не так то?
$result = BD("SELECT $bd_aPassword,$bd_aUsername,$bd_aLvl FROM $bd_table_accounts WHERE $bd_aUsername='$login'");
Проблема в том, что у тебя нет проверки пароля на совпадение.
Для чего вообще автор этого скрипта оставил такую огромную брешь?
Починить можно так:
$result = BD("SELECT $bd_aPassword,$bd_aUsername,$bd_aLvl FROM $bd_table_accounts WHERE $bd_aUsername='$login' AND $bd_aPassword='$password'");
 
да ладно, а это что?
Код:
$realPass = $line[$bd_aPassword];
$orig_login = $line[$bd_aUsername];
 
if (checkPass($realPass,$password))
{
$sessid = generateSessionId();
$gamebuild = getGameInfo('build');
а вот что возвращает функция checkPass() - неизвестно.
 
да ладно, а это что?
а вот что возвращает функция checkPass() - неизвестно.
Это велосипед автора, который является частичной (или даже полной) копией функции strcmp.
Данный код явно является попыткой переписать другой скрипт под себя.
 
Проблема в том что в системе скинов этаже хрень вот ссылка http://www.minecraft.biz.ua/reg/index.php
и ещё привязка сделана к joomla и когда добавляли db и php файлы , в инструкции к joomla было написано удалить reg.php что я и сделал.
 
Проблема в том, что у тебя нет проверки пароля на совпадение.
Для чего вообще автор этого скрипта оставил такую огромную брешь?
Починить можно так:
не помогло теперь вообще не могу войти
 
ахахахха ну точно, любой пароль к юзеру vinipyx7, попробуй найти норм скрипт авторизации, ибо это не дело
 
Может проблема где то тут
<?php

function createPass($password) { //шифрует пароль при регистрации

return md5($password);

}

function checkPass($realPass,$password) { //проверяет пароль при авторизации $realPass - то что хранится в БД , $password - то что ввел пользователь

$cryptPass = false;
$parts = explode( ':', $realPass);
$salt = $parts[1];
$cryptPass = md5($password . $salt) . ":" . $salt;

if ($realPass = $cryptPass) return true;
else return false;
}
?>
 
@vinipyx7, выкинь ты эти испорченные скрипты и ставь рабочие :trf:.
 
Назад
Верх