[Скрипт] IPB 3.0.1 Russian(IBR) Nulled - Maybe

Статус
В этой теме нельзя размещать новые ответы.
Не... там его родная, не удаленная.
Вот файлик посмотри
Том вроде же все и формируется.
 

Вложения

  • user.rar
    12,8 KB · Просмотры: 7
Не... там его родная, не удаленная.
Вот файлик посмотри *** скрытое содержание ***
Том вроде же все и формируется.
Последние 32 знака это хэш пароля, все что идёт до этого - соль!

Запусти вот это и сам увидишь:
PHP:
<?php

$arUser["PASSWORD"]='ilyDsAt94e212611c2d2053a5af9cece769840dc';

echo('$arUser["PASSWORD"]= '.$arUser["PASSWORD"].'<br />');

$salt = substr($arUser["PASSWORD"], 0, strlen($arUser["PASSWORD"]) - 32);

echo('$salt = '.$salt.'<br />');

$db_password = substr($arUser["PASSWORD"], -32);

echo('$db_password = '.$db_password.'<br />');

?>

Если пароль короче 32 знаков, то соль = "" а весь хэш это и есть пароль.

:cool:
 
А как это применить к авторизации
то

<?php

/**
* Invision Power Services
* IP.Board v3.0.1
* Login handler abstraction : Internal Method
* Last Updated: $Date: 2009-03-25 09:57:57 -0400 (Wed, 25 Mar 2009) $
*
* @author $Author: josh $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license Для просмотра ссылки Войди или Зарегистрируйся
* @package Invision Power Board
* @link Для просмотра ссылки Войди или Зарегистрируйся
* @since Tuesday 1st March 2005 (11:52)
* @version $Revision: 4300 $
*
*/

if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'.";
exit();
}

