Visualizzazione risultati 1 fino 9 di 9

Discussione: [Php Nuke] Criptare i dati del file di configurazione

  1. #1
    Guest

    Predefinito Criptare i dati del file di configurazione

    Salve popolo di AV...
    Avrei bisogno di sapere una cosa. devo fare in modo che il file di configurazione di phpnuke (config.php) sia criptato con altra password (o altro modo per non farlo modificare o vedere dal pannello). La cosa non dovrebbe essere difficile perchè sono riuscito con phpBB e la differenza del file di configurazione con phpnuke è minima.
    Se volete vi posto come ho fatto con phpBB, magari qualcuno può adattarmelo per phpnuke...

    Grazie
    ngforum

  2. #2
    Ospite Guest

    Cool

    passami quello ke hai fatto in phpnuke(o almeno un piccolo pezzo) tanto per vedere se il modo che ho io funzia...

  3. #3
    Guest

    Predefinito

    Allora in phpnuke non ho fatto nulla. Questo lo uso per phpBB..

    a.php
    Codice PHP:
    <?php

    if (file_exists('secureconfig.php'))
    {
    echo
    'YOU HAVE TO DELETE secureconfig.php';
    exit;
    }

    $sdr = $_SERVER['DOCUMENT_ROOT'];
    $sdr = strtoupper(str_replace('\\','/',$sdr));

    $dbuser = ECH0('{DBUSER}',$sdr);
    $dbpasswd = ECH0('{DBPASSWD}',$sdr);
    $table_prefix = ECH0('{TABLE_PREFIX}',$sdr);

    function
    ECH0($str,$key)
    {
    $letter = -1;
    $lenpath = strlen($key);

    $str = base64_decode($str);
    for (
    $i = 0; $i < strlen($str); $i++)
    {
    $letter++;
    if (
    $letter >= $lenpath)
    {
    $letter = 0;
    }
    $neword = ord($str{$i})-ord($key{$letter});
    if (
    $neword <= 0)
    {
    $neword += 256;
    }
    $newpass .= chr($neword);
    }
    // echo $newpass;
    return $newpass;
    }

    ?>
    secureconfig.php
    Codice PHP:
    <?php
    // ENCRYPT YOUR CONFIG.PHP
    // http://www.in-my-opinion.org/in-my-opinion-3734.html

    echo "<html><body style='font-family:courier new'>";

    if (!
    $aphp = @file_get_contents('a.php'))
    {
    echo
    '<br /><br />Sorry, could not read "a.php". Please, correct the problem and try again.';
    exit;
    }

    if (!
    $handle = @fopen('a.php','w'))
    {
    echo
    '<br /><br />Sorry, could not open "a.php" for writing. Please, correct the problem and try again.';
    exit;
    }

    $sdr = $_SERVER['DOCUMENT_ROOT'];
    include(
    'config.php');
    $sdr = strtoupper(str_replace('\\','/',$sdr));

    if (!
    $sdr)
    {
    echo
    "<br />Sorry, you cannot secure your Database Password";
    exit;
    }
    echo
    '<br />Your Server Document Root is: '.$sdr;
    echo
    '<br />Important: Whenever (in the future) you change this path (for example if you move with your forum to another server) you need to rerun this program';
    echo
    '<br /><br />';

    //$sdr = chr(199);

    function encode($str,$key)
    {
    $letter = -1;
    $lenpath = strlen($key);

    for (
    $i = 0; $i < strlen($str); $i++)
    {
    $letter++;
    if (
    $letter >= $lenpath)
    {
    $letter = 0;
    }
    $neword = ord($str{$i})+ord($key{$letter});
    if (
    $neword >= 256)
    {
    $neword -= 256;
    }
    $newpass .= chr($neword);
    }

    return
    base64_encode($newpass);
    }


    echo
    "<br />A file called 'a.php' has been created. Now do the following:";
    echo
    "<br />1) Open 'config.php'\n";
    echo
    "<br />2) Replace the 3 lines: ";
    echo
    "<div style='border: 2px solid red'>";
    echo
    ' $dbuser = \''.$dbuser.'\';';
    echo
    '<br /> $dbpasswd = \''.$dbpasswd.'\';';
    echo
    '<br /> $table_prefix = \''.$table_prefix.'\';';
    echo
    "</div>";
    echo
    "<br /> by the following 4 lines:";
    $dbpasswd = encode($dbpasswd,$sdr);
    $dbuser = encode($dbuser,$sdr);
    $table_prefix = encode($table_prefix,$sdr);
    echo
    "<div style='border: 2px solid green'>";
    echo
    ' $dbuser = \''.randPass(strlen($dbuser)).'\';';
    echo
    '<br /> $dbpasswd = \''.randPass(strlen($dbpasswd)).'\';';
    echo
    '<br /> $table_prefix = \''.randPass(strlen($table_prefix)).'_\';';
    echo
    "<br /> include('a.php');";
    echo
    "</div>";
    echo
    "(or any other random sequence of characters)";

    echo
    "<br />";
    echo
    "<br />Now delete the file 'secureconfig.php'!";

    $fin[] = '{DBUSER}';
    $fin[] = '{DBPASSWD}';
    $fin[] = '{TABLE_PREFIX}';
    $rep[] = $dbuser;
    $rep[] = $dbpasswd;
    $rep[] = $table_prefix;

    if (@
    fwrite($handle,str_replace($fin,$rep,$aphp)) === FALSE)
    {
    echo
    '<br /><br />Sorry, could not write to "a.php". Please, correct the problem and try again.';
    }

    fclose($handle);

    function
    randPass($len)
    {
    for (
    $i=0; $i < $len; $i++)
    {
    $r = rand(1,3);
    if ((
    $i == 0) && ($r == 1))
    {
    $r = 3; // No digit as first character
    }
    switch(
    $r)
    {
    case
    1: $pw .= chr(rand(48,57)); break; //0-9
    case 2: $pw .= chr(rand(65,90)); break; //A-Z
    case 3: $pw .= chr(rand(97,122)); break; //a-z
    }
    }
    return
    $pw;
    }

    echo
    '</body></html>';

    ?>

  4. #4
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    ti accontenti di non visualizzare la password per la connessione al database mysql???

    se è così prova a mettere una password a caso, si dovrebbe collegare lo stesso e nel tuo spazio non avresti comunque alcuna password che possa garantire accesso all'ftp o al pannello ;)
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  5. #5
    Guest

    Predefinito

    Non perchè non parlo di AV... Nel mio hosting il server MySql non risiede su localhost ma è in altro server...

  6. #6
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    per la natura della cosa (deve essere decodificata al volo!) qualsiasi protezione userai potrà essere tranquillamente reversata....

    per confondere le idee potresti usare l'estensione mcrypt per cifrare/decifrare la password e modificando tutto il codice ogni volta che serve la password..

    ma anche il quel caso devi tenere la chiave in un posto accessibile...

    senza contare che tutte queste storie per cifrare la password non fanno altro che rallentare l'esecuzione di tutte le pagine in quanto se uno vuole leggerti la password per quanto "offuschi" il codice riuscirà a trovarci un appiglio...

    non a caso esiste il detto:
    security by obscurity is INSECURITY

    :D
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  7. #7
    Guest

    Predefinito

    hehe purtroppo lo so...
    A me bastava solo una roba tipo quella che ho postato sopra, solo adattata col phpnuke (io ci ho provato ma senza successo), la cosa dovrebbe essere abbastanza semplice no?

    Va bè aspettiamo a vedere che ja fatto belivedj.... :smile:

    Come uso mcrypt?

  8. #8
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    mcrypt non penso sia caricata su altervista...

    comunque:
    http://www.php.net/mcrypt

    ;)
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  9. #9
    Guest

    Predefinito

    Qaulcuno riuscirebbe a modificare lo script postato sopra in modo che funzioni conphpnuke?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •