ThWboard Support-Forum (Archiv)
Ort: / Boardübersicht / Archiv / [fixed] Navpath kann per Get manipuliert werden
Seite 1 von 2 – nächste Seite >>
SyntaxError schrieb am 08.02.2003 um 20:00 Uhr
hier könnt ihr euch den Fehler ansehen:
http://www.thwboard.de/forum/index.php?navpath=<script%20language\"Javascript">alert('Hallo%20wie%20geht%20es!')</script>
Könnte zum CrossSiteScripting benutzt werden.
Fix:
In der header.inc.php einfach nach
if( get_magic_quotes_gpc() )
{
$HTTP_GET_VARS = r_stripslashes($HTTP_GET_VARS);
$HTTP_POST_VARS = r_stripslashes($HTTP_POST_VARS);
$HTTP_COOKIE_VARS = r_stripslashes($HTTP_COOKIE_VARS);
$GLOBALS = r_stripslashes($GLOBALS);
}
dies
$navpath=NULL;
einfügen.
theDon schrieb am 08.02.2003 um 21:07 Uhr
übel :|
SyntaxError schrieb am 09.02.2003 um 00:28 Uhr
Es ist nur übel, wenn man das Forum über einen manipulierten Link aufruft.
MAGIX schrieb am 09.02.2003 um 01:01 Uhr
oha das fix ich ma eben
Luki schrieb am 09.02.2003 um 17:41 Uhr
das kann man sicherlich auch noch auf andere anwenden!!
navpath alleine ist glaube ich nur ein Teilproblem, oder?
Bluetooth schrieb am 10.02.2003 um 01:46 Uhr
nein navpath ist das einzige ... ist die einzige Variable, die nicht mit
$foo = '';
initialisiert wird
TheTinySteini schrieb am 11.02.2003 um 12:22 Uhr
... und $debug
Jonas schrieb am 11.02.2003 um 14:52 Uhr
nen fix fuer beide waere nen einfaches $navpath = ''; und $debug = ''; ueber allen includes oben in der header.inc.php ;)
theDon schrieb am 11.02.2003 um 23:29 Uhr
jonas ist nen blitzmerker :P
Jonas schrieb am 12.02.2003 um 18:23 Uhr
theDon postete
übel :|
jetzt sag mir mal welcher comment sinnvoller war :D :þ
seikeinfloh schrieb am 16.02.2003 um 18:02 Uhr
Könnte man damit nicht auch Code ausführen???
Die Template Klasse benutzt nämlich eval() welches versucht code auszuführen in einem String, wenn ich jetzt über den Bug PHP-Code eingebe müsste er den ausführen oder??? :?
Eine Url darf angeblich 4096 Zeichen lang sein was ja schon einige Code Möglichkeiten gibt (z.B.: include[_once](), require[_once]()).
Das Problem ist zwar gefixed aber würd mich trotzdem interessieren, weil dann müsste ich das fixen oder das Board schließen, andernfalls nicht sofort....
SyntaxError schrieb am 16.02.2003 um 23:19 Uhr
Nein. Weil die eval()-Funktion Variabeln wie Variabeln behandelt und dessen Inhalt nicht als Code interpretiert.
seikeinfloh schrieb am 17.02.2003 um 12:40 Uhr
Bist du dir da ganz sicher??? In der Dokumentation steht was anderes... :\
mfg floh
Bluetooth schrieb am 17.02.2003 um 13:44 Uhr
funktioniert nicht, zumindest ist mir nichts bekannt ... falls du eine Möglichkeit finden solltest, dann schreib sie mir bitte unbedingt per PM und nicht öffentlich hier im Forum.
SyntaxError schrieb am 17.02.2003 um 18:06 Uhr
@seikeinfloh: In welcher Doku?
seikeinfloh schrieb am 17.02.2003 um 18:50 Uhr
eval
(PHP 3, PHP 4 )
eval -- Wertet einen String aus, als wäre er PHP-Code
Beschreibung:
mixed eval ( string code_str)
eval() versucht, den in code_str enthaltenen String als PHP-Code auszuführen. Abgesehen von anderen Zwecken kann dies nützlich sein, um Code auszuführen, der aus einer Datenbank ausgelesen wird.
Beim Gebrauch von eval() gilt es einige Faktoren zu beachten. Die Zeichenkette code_str muss gültigen PHP-Code enthalten, einschließlich syntaktisch richtiger Begrenzungszeichen (also incl. ";"-Abschluss-Zeichen für einzelne Anweisungen, sonst bricht der PHP-Parser in der folgenden Zeile mit einem Fehler ab.
Beachten sie, dass die innerhalb von eval() vorgenommenen Variablen-Zuweisungen nach Abarbeitung auch im Hauptskript ihre Gültigkeit behalten.
Eine return-Angabe beendet sofort die Auswertung des Strings. Mit PHP4 können sie ein return verwenden, um das Ergebnis der Funktion eval() zu erhalten. In PHP3 ist eval() nämlich vom Typ void und liefert nichts zurück.
Quelle: http://www.php.net/manual/de/function.eval.php
mfg floh
TheTinySteini schrieb am 17.02.2003 um 19:11 Uhr
Also meines wissens geht das nicht. Beispiel:
http://www.thwboard.de/forum/showtopic.php?threadid=3911&time=&pagenum=lastpage&debug=%3C?php%20echo%20'test';%20?%3E
... wer im Quelltext guckt, wird <?php echo 'test'; ?> finden, aber es wird nicht ausgewertet.
seikeinfloh schrieb am 17.02.2003 um 19:33 Uhr
Habs mal ausprobiert klappt wirklich nicht... :)
SyntaxError schrieb am 17.02.2003 um 21:39 Uhr
Also ich kann keinen Wiederspruch der Doku zu meiner Aussage erkennen.
eval() versucht, den in code_str enthaltenen String als PHP-Code auszuführen.
Sagt doch eindeutig, dass coder_str als PHP-Code behandelt wird. Daraus ergibt sich, dass sich in coder_str erhaltende Variabeln (wie Navpath) auch wie Variabeln behandelt werden und dessen Inhalt nicht ausgeführt wird.
seikeinfloh schrieb am 17.02.2003 um 22:40 Uhr
Aber zu PHP-Code gehören eigentlich nicht nur Variablen oder??? :?
SyntaxError schrieb am 18.02.2003 um 14:16 Uhr
Ja, aber $navpath ist eine Variabel und wird deswegen auch so behandelt.
Was sonst noch alles in der eval-Funktion ausgeführt wird ist doch egal.
seikeinfloh schrieb am 18.02.2003 um 14:54 Uhr
Wie rufst du eval() auf???
SyntaxError schrieb am 18.02.2003 um 18:31 Uhr
wird so aufgerufen:
eval($Tframe->GetTemplate());
Man müßte es so aufrufen, damit der Inhalt von $navpath wie code behandelt wird:
eval($navpath);
seikeinfloh schrieb am 18.02.2003 um 22:29 Uhr
Eigentlich und uneigentlich darf da kein Unterschied bestehen da code_str ein Werte Parameter ist... *hmm*
SyntaxError schrieb am 19.02.2003 um 08:57 Uhr
Ist doch wohl ein unterschied:
$temp="echo \"$navpath\";";
eval($temp);
und
eval($navpath);
Seite 1 von 2 – nächste Seite >>