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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Расшифровка хешей (https://forum.antichat.xyz/forumdisplay.php?f=76)
-   -   Алгоритм в NewBB Plus (https://forum.antichat.xyz/showthread.php?t=12919)

qPhoenix 13.01.2006 11:53

Алгоритм в NewBB Plus
 
Версия: E-Xoops 1.05Rev3
Поля в базе:
actkey - 8 симвалафф [a..z][1..0] (например 3f148c2c)
pass - 32 символа, кажись md5 (например f31587f6860740431a7065a45feb9694)

Перерыл половину скриптов, так и не нашел алгоритма... (с ПХП у мну слабенько :( ) Еси кто сталкивался с таким зверем - поведайте плз, как же там все таки пасс шифруют...

FHT 13.01.2006 17:20

Слышь сделай проще =)
Регаемся на форуме, с пассом 12345
Вскрываем базу выдергиваем свой хешик и пытаемся его отбрутить
Если брутнулся то все в кармане твой алгоритм =)
Если нет-то нада смотреть, думать.

DetMyl 15.01.2006 16:31

Цитата:

Сообщение от qPhoenix
Перерыл половину скриптов, так и не нашел алгоритма... (с ПХП у мну слабенько :( ) Еси кто сталкивался с таким зверем - поведайте плз, как же там все таки пасс шифруют...

Итак: вот ф-ция которая отвечает за логин:
PHP код:

function login($uname$pass) {
global 
$myts$db;

$uname  $myts->makeTboxData4Save($uname);
$result $db->query("SELECT * FROM ".$db->prefix('users')." WHERE uname='".$uname."'");

if ( 
$db->num_rows($result) == ) {
    
$convert false;
    
$passed  false;
    
$myrow   $db->fetch_array($result);
    if ( !empty(
$myrow['uid']) ) {
        if ( 
$myrow['pass'] == md5($pass) ) {
            
$passed true;
            } elseif ( 
$pass == $myrow['pass'] ) {
                
$convert true;
                
$passed  true;
                } elseif (
function_exists('crypt')) {
                    if (
crypt($passsubstr($myrow['pass'], 02)) == $myrow['pass'] ) {
                        
$convert true;
                        
$passed  true;
                    }
                }
                if ( 
$convert ) {
                    
$newpass md5($pass);
                    
$db->query("UPDATE ".$db->prefix('users')." SET pass='$newpass' WHERE uname='$uname'");
                }
                if ( 
$passed ) {
                    return new 
XoopsUser($myrow);
                }
            }
        }

return 
false;


Есть 3 варианта:
1)if $myrow['pass'] == md5($pass) , пароль зашифрован MD5, если совпал, все ок.
2)elseif $pass == $myrow['pass'] , пароль лежит в базе незашифрованный, если совпал, все ок и зашифровать пароль с MD5 и записать в базу...
3) elseif (function_exists('crypt')) {
if (crypt($pass, substr($myrow['pass'], 0, 2)) == $myrow['pass'] )
Хммм. в этом случае я не уверен, но мне кажется что бывает вариант, когда пароль зашифроан с помощью некоей ф-ции crypt, в этом случае ,если совпало то ок и зашифровать пароль с MD5 и записать в базу...

Т.е. пароль должен быть зашифрован в MD5, проверь внимательней.
P.S.: А 'actkey' это ключ активации....


Время: 22:27