class login_external extends login_core implements interface_login
{
/**
* Login method configuration
*
* @access protected
* @var array
*/
protected $method_config = array();

/**
* Constructor
*
* @access public
* @param object ipsRegistry reference
* @param array Configuration info for this method
* @param array Custom configuration info for this method
* @return void
*/
public function __construct( ipsRegistry $registry, $method, $conf=array() )
{
$this->method_config = $method;
$this->external_conf = $conf;

parent::__construct( $registry );
}

/**
* Compare passwords
*
* @access private
* @param string Plain text password
* @param array Record from the remote table
* @return boolean
*/
private function _comparePasswords( $password, $remote_member )
{
$check_pass = $password;

switch( REMOTE_PASSWORD_SCHEME )
{
case 'md5':
$check_pass = md5( md5( $salt ) . md5( $password ) );
break;

case 'sha1':
$check_pass = sha1($password);
break;
}

if ( $check_pass == $remote_member[ REMOTE_FIELD_PASS ] )
{
return true;
}
else
{
return false;
}
}

/**
* Authenticate the request
*
* @access public
* @param string Username
* @param string Email Address
* @param string Password
* @return boolean Authentication successful
*/
public function authenticate( $username, $email_address, $password )
{
//-----------------------------------------
// Check admin authentication request
//-----------------------------------------

if ( $this->is_admin_auth )
{
$this->adminAuthLocal( $username, $email_address, $password );

if ( $this->return_code == 'SUCCESS' )
{
return true;
}
}

/*-------------------------------------------------------------------------*/
// SET UP: Edit DB details to suit
/*-------------------------------------------------------------------------*/

define( 'REMOTE_DB_SERVER' , $this->external_conf['REMOTE_DB_SERVER'] );
define( 'REMOTE_DB_PORT' , $this->external_conf['REMOTE_DB_PORT'] );
define( 'REMOTE_DB_DATABASE', $this->external_conf['REMOTE_DB_DATABASE'] );
define( 'REMOTE_DB_USER' , $this->external_conf['REMOTE_DB_USER'] );
define( 'REMOTE_DB_PASS' , $this->external_conf['REMOTE_DB_PASS'] );

/*-------------------------------------------------------------------------*/
// SET UP: Edit these DB tables to suit
/*-------------------------------------------------------------------------*/

define( 'REMOTE_TABLE_NAME' , $this->external_conf['REMOTE_TABLE_NAME'] );
define( 'REMOTE_FIELD_NAME' , $this->external_conf['REMOTE_FIELD_NAME'] );
define( 'REMOTE_FIELD_PASS' , $this->external_conf['REMOTE_FIELD_PASS'] );
define( 'REMOTE_EXTRA_QUERY' , $this->external_conf['REMOTE_EXTRA_QUERY'] );
define( 'REMOTE_TABLE_PREFIX', $this->external_conf['REMOTE_TABLE_PREFIX'] );
define( 'REMOTE_PASSWORD_SCHEME', $this->external_conf['REMOTE_PASSWORD_SCHEME'] );

//-----------------------------------------
// GET DB object
//-----------------------------------------

if ( ! class_exists( 'dbMain' ) )
{
require_once( IPS_KERNEL_PATH.'classDb.php' );
require_once( IPS_KERNEL_PATH.'class_db_' . ucwords($this->settings['sql_driver']) . ".php" );
}

$classname = "db_driver_" . $this->settings['sql_driver'];

$RDB = new $classname;

$RDB->obj['sql_database'] = REMOTE_DB_DATABASE;
$RDB->obj['sql_user'] = REMOTE_DB_USER;
$RDB->obj['sql_pass'] = REMOTE_DB_PASS;
$RDB->obj['sql_host'] = REMOTE_DB_SERVER;
$RDB->obj['sql_port'] = REMOTE_DB_PORT;
$RDB->obj['sql_tbl_prefix'] = REMOTE_TABLE_PREFIX;
$RDB->obj['use_shutdown'] = 0;
$RDB->obj['force_new_connection'] = 1;

//--------------------------------
// Get a DB connection
//--------------------------------

$RDB->connect();

//-----------------------------------------
// Get member from remote DB
//-----------------------------------------

$remote_member = $RDB->buildAndFetch( array( 'select' => '*',
'from' => REMOTE_TABLE_NAME,
'where' => REMOTE_FIELD_NAME."='".$RDB->addSlashes($username)."' ".REMOTE_EXTRA_QUERY ) );

$RDB->disconnect();

//-----------------------------------------
// Check
//-----------------------------------------

if ( ! $remote_member[ REMOTE_FIELD_NAME ] )
{
$this->return_code = 'NO_USER';
return false;
}

//-----------------------------------------
// Check password
//-----------------------------------------

$password = html_entity_decode($password, ENT_QUOTES);
$html_entities = array( "!", "$", "\" );
$replacement_char = array( "!", "$", "\\" );
$password = str_replace( $html_entities, $replacement_char, $password );

if ( ! $this->_comparePasswords( $password, $remote_member ) )
{
$this->return_code = 'WRONG_AUTH';
return false;
}

//-----------------------------------------
// Still here? Then we have a username
// and matching password.. so get local member
// and see if there's a match.. if not, create
// one!
//-----------------------------------------

$this->_loadMember( $username );

if ( $this->member_data['member_id'] )
{
$this->return_code = 'SUCCESS';
return false;
}
else
{
//-----------------------------------------
// Got no member - but auth passed - create?
//-----------------------------------------

$this->return_code = 'SUCCESS';

$this->member_data = $this->createLocalMember( array( 'members' => array( 'name' => $username, 'password' => $password ) ) );

return true;
}
}

/**
* Load a member
*
* @access private
* @param string Username
* @return void
*/
private function _loadMember( $username )
{
$member = $this->DB->buildAndFetch( array( 'select' => 'member_id', 'from' => 'members', 'where' => "members_l_username='" . mb_strtolower($username) . "'" ) );

if( $member['member_id'] )
{
$this->member_data = IPSMember::load( $member['member_id'], 'extendedProfile,groups' );
}
}
}
 
В файле: admin\sources\loginauth\external\auth.php
Найди функцию:
PHP:
    /**
     * Compare passwords
     *
     * @access    private
     * @param    string        Plain text password
     * @param    array         Record from the remote table
     * @return    boolean
     */
    private function _comparePasswords( $password, $remote_member )
    {
Замени ее полностью на эту:
PHP:
    /**
     * Compare passwords
     *
     * @access    private
     * @param    string        Plain text password
     * @param    array         Record from the remote table
     * @return    boolean
     */
    private function _comparePasswords( $password, $remote_member )
    {
    
    
    //Android Britix START
        f(strlen($remote_member[ REMOTE_FIELD_PASS ]) > 32)
        {
            $salt = substr($remote_member[ REMOTE_FIELD_PASS ], 0, strlen($remote_member[ REMOTE_FIELD_PASS ]) - 32);
            $db_password = substr($remote_member[ REMOTE_FIELD_PASS ], -32);
        }
            else
        {
            $salt = "";
            $db_password = $remote_member[ REMOTE_FIELD_PASS ];
        }
        
        if($salt != '')
                $check_pass  =  md5($salt.$password);
            else
                $check_pass  =  $password;
        
    //Android Britix STOP

        if ( $check_pass === $db_password)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
должно работать :nezn: если нет попробуй еще вот так поменять (пароль через md5 пропустить:(

PHP:
        if($salt != '')
                $check_pass  =  md5($salt.md5($password));
            else
                $check_pass  =  md5($password);

В Britix, поле пароля формируется так:
PHP:
$salt.md5($salt.$arParams["PASSWORD"]);
 
Android, мужик... мега респект, 100 кратное спасибо!!!
Наконец то все окей! ОГРОМНЕЙШЕЕ спасибо... будут бабки на вебмани кину тебе копеечку... пришли в ЛС кошелек.
KeyForDLE, спасибо что помогал.
 
Для Nginxа никто реврайт не переписывал?

UPD:
Все, разобрался в реврайте!
 
Подскажите, я обновил, всё норм, база переконвертировал ещё до обн., всё бы ничего , только вот что в админке:
1. Для просмотра ссылки Войди или Зарегистрируйся

2. Для просмотра ссылки Войди или Зарегистрируйся

Как это поправить без отката? Может какой запрос сделать в БД или прописать где-нить ручками? Помогите:(
 
Вот это должно быть скорее всего вот так
mbstring.internal_encoding UTF-8 no value
А только поправить как оно же в php.ini
Должно быть mbstring.internal_encoding = UTF-8

Сделал всё по Вашему совету.

Теперь на главной странице форума возникает ошибка со следующим текстом:

Fatal error: Uncaught exception 'Exception' with message 'Не удалось инициализировать регистр, кеш настроек либо пуст, либо испорчен' in /var/www/vhosts/hercules.tomsk.ru/httpdocs/admin/sources/base/ipsRegistry.php:1630 Stack trace: #0 /var/www/vhosts/hercules.tomsk.ru/httpdocs/admin/sources/base/ipsRegistry.php(498:( ipsRegistry->setUpSettings() #1 /var/www/vhosts/hercules.tomsk.ru/httpdocs/admin/sources/base/ipsController.php(75:( ipsRegistry::init() #2 /var/www/vhosts/hercules.tomsk.ru/httpdocs/admin/sources/base/ipsController.php(62:( ipsController->init() #3 /var/www/vhosts/hercules.tomsk.ru/httpdocs/index.php(24:( ipsController::run() #4 {main} thrown in /var/www/vhosts/hercules.tomsk.ru/httpdocs/admin/sources/base/ipsRegistry.php on line 1630

В чём может быть проблема теперь?
 
HerculeS, ты попробуй заново все поставить, если конечно форум новый, то есть терять не чего.
кеш настроек либо пуст, либо испорчен
Ну если не пробывал делать очистку кэша(там есть специальный раздел), попробуй... если конечно в админку заходит.
А если попробывать вернуть назад как было заведется? Это я к тому что может быть дело в работе mbstring именно...

P.S
Извините за оффтопное з.ы, но
Зря хостишься у Томск.ру, это полный ппц, хотя у тебя наверное трафик томский нахаляву... но все равно, хостинг у них ппц. Привет всем Томичам
 
Ошибка на 10 шаге, сразу после "Все BB-коды установлены". Есть решение?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху