Sefrengo v1.6.1 |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
Sefrengo v1.6.1 |
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
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)
|
|
|
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.
|
|
|
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? |
|
|
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. |
|
|
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 ;)
|
|
|
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 ;)
|
|
|
Tue. 13. January 2015, 10:13
Beitrag
#7
|
|
Advanced Member Gruppe: Admins Beiträge: 507 Mitglied seit: 27.06.2006 Mitglieds-Nr.: 11 |
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. |
|
|
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 |
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 ;)
|
|
|
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.
|
|
|
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? |
|
|
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 ;)
|
|
|
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!
|
|
|
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 ...
sid wird zwar nicht geprüft, aber abgesichert 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 ;)
|
|
|
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!!!
|
|
|
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
|
|
|
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 ;)
|
|
|
Wed. 14. January 2015, 18:42
Beitrag
#17
|
|
Member Gruppe: Members Beiträge: 28 Mitglied seit: 19.11.2013 Mitglieds-Nr.: 2.552 |
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); -------------------- The Guest_bkm_* Is Back
|
|
|
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.
|
|
|
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.
|
|
|
Vereinfachte Darstellung | Aktuelles Datum: 14.1.25 - 23:07 |