Was bewirken Codechanges in common.php?

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
helluvaguy
Beiträge: 128
Registriert: Di 06.Apr, 2004 20:22

Was bewirken Codechanges in common.php?

Beitrag von helluvaguy »

Kann mir jemand sagen, wofür die Änderungn in der common.php eigentlich genau sind?

Code: Alles auswählen

#
#-----[ FIND ]---------------------------------------------
#
      if (!in_array($var, $not_unset))
      {
         unset($$var);
      }

#
#-----[ REPLACE WITH ]---------------------------------------------
#
      if (in_array($var, $not_unset))
      {
         die('Hacking attempt!');
      }
      unset($$var); 
Die verursachen bei einem Mod den ich nutze eine "Hacking Attampt" Meldung. Ich möchte verstehen, wozu diese Änderung gut ist, damit ich den Mod evtl ändern kann. (Leider wird der nicht mehr vom Autor supportet).

Welche Sicherheitslücke würde gerissen werden, wenn man diese Änderung wieder rückgängig machen würde.

Danke für Eure Infos
helluvaguy
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Damit werden alle übergebenen Werte, die in den SUPER GLOBALS enthalten sein sollen, einmal sauber initialisiert. Das verhindert, daß z. B. ein Cracker von aussen Daten und Werte einschmuggeln kann, die das Board schädigen können.

Bei welchem MOD passiert den nun das Hacking Attempt? In der Regel sollte genau das hier auf einen unsauber programmierten MOD hinweisen!

Kurze Erklärung:
Diese Code-Stelle prüft, ob z. B. Array-Konstrukte vorkommen wie

Code: Alles auswählen

$HTTP_POST_VARS['HTTP_POST_VARS']
Das ist zum einen nicht erlaubt und kann zu einem versteckten Array führen, mit dem z. B. gefährliche SQL-Anweisungen in das phpBB eingeschleust und damit geheime Daten ausgelesen werden könnten.
Also wäre zu prüfen, was der MOD hiermit treibt, scheinbar ist der alles andere als sauber programmiert...
Zuletzt geändert von oxpus am Sa 17.Jun, 2006 11:58, insgesamt 1-mal geändert.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
helluvaguy
Beiträge: 128
Registriert: Di 06.Apr, 2004 20:22

Beitrag von helluvaguy »

Es handelt sich dabei um den Forum Bookmakers Mod von Majorflam. Leider ist seine Seite schon einige Zeit offline, auch in anderen Supportforen, sieht man nur noch wenig von ihm.


Das von Dir erwähnte array-Konstrukt, gibt es zumindest nicht in der exakten Form. (Ich hoffe ich habe das richtig verstanden, und das 'HTTP_POST_VARS' in den Klammern ist kein Platzhalter, sondern wirklich so gemeint.

Ich füge mal die beiden beteiligten Dateien an, die beim Aufruf genutzt werden und wenn es von Hilfe ist, dann kannst Du Dich ja auf meiner Site einloggen (sieh Support Info) und hier versuchen eine Wette zu platzieren.

Sollte aber für Dich bereits auf den ersten Blick zu sehen sein, dass der Mod zu unsauber programmiert ist, würde ich ihn wohl besser offline nehmen.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Oha, dort werden z. B. alle Template-Files mit "body" eingebunden, aber nur einmal alle geschlossen.
Das alleine ist schon falsch.
Dazu werden Variablen mit $HTTP_GET_VARS übernommen, andere Werte dann dabei mit $HTTP_POST_VARS. Das kombiniert ist eigentlich nicht möglich, denn entweder übergebe ich alles per GET oder POST...

Dann zum Fehler selber:
Das Formular, mit dem man eine Wette platziert, hat keinen Link, wohin die Formular-Daten geleitet werden sollen.
Folglich ruft sich das Script selber auf und dann kommt es zum Hacking Attempt, weil eben die Konstante "IN_PHPBB" hier folglich nicht definiert wurde.
Und genau das ist ein dickes Sicherheitsrisiko, was in phpBB selber abgefangen wird, bzw. werden soll.
Da ich nun allerdings nicht so schnell finden kann, WAS nun als Formular-Ziel eingetragen werden muss, rate ich eher davon ab, dieses Script weiter zu verwenden, ausser, jemand anderes kennt es und kann hier helfen.
Auf phpbb.de finde ich auch hierzu öfter Topics zum WM-Tipp. Vielleicht ist dort eine Lösung verhanden...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
helluvaguy
Beiträge: 128
Registriert: Di 06.Apr, 2004 20:22

Beitrag von helluvaguy »

Danke für Deine Einschätzung. Ich habe den Mod nun offline genommen und werde mich damit nur noch lokal auseinandersetzen.

Ich habe mir mal die viewtopic.php als Vergleich (sozusagen eine ordentlich programmierte Datei) genommen um zu verstehen, was Du mit den Template-Files und "body" und den $HTTP_GET_VARS sowie $HTTP_POST_VARS meinst. So auf den ersten Blick sehe ich aber keine Unterschiede. Ich sehe da auch beide Arten von $HTTP_ Variablen und der 'body' scheint auch gleichartig nutzt zu werden.
Sicherlich fehlt mir da da nötige Verständnis, aber gibt es diesbezüglich etwas was ich mir zum nachlesen ansehen kann? Oder läßt sich das auch kurz erklären?

Mir ist nicht ganz klar, was das mit dem WM-Tipp zu tun hat? Sind dort ähnliche Mängel drin, das man deswegen eine Lösung finden könnte?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Also:
Wenn man einen Link anklickt, werden alle damit gesendeten Parameter in $HTTP_GET_VARS gespeichert.
Ein Formular kann das auch, man sollte aber hier aufgrund möglicher umfangreicher Daten diese per POST senden.
Daher ist es unlogisch, daß der Modus in dem Script per $HTTP_GET_VARS ausgelesen, dann aber auf $HTTP_POST_VARS zurückgegriffen wird, um bestimmte Stati abzufragen.

Dann die Verwendung der Templates:
In der Hauptdatei wird bereits das Template für die Wettübersicht per 'body' geladen.
Nun folgen entweder das Tempalte zur Wettabgabe ebenfalls mit 'body' oder ein Bestätigungstemplate, ebenfalls mit 'body'.
Zunächst funktioniert das, kann aber zur Überladung der $template oder gar viel gravierenden Fehlern bis hin zu einer weissen Seite führen.
Daher muss JEDE Template-Datei mit einem SEPARATEN Schlüssel geladen werden!

Und was den fehlenden Formular-Link betrifft, siehe hier: http://www.oxpus.de/viewtopic.php?p=47790#47790
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
helluvaguy
Beiträge: 128
Registriert: Di 06.Apr, 2004 20:22

Beitrag von helluvaguy »

Danke. Werde ich mir mal durchlesen (Kleiner Hinweis: Die PDF Ausgabe dieses Einführungskurses ist ein weing "unübersichtlich")
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die PDF-Funktion hier ist auch noch lange nicht perfekt entwickelt!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten