Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

 
Reply to this topicStart new topic
> Sefrengo v1.6.1
mvsxyz
Beitrag Sun. 4. January 2015, 15:32
Beitrag #1


Advanced Member
********

Gruppe: Admins
Beiträge: 507
Mitglied seit: 27.06.2006
Mitglieds-Nr.: 11



Sefrengo v1.6.1

Dokumente
Die Installation - Sefrengo auf einem Webserver oder einer lokalen Trainigsumgebung installieren
Update einer Sefrengo Installation - Ein ausführlicher Updateleitfaden
FAQ - Installation
Die erste Sefrengo Seite, Schritt für Schritt - Anfängertutorial

Beim Update beachten
  • Backup der Datenbank und des Dateisystems vor dem Update nicht vergessen!
  • Updateleitfaden beachten - insbesondere das Verzeichnis projektXX/cms/fckeditor muss gegen den neuen projektXX/cms/ckeditor ersetzt werden.


Changelog - Änderungen v1.6.1 zu v1.6.0
QUELLTEXT
See full changelog at <https://github.com/sefrengo-cms/sefrengo-1.x/commits/v1.6.1>

* FIXED: Check numeric variables to prevent SQL injections
* FIXED: Converted searchterm to HTML entities
* FIXED: Updated CKEditor to v4.4.6
* ADDED: Added HTML5 doctype to select in edit layout (thanks to dederpapst3000)



Angehängte Datei(en)
Angehängte Datei  sefrengo_1.x_1.6.1.zip ( 2.89MB ) Anzahl der Downloads: 2183
 
Go to the top of the page
 
+Quote Post
mvsxyz
Beitrag Sun. 4. January 2015, 22:30
Beitrag #2


Advanced Member
********

Gruppe: Admins
Beiträge: 507
Mitglied seit: 27.06.2006
Mitglieds-Nr.: 11



Ich danke Steffen Rösemann für die gefundenen Sicherheitslücken und die Zusammenarbeit.
Go to the top of the page
 
+Quote Post
FireFlyer
Beitrag Sat. 10. January 2015, 15:40
Beitrag #3


Advanced Member
*******

Gruppe: AdvancedMembers
Beiträge: 446
Mitglied seit: 12.09.2006
Wohnort: Bamberg
Mitglieds-Nr.: 235



Nach dem Update von 1.4.5 auf 1.6.1 kann ich mich leider nicht mehr einloggen. PHP Version 5.3.29
Es kommt folgende Fehlermeldung:
ERROR! Found non-numeric variable which must be numeric! Execution was stopped, due to a possible SQL injection.

aus der backend/main.php:
QUELLTEXT
// check numeric vars to prevent SQL injection errors
$numeric_vars = array('idclient','idlang','idbackendmenu','idcatlang','idcat','idcatside','iduser','idtpl','idtplconf','parent','rootparent','sortindex','idlay','author','visible','idside','is_start','idclientslang','idcode','idcontainer','idmod','idplug','idcontainerconf','idcontent','idsidelang','idtype','container','number','online','idcss','idcssupl','idupl','sid','iddirectory','parentid','idfiletype','idgroup','idjs','idlang','is_start','idlayupl','idperm','idrepository','idside','idtracker','user_id','idvalues','idval','u_g_id');

foreach($numeric_vars as $varname) {
    if(isset($$varname) && !(empty($$varname) || is_numeric($$varname))) {
        die('ERROR! Found non-numeric variable which must be numeric! Execution was stopped, due to a possible SQL injection.');
        exit;
    }
}


Wurde da eine SQL-Update-Routine nicht durchlaufen?
Was muss ich ändern?
Go to the top of the page
 
+Quote Post
mvsxyz
Beitrag Tue. 13. January 2015, 00:31
Beitrag #4


Advanced Member
********

Gruppe: Admins
Beiträge: 507
Mitglied seit: 27.06.2006
Mitglieds-Nr.: 11



Ich habe es nun so abgeändert, dass die Ausführung nicht mehr abgebrochen wird, sondern mögliche Strings escaped werden.

QUELLTEXT
// check numeric vars to prevent SQL injection errors
$numeric_vars = array('idclient','idlang','idbackendmenu','idcatlang','idcat','idcatside','iduser','idtpl','idtplconf','parent','rootparent','sortindex','idlay','author','visible','idside','is_start','idclientslang','idcode','idcontainer','idmod','idplug','idcontainerconf','idcontent','idsidelang','idtype','container','number','online','idcss','idcssupl','idupl','sid','iddirectory','parentid','idfiletype','idgroup','idjs','idlang','is_start','idlayupl','idperm','idrepository','idside','idtracker','user_id','idvalues','idval','u_g_id','value_id');

foreach($numeric_vars as $varname) {
    if(isset($$varname) && !(empty($$varname) || is_numeric($$varname))) {
        //die('ERROR! Found non-numeric variable which must be numeric! Execution was stopped, due to a possible SQL injection.');
        $$varname = addslashes($$varname);
    }
}


Bitte mal testen und Rückmeldung geben.
Go to the top of the page
 
+Quote Post
sidd
Beitrag Tue. 13. January 2015, 07:28
Beitrag #5


Sefrengo Reloaded
***

Gruppe: Members
Beiträge: 62
Mitglied seit: 14.06.2012
Wohnort: Gransee
Mitglieds-Nr.: 2.487



wenn eine zahl erwartet wird, wäre es nicht besser, statt addslashes, intval zu benutzen?

QUELLTEXT
// check numeric vars to prevent SQL injection errors
$numeric_vars = array('idclient','idlang','idbackendmenu','idcatlang','idcat','idcatside','iduser','idtpl','idtplconf','parent','rootparent','sortindex','idlay','author','visible','idside','is_start','idclientslang','idcode','idcontainer','idmod','idplug','idcontainerconf','idcontent','idsidelang','idtype','container','number','online','idcss','idcssupl','idupl','sid','iddirectory','parentid','idfiletype','idgroup','idjs','idlang','is_start','idlayupl','idperm','idrepository','idside','idtracker','user_id','idvalues','idval','u_g_id','value_id');

foreach($numeric_vars as $varname) {
    if(isset($$varname) && !(empty($$varname) || is_int($$varname))) {
        //die('ERROR! Found non-numeric variable which must be numeric! Execution was stopped, due to a possible SQL injection.');
        $$varname = intval($$varname);
    }
}


Der Beitrag wurde von sidd bearbeitet: Tue. 13. January 2015, 07:32


--------------------
Sefrengo | Das CMS passend für viele Gelegenheiten ;)
Go to the top of the page
 
+Quote Post
sidd
Beitrag Tue. 13. January 2015, 09:15
Beitrag #6


Sefrengo Reloaded
***

Gruppe: Members
Beiträge: 62
Mitglied seit: 14.06.2012
Wohnort: Gransee
Mitglieds-Nr.: 2.487



@FireFlyer Evtl. kannst du auch mal folgendes kurzzeitig einfügen um dem Problem auf die Schliche zu kommen.

QUELLTEXT
// check numeric vars to prevent SQL injection errors
$numeric_vars = array('idclient','idlang','idbackendmenu','idcatlang','idcat','idcatside','iduser','idtpl','idtplconf','parent','rootparent','sortindex','idlay','author','visible','idside','is_start','idclientslang','idcode','idcontainer','idmod','idplug','idcontainerconf','idcontent','idsidelang','idtype','container','number','online','idcss','idcssupl','idupl','sid','iddirectory','parentid','idfiletype','idgroup','idjs','idlang','is_start','idlayupl','idperm','idrepository','idside','idtracker','user_id','idvalues','idval','u_g_id');

foreach($numeric_vars as $varname) {
    if(isset($$varname) && !(empty($$varname) || is_numeric($$varname))) {
        die($varname.' ist keine Zahl... Wert ist:'.$$varname);
        exit;
    }
}


Bitte Poste mal dann die Fehlermeldung hier.

LG,
sidd


--------------------
Sefrengo | Das CMS passend für viele Gelegenheiten ;)
Go to the top of the page
 
+Quote Post
mvsxyz
Beitrag Tue. 13. January 2015, 10:13
Beitrag #7


Advanced Member
********

Gruppe: Admins
Beiträge: 507
Mitglied seit: 27.06.2006
Mitglieds-Nr.: 11



ZITAT(sidd @ Tue. 13. January 2015, 07:28) *
wenn eine zahl erwartet wird, wäre es nicht besser, statt addslashes, intval zu benutzen?


Gute Idee! Das könnte allerdings zu unerwarteten Ergebnissen führen, da er evtl. einen falschen int value ausließt. Wenn ich mögliche Eingaben mit addslashes escape, dann findet die DB keinen Eintrag und bricht die Ausführung ab.
Go to the top of the page
 
+Quote Post
sidd
Beitrag Tue. 13. January 2015, 11:31
Beitrag #8


Sefrengo Reloaded
***

Gruppe: Members
Beiträge: 62
Mitglied seit: 14.06.2012
Wohnort: Gransee
Mitglieds-Nr.: 2.487



ZITAT(mvsxyz @ Tue. 13. January 2015, 10:13) *
Gute Idee! Das könnte allerdings zu unerwarteten Ergebnissen führen, da er evtl. einen falschen int value ausließt. Wenn ich mögliche Eingaben mit addslashes escape, dann findet die DB keinen Eintrag und bricht die Ausführung ab.


Hi mvsxyz....

das raff ich nicht....
diese stelle erwartet doch eine ID oder bool,oder?

die einizige variable wäre "sid", welche alphanumerisch ist.... ist das evtl. schon der fehler?

LG


--------------------
Sefrengo | Das CMS passend für viele Gelegenheiten ;)
Go to the top of the page
 
+Quote Post
mvsxyz
Beitrag Tue. 13. January 2015, 16:45
Beitrag #9


Advanced Member
********

Gruppe: Admins
Beiträge: 507
Mitglied seit: 27.06.2006
Mitglieds-Nr.: 11



Danke, für deinen Input. Ich werde es nochmals damit testen.
Go to the top of the page
 
+Quote Post
FireFlyer
Beitrag Tue. 13. January 2015, 17:40
Beitrag #10


Advanced Member
*******

Gruppe: AdvancedMembers
Beiträge: 446
Mitglied seit: 12.09.2006
Wohnort: Bamberg
Mitglieds-Nr.: 235



@sidd:
Jetzt bekomm ich die genaue Stelle angezeigt:
sid ist keine Zahl... Wert ist:a32179a5a0fac2b881df36a4e064d765

EDIT
Hiermit getestet:
QUELLTEXT
// check numeric vars to prevent SQL injection errors
$numeric_vars = array('idclient','idlang','idbackendmenu','idcatlang','idcat','idcatside','iduser','idtpl','idtplconf','parent','rootparent','sortindex','idlay','author','visible','idside','is_start','idclientslang','idcode','idcontainer','idmod','idplug','idcontainerconf','idcontent','idsidelang','idtype','container','number','online','idcss','idcssupl','idupl','sid','iddirectory','parentid','idfiletype','idgroup','idjs','idlang','is_start','idlayupl','idperm','idrepository','idside','idtracker','user_id','idvalues','idval','u_g_id');

foreach($numeric_vars as $varname) {
    if(isset($$varname) && !(empty($$varname) || is_numeric($$varname))) {
        die($varname.' ist keine Zahl... Wert ist:'.$$varname);
        exit;
    }
}


Der besagte Wert ist in der cms_db_cache gespeichert. Und es gibt dort auch noch 6 weitere.

Im Wiki steht schon was über diese Tabelle, aber diese wird normalerweise von SF gelöscht und bis ins Backend schaff ich es ja nicht.
Ich lass die Zeilen noch drin stehen. Sollte bei der Prüfung evtl diese Tabelle zuvor geleert werden?
Go to the top of the page
 
+Quote Post
sidd
Beitrag Tue. 13. January 2015, 19:09
Beitrag #11


Sefrengo Reloaded
***

Gruppe: Members
Beiträge: 62
Mitglied seit: 14.06.2012
Wohnort: Gransee
Mitglieds-Nr.: 2.487



das ist das was ich vermutet hatte....

ersetzte es vorerst (bis zum nächsten offiziellen fix) mit

QUELLTEXT
// check numeric vars to prevent SQL injection errors
$numeric_vars = array('idclient','idlang','idbackendmenu','idcatlang','idcat','idcatside','iduser','idtpl','idtplconf','parent','rootparent','sortindex','idlay','author','visible','idside','is_start','idclientslang','idcode','idcontainer','idmod','idplug','idcontainerconf','idcontent','idsidelang','idtype','container','number','online','idcss','idcssupl','idupl','sid','iddirectory','parentid','idfiletype','idgroup','idjs','idlang','is_start','idlayupl','idperm','idrepository','idside','idtracker','user_id','idvalues','idval','u_g_id');

foreach($numeric_vars as $varname) {
    if(isset($$varname) && !(empty($$varname) || is_numeric($$varname))) {
        if($varname=="sid"){
          $$varname = mysql_real_escape_string($$varname);
        }else{
          die('ERROR! Found non-numeric variable which must be numeric! Execution was stopped, due to a possible SQL injection.');
          exit;
        }
    }
}


LG

Der Beitrag wurde von sidd bearbeitet: Tue. 13. January 2015, 19:16


--------------------
Sefrengo | Das CMS passend für viele Gelegenheiten ;)
Go to the top of the page
 
+Quote Post
FireFlyer
Beitrag Tue. 13. January 2015, 19:16
Beitrag #12


Advanced Member
*******

Gruppe: AdvancedMembers
Beiträge: 446
Mitglied seit: 12.09.2006
Wohnort: Bamberg
Mitglieds-Nr.: 235



Klappt, wenn die sid nicht geprüft wird von SIDD! biggrin.gif
Go to the top of the page
 
+Quote Post
sidd
Beitrag Tue. 13. January 2015, 19:44
Beitrag #13


Sefrengo Reloaded
***

Gruppe: Members
Beiträge: 62
Mitglied seit: 14.06.2012
Wohnort: Gransee
Mitglieds-Nr.: 2.487



fein fein ... wink.gif
sid wird zwar nicht geprüft, aber abgesichert wink.gif

somit ist das problem erkannt und kann von mvsxyz gefixxt werden.
Danke für deine Unterstützung, beim finden des Fehlers.

LG


--------------------
Sefrengo | Das CMS passend für viele Gelegenheiten ;)
Go to the top of the page
 
+Quote Post
FireFlyer
Beitrag Tue. 13. January 2015, 19:46
Beitrag #14


Advanced Member
*******

Gruppe: AdvancedMembers
Beiträge: 446
Mitglied seit: 12.09.2006
Wohnort: Bamberg
Mitglieds-Nr.: 235



Kein Thema. Is des schön, wenn mal wieder was zusammen geht! Auf geht's Jungs!!!
Go to the top of the page
 
+Quote Post
bkm
Beitrag Tue. 13. January 2015, 20:35
Beitrag #15


Member
**

Gruppe: Members
Beiträge: 28
Mitglied seit: 19.11.2013
Mitglieds-Nr.: 2.552



Deprecated (mysql_real_escape_string)


--------------------
The Guest_bkm_* Is Back
Go to the top of the page
 
+Quote Post
sidd
Beitrag Wed. 14. January 2015, 08:56
Beitrag #16


Sefrengo Reloaded
***

Gruppe: Members
Beiträge: 62
Mitglied seit: 14.06.2012
Wohnort: Gransee
Mitglieds-Nr.: 2.487



deswegen
ZITAT
ersetzte es vorerst (bis zum nächsten offiziellen fix)


--------------------
Sefrengo | Das CMS passend für viele Gelegenheiten ;)
Go to the top of the page
 
+Quote Post
bkm
Beitrag Wed. 14. January 2015, 18:42
Beitrag #17


Member
**

Gruppe: Members
Beiträge: 28
Mitglied seit: 19.11.2013
Mitglieds-Nr.: 2.552



ZITAT(sidd @ Wed. 14. January 2015, 08:56) *
deswegen

So schreibts ja nur einer ab und ab einer PHP Version x gibts dann wieder eine Fehlermeldung.
Einfacher sid aus dem Array entfernen und für die('ERROR! Found ...); dann $$varname = intval($$varname); dry.gif


--------------------
The Guest_bkm_* Is Back
Go to the top of the page
 
+Quote Post
mvsxyz
Beitrag Thu. 15. January 2015, 09:30
Beitrag #18


Advanced Member
********

Gruppe: Admins
Beiträge: 507
Mitglied seit: 27.06.2006
Mitglieds-Nr.: 11



Ist ja schon gefixt im Repo. Ich werde die nächste Version am WE veröffentlichen.
Go to the top of the page
 
+Quote Post
mvsxyz
Beitrag Sun. 25. January 2015, 19:43
Beitrag #19


Advanced Member
********

Gruppe: Admins
Beiträge: 507
Mitglied seit: 27.06.2006
Mitglieds-Nr.: 11



Sefrengo 1.6.2 steht zum Download bereit und enthält den besagten Bugfix.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
2 Besucher lesen dieses Thema (Gäste: 2 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 19.3.24 - 14:59

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.