per mettere in sicurezza il sito c'è da fare un po' di lavoro..
primo aggiornare il sito alla 2.3.1
poi mettere gli ultimi FIX alla sicurezza ancora esclusi nella 2.3.1 (release.27 via SVN)
non è una cosa semplicissima.
primi passi:
elimina il filemanager.php
elimina il define_language.php
entrambi nella cartella admin
poi metti questo codice in entrambi i 2 application_top.php
Codice: Seleziona tutto
// controlla eventuali intrusioni non autorizzate che sfruttino un bug del sistema (anti intrusions code)
$error_hack == 0;
$url_php_self = !isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
$error_value = '<br />';
if ( (substr_count($_SERVER['PHP_SELF'], ".php")) >= 2 ) {
$error_hack++;
$error_value .= 'error 0<br />';
}
if ( (substr_count($url_php_self, ".php")) >= 2 ) {
$error_hack++;
$error_value .= 'error 1<br />';
}
if (basename($url_php_self) != $PHP_SELF) {
$error_hack++;
$error_value .= 'error 2<br />';
}
if ( ( (substr_count(($_SERVER['REQUEST_URI']), ".php/login.php") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), ".php/logout.php") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), ".php/logout.php") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), ".php/validation_png.php") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), ".php/categories.php") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), ".php/file_manager.php") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), ".php/define_language.php") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), ".php/password_forgotten.php") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "../../") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "..//..//") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), " WHERE") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "+WHERE+") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "%20WHERE") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "=%27") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "%%") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "=%2527") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "%20union%20") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "\*") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "/*") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), ";!--") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "=http://") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "dlgzip") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "asc%3Deval") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "eval%28") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "eval%2528") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "eval(") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "+union+") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "%2Bunion%2B") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "../cmd") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "SELECT%20") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "SELECT+") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "wget%20") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "rush=") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "_START_") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "\()") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "=prompt(") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "=alert(") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "page=http://") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "??") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "environ00") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), ".php") ) >= 2)
|| ( (substr_count(($_SERVER['REQUEST_URI']), ".php/admin") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "login.php?action=backupnow") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "=alert(") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "fromCharCode") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "cookies=") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "mysql_query") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), ".passthru") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "ob_starting") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "pwtoken_get") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "<script") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "%3Cscript") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "</script>") ) != 0)
|| ( (substr_count(($_SERVER['REQUEST_URI']), "%3C/script%3E") ) != 0)
) {
$error_hack++;
$error_value .= 'error 3<br />';
}
if ((int)$error_hack >= 1) {
die('Bad Request for ' . (int)$error_hack . '!' . $error_value . 'You are Banned');
}
poi c'è molto altro da fare.......
elimina tutti i file PHP dentro la cartella images
elimina tutti i file "sospetti" dall'intero sito
cambia password al DB mysql
e cambia password all'admin
poi cambia il nome della cartella admin con un nome a caso e modifica il file Configure.php in modo che contenga il nome della nuova cartella admin
poi ci sono una miriade di fix.
ma gia' cosi' "sei un pelo meglio"