Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   hash в скрипте логина (https://forum.antichat.xyz/showthread.php?t=134564)

sidrus 12.08.2009 19:53

hash в скрипте логина
 
вобщем такая проблемма
у меня сервер л2 и у него в базе все пароли лежат в хеше вирлпул база 64
а когда с сайта запрашиваю опредилённый аккаунт он нелогинется скарей всего иззи того что при логине пасс кодируется в другом хеше
вот скрипт логина
тут разработчик скрипта сказал с 87 по 91 строчки править нада, но сто тока не пробовал ниработает
PHP код:

<?php session_start();
if (
__FILE__==$_SERVER['SCRIPT_FILENAME']) {
    die (
"You can't access this file directly...");
}

class 
login {
    var 
$name 'login';
    var 
$version '1.0 CL@$Rev: 1125 $';
    var 
$module_type 'client';
    var 
$admin_side false;


    function 
auth_check($login$passwd) {
        global 
$db;
        
$login addslashes($login);
        
$result $db['prim']->query("SELECT ".AC_PASSWORD." AS password FROM ".TBL_ACCOUNTS." WHERE ".AC_LOGIN." = '".$login."'");
        return (
$account $db['prim']->fetch_array($result)) && $account['password'] == $passwd;
    }

    function 
clear_login($txt) {
    global 
$CFG_CLIENT,$CFG;

        
$expire_t time() - 86400;
        
setcookie("logged_usr",    ""$expire_t);
        
setcookie("login_usr",     ""$expire_t);
        
setcookie("pass_usr",      ""$expire_t);
        
setcookie("auth_usr_hash"""$expire_t);

        
setcookie("serv_id"""0'/');
        unset(
$_COOKIE['serv_id']);

        
$text '';
        
$CFG_CLIENT['skin'] = 'login';
        
$CFG_CLIENT['default_module'] = $this->name;
        
$CFG $CFG_CLIENT;
        unset(
$_POST);
        unset(
$_COOKIE);
        
$content = array(
            
'text_err' => $txt,
            
'text' => $text,
            
'ses_name' => session_name(),
            
'ses_id' => session_id(),
            
'form_action' => '?module='.$this->name,
            
'_template_' => 'LOGIN',
        );

        return 
$content;
    }

    function 
_main() {
    global 
$request$db$CFG_CLIENT,$CFG;
        if(isset(
$_REQUEST['logout'])){
            return 
$this->clear_login("{login_logout}");
        }
        if (!isset(
$_POST['getin_usr'])) {                //no form submitted
              
if (!isset($_COOKIE['logged_usr'])) {             //no cookie set yet
                //login
                
$CFG_CLIENT['skin'] = 'login';
                
$CFG_CLIENT['default_module'] = $this->name;
                
$CFG $CFG_CLIENT;
                
$content = array(
                    
'text_err' => '',
                    
'text' => $text,
                    
'ses_name' => session_name(),
                    
'ses_id' => session_id(),
                    
'form_action' => '?module='.$this->name,
                    
'_template_' => 'LOGIN',
                );
                return 
$content;
            } else {    
//else check cookie auth.
                
if ($this->auth_check($_COOKIE['login_usr'], $_COOKIE['pass_usr'])) {
                    if (
$_COOKIE['auth_usr_hash']==md5($_COOKIE['login_usr'].date("d-a").$_SERVER['HTTP_USER_AGENT'])) {
                        
setcookie("logged_usr"'1');
                        
setcookie("login_usr"$_COOKIE['login_usr']);
                        
setcookie("pass_usr"$_COOKIE['pass_usr']);
                        
setcookie("auth_usr_hash"md5($_COOKIE['login_usr'].date("d-a").$_SERVER['HTTP_USER_AGENT']));
                    } else {
                        return 
$this->clear_login("{login_have}");
                        exit;
                    }
                } else {
                    return 
$this->clear_login("{login_have}");
                    exit;
                }
            }
        } else {      
//else check form, cookie auth.
            
if ($this->auth_check($_POST['login_usr'],  base64_encode(pack('H*'sha1(utf8_encode($_POST['pass_usr'])))) ) ) {
                if(isset(
$_SESSION['captcha_keystring']) && isset($_POST['keystring']) && ($_SESSION['captcha_keystring'] ==  $_POST['keystring'])) {
                    
setcookie("logged_usr"'1');
                    
setcookie("login_usr"$_POST['login_usr']);
                    
setcookie("pass_usr"base64_encode(pack('H*'sha1(utf8_encode($_POST['pass_usr'])))));
                    
setcookie("auth_usr_hash"md5($_POST['login_usr'].date("d-a").$_SERVER['HTTP_USER_AGENT']) );
                    
$CFG_CLIENT['skin'] = "default";
                    
$CFG_CLIENT['default_module'] = "info";
                    
$CFG $CFG_CLIENT;
                    
header("Location: ./");
                } else {
                    return 
$this->clear_login("{login_err_captcha}");
                    exit;
                }
                unset(
$_SESSION['captcha_keystring']);
            } else {
                return 
$this->clear_login("{login_have}");
                exit;
            }
        }
    }
}
?>


помогите плиз

dinar_007 12.08.2009 20:09

Код нормально в теги оформи...
И че за хэш такой вирлпул база 64
Что-ж лентяи то какие...

sidrus 12.08.2009 20:13

Whirlpool(Base64): это кодировка
а вот пример пароля зашифрованного в даную кодировку
6qGPqcqjrta9V4TIv48FIDXgiDu9s/Cs5HCSDVQ67bYaAW4UItOdIFhK69rZfBY3VtGHGizHFUELI/icAcFO2Q==

мне нада в этом скрипте эту кадировку поставить

mailbrush 12.08.2009 20:18

md5 у тебя.
dinar_007, whirlpool.

dinar_007 12.08.2009 20:23

if ($this->auth_check($_POST['login_usr'], base64_encode(pack('H*', sha1(utf8_encode($_POST['pass_usr'])))) ) ) {
Эту строку раскуривай...

И функция какая-то у тебя долбанная
PHP код:

     function auth_check($login$passwd) {
          global 
$db;
          
$login addslashes($login);
          
$result $db['prim']->query("SELECT ".AC_PASSWORD." AS password FROM ".TBL_ACCOUNTS." WHERE ".AC_LOGIN." = '".$login."'");
          return (
$account $db['prim']->fetch_array($result)) && $account['password'] == $passwd;
     } 

Делай
select count(*) from tbl_name where login='lgn' and password='pass'

sidrus 12.08.2009 20:35

Цитата:

Сообщение от dinar_007
if ($this->auth_check($_POST['login_usr'], base64_encode(pack('H*', sha1(utf8_encode($_POST['pass_usr'])))) ) ) {
Эту строку раскуривай...

И функция какая-то у тебя долбанная
PHP код:

     function auth_check($login$passwd) {
          global 
$db;
          
$login addslashes($login);
          
$result $db['prim']->query("SELECT ".AC_PASSWORD." AS password FROM ".TBL_ACCOUNTS." WHERE ".AC_LOGIN." = '".$login."'");
          return (
$account $db['prim']->fetch_array($result)) && $account['password'] == $passwd;
     } 

Делай
select count(*) from tbl_name where login='lgn' and password='pass'




спс за ответ но чтото я некак не разкурю твоего совета))


как я понимаю мне в этой части кода нада заменить кодировки пароля и всё
PHP код:

return $this->clear_login("{login_have}");
                    exit;
                }
            }
        } else {      
//else check form, cookie auth.
            
if ($this->auth_check($_POST['login_usr'],  base64_encode(pack('H*'sha1(utf8_encode($_POST['pass_usr'])))) ) ) {
                if(isset(
$_SESSION['captcha_keystring']) && isset($_POST['keystring']) && ($_SESSION['captcha_keystring'] ==  $_POST['keystring'])) {
                    
setcookie("logged_usr"'1');
                    
setcookie("login_usr"$_POST['login_usr']);
                    
setcookie("pass_usr"base64_encode(pack('H*'sha1(utf8_encode($_POST['pass_usr'])))));
                    
setcookie("auth_usr_hash"md5($_POST['login_usr'].date("d-a").$_SERVER['HTTP_USER_AGENT']) );
                    
$CFG_CLIENT['skin'] = "default"


sidrus 12.08.2009 20:36

тока если в место MD5 пишу Whirlpool нифига не происходит(

sidrus 12.08.2009 23:16

ну что никого нет кто мог бы в крипте сменить кодировку?

FireFenix 12.08.2009 23:29

Вру......

замени на base64_encode(hash('whirlpool', $text)); где $text - что приходит на шифрование

sidrus 13.08.2009 00:04

Цитата:

Сообщение от FireFenix
Вру......

замени на base64_encode(hash('whirlpool', $text)); где $text - что приходит на шифрование


блин ссори но я непонял где мне нада это вставить?


Время: 18:41