Hallo nochmal,
ich habe mich jetzt erst an die Test-Installation ranmachen koennen. Kam leider viel dazwischen. Was ich genau gemacht habe:
- Neuste Version 0.2.0-pre10 PL511 entpackt
- Aktuelles Patch 512 eingespielt- Dieses Patch herunterladen- Zugriffsrechte eingestellt:
Quote
- 777 auf inc
- 777 auf inc/.secret/
- 666 auf inc/config.php
- 644 auf alle 4 SQL-Dateien
- Installationsroutine install.php aufgerufen
- Nach Abschluss der Installation blieb die Seite weiss (URL:
http://intranet/test2/modules.php?module=admin)
- Datenbank enthielt aber alle Tabellen und Daten, die bei der Installation anfallen
- In inc/config.php die Eintraege in $MySQL korregiert:
$MySQL = array(
// CFG: MYSQL-HOST
'host' => "localhost",
// CFG: MYSQL-DBASE
'dbase' => "mxtest",
// CFG: MYSQL-LOGIN
'login' => "login",
// CFG: MYSQL-PASSWORD
'password' => "pass",
);
Es fehlten naehmlich dort die einfachen Anfuehrungszeichen um
host,
dbase,
login und
password- Fehlender Befehl
exit; in inc/mysql-connect.php; Zeile 308 eingefuegt
- Fehlender Versionsabgleich in inc/gen_sql_patches.php eingefuehgt:
Zeile: 41
if (!GET_EXT_VERSION("sql_patches") >= "0.3.6") return;- Seite aktualisiert; Register-Maske zum Anlegen des ersten Admin-Accounts kam endlich (keine weisse Seite mehr)
- Nach Eingabe der Admin-Daten
admin und Passwort
geheim kam folgende Meldung:
Quote
Laufzeit-Problem erkannt!
Fataler Fehler Nr. #1:
· Ihre Datei inc/config.php ist beschreibbar! Dies ist ein mögliches Sicherheitsrisiko!
Fataler Fehler Nr. #2:
· Das Verzeichnis inc ist beschreibbar! Bitte setzen Sie die Zugriffsrechte auf 755 oder 555.
Diese koennt ihr alle ignoieren! Erstmal in Admin-Bereich einloggen...
- Aufgabe mit sql_patches auswaehlen und auf
Bearbeiten klicken
- Registrieren-Button rechts suchen (ist in der Mitte der Seite) und anklicken
- Weitere Fehlermeldungen kamen:
Quote
Laufzeit-Problem erkannt!
Fataler Fehler Nr. #1:
· /Homepages/Tripod/new_autoinstaller/mxchange/test2/inc/extensions.php (166):Can't DROP 'ext_has_admin'; check that column/key exists
MySQL-Abfragebefehl war:
ALTER TABLE mxchange_extensions DROP ext_has_admin
Fataler Fehler Nr. #2:
· Ihre Datei inc/config.php ist beschreibbar! Dies ist ein mögliches Sicherheitsrisiko!
Fataler Fehler Nr. #3:
· Das Verzeichnis inc ist beschreibbar! Bitte setzen Sie die Zugriffsrechte auf 755 oder 555.
Auch diese koennt ihr alle ignorieren, wer zuvor die Zugriffsrechte geaendert hat, wird die letzten beiden Fehler hier nicht mehr sehen.
Quote
755 auf inc und 644 auf inc/config.php
Die Meldung
Erweiterung wurde in Ihrem registriert. ist aber dennoch korrekt.
- Auf Willkommen im Admin-Bereich geklickt, "Falsches Passwort"
- URL
http://intranet/test2/modules.php?module=admin&logout=1 aufgerufen
Jetzt war ein Einloggen in den Admin-Bereich auch hier nicht mehr moeglich. Also weitere Tests am Script durchgefuehrt:
- inc/modules/admin.php mit Editor geoeffnet
- Zeile 163 steht hier ein Befehl:
$ret = CHECK_ADMIN_LOGIN($HTTP_POST_VARS['login'], $HTTP_POST_VARS['pass']);
- $ret mal mit die($ret); ausgegeben:
failed- Checksumme des Passwortes in der Tabelle
mxchange_admins gecheckt.
- Hier stellte sich ein Fehler heraus: Die ersten 9 Zeichen sollten im Hash der "Salt" (Salz zu deutsch, macht hier aber wenig Sinn) sein, diese waren aber nur
111111111 und das deutet auf ein Fehlverhalten des Scriptes hin!
- Den Hash
e8636ea013e682faf61f56ce1cb1ab5c (Passwort
geheim) in die Datenbank geschrieben:
UPDATE mxchange_admins SET password=MD5('geheim') WHERE id='1' LIMIT 1
- Die Seite nochmals abgeschickt und die POST-Daten erneut gesendet (ich hatte ja die Daten aus dem Login-Formular bereits abgeschickt, um den Rueckgabewert von
CHECK_ADMIN_LOGIN() zu erfahren)
- Jetzt kam ein
done zurueck! Das heisst, Passwort ist gueltig!
- Hash in Datenbank kontrolliert, hat sich geaendert auf
12df004d79160fffe971ff912e9f514c904b9a002c765b62a (ist immer noch das Passwort
geheim, aber mit dem besagten Salt zusammengerechnet. Wer hier mehr erfahren will, klicke sich
zu dieser englischsprachigen Seite durch.)
- Nach Entfernung der die()-Zeile aus inc/modules/admin.php und erneutem Aktualisieren der Seite und Senden der POST-Daten kam endlich der Admin-Willkommsbildschirm.
In der Funktion CHECK_ADMIN_LOGIN(), Script inc/modules/admin/admin-inc.php habe ich noch eines eingebaut:
- Vor der Zeile 103 (// Update password) habe ich noch folgenden Code eingebaut:
// Generate new hash
if (!$oldHash) $pass = generateHash($password);
- Vor der Zeile 90 (
if ((strlen($pass) == 32) && ($pass == md5($password)))) noch folgendes eingefuegt:
$oldHash = false;
- Vor der neuen Zeile 94 (
$pass = generateHash($password);) noch folgendes eingefuegt:
$oldHash = true;
- Den Befehlsblock beginnend mit
// Generate salt of password nach Zeile 104 verschoben und etwas modifiziert (klappt jetzt endlich)
Dadurch wird bei jedem erneuten Login (mit "gesalzenem Hash" ein neuer Hash in die Datenbank geschrieben (Passwort stimmt ja bis hier hin!).
Nach erneutem Klicken auf "Willkommen" blieb ich im Admin-Bereich eingeloggt.
Wer das Patchen selber nicht tun moechte, kann sich auch
diesen kleinen Patch downloaden. Diesen muesst ihr alle aber bitte
nach dem Patch 512 einspielen! Es enthaelt auch eine Datei aus der Erweiterung "sql_patches". Entsprechend bitte dann nicht erneut die Erweiterung downloaden, da sonst die gepachte Datei
inc/gen_sql_patches verloren geht.
Quix0r
« Last edit by
Quix0r on Tue Feb 13, 2007 9:07 pm. »