Jump to content
Froxlor Forum
  • 0

Standard vHost-Einstellungen werden verändert


df8oe

Question

Ich habe in meinen Standard vHost Einstellungen ein paar Zeilen mit denen ich besonders häufig vorkommende Angriffe (mysql-Injection) auf ein bestimmtes Script umlenke. Das hat bis vor xx Monaten auch prima funktioniert. Ich habe die Zeilen für die vHost in Froxlor eingetragen, und sie wurden 1:1 übernommen. So soll es sein. Heute startete der Apache aber nach dem Neuanlegen einer Domain nicht mehr - der Grund ist dass auf einmal die eingegebenen vHost-Konfig-Zeilen vor dem Übernehmen geparst und verändert werden! Betroffen sind Zeilen die Hex-Kodierungen enthalten. Also z.B.

soll sein:
RewriteCond %{QUERY_STRING} (%20|%28).*select.*(%20).* [NC,OR]

daraus wird:
RewriteCond %{QUERY_STRING} ( |().*select.*( ).* [NC,OR]

Ich habe in der Zwischenzeit einige Froxlor Stände aus Github übernommen. Natürlich sind auch etliche Updtes des Apachen durchgelaufen. Daher weiß ich nicht ob das jetzt durch eine Änderung in Froxlor oder im Apachen gekommen ist. Oder ist meine Syntax für die vHost veraltet?

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

Habe die Tabelle gefunden. Die Sachen stehen schon verändert in der Tabelle. Das liegt übrigens NICHT daran, dass die vHost Config das bewirkt wenn sie einmal aktiv ist. Wie geschrieben: Ich habe das seit Jahren laufen und es hat etliche neu angelegte Domains überstanden. Das was bewirkt dass es nicht mehr geht muss ca. im letzten halben Jahr passiert sein.

Link to comment
Share on other sites

  • 0

ja, wie gesagt, AntiXss wurde implementiert und filtert vermutlich die Werte weil er da was erkennt (reicht z.B. wenn du die Domain mal bearbeitet hast, muss nich genau das Feld gewesen sein).

Da ist jetzt natürlich die Frage in wieweit man das umgeht. Sollte man gewissen Felder davon ausnehmen? Dann sind diese Felder wieder gefährdet...schwer 😕

Link to comment
Share on other sites

  • 0

Kann ich nachvollziehen. Ich denke die vHost Config kann und sollte man davon definitiv ausnehmen. Wer hier etwas einträgt kann bei falscher Handhabung auch mit AntiXss seinen Webserver lahmlegen oder gefährden. Auf der anderen Seite nimmt man aber einem fähigen User die Möglichkeit, hier wirklich frei zu konfigurieren.

Deine Vermutung stimmt. Ich habe die korrekten Zeilen mal direkt in die Tabelle eingetragen Dann geht alles wieder. Auch das Ändern einer Domain bewirkt nichts Schlimmes. Nur sowie man auf der Apache-Konfig-Seite irgendwas verändert wird (die übrigens korrekt aus der Tabelle in das Webformular übertragene vHost Config) wieder amputiert.

Link to comment
Share on other sites

  • 0

Ergänzung:

Der Auslöser für den Fehler war wohl auch nicht das Neuanlegen einer Domain sondern die Tatsache, dass ich in dem Zuge gleich http2 aktiviert habe. Das musste ja zunächst im Settingspanel für den Apachen gemacht werden...

Link to comment
Share on other sites

  • 0

Richtig. Und was das "Umgehen" angeht: Ich rede nicht von den domainbezogenen Einstellungen. Da ist AntiXss absolut sinnvoll und ich würde es auf keinen Fall dort umgehen wollen. Da haben die User ihre Finger im Spiel... Ich rede von den Admin-Einstellungen, die über die "Einstellungen / Webserver Einstellungen" gemacht werden können. An der Stelle schraubt nur der "Oberadmin". Hier sollte man AntiXss umgehen.

Link to comment
Share on other sites

  • 0

Ein Kunden-Account hat diese Art der Einstellungen doch gar nicht :) Probiere mal folgenden Patch und schau mal ob er deine Einstellungen so auch korrekt 1:1 speichert:

diff --git a/lib/Froxlor/PhpHelper.php b/lib/Froxlor/PhpHelper.php
index 375ac131..90acb012 100644
--- a/lib/Froxlor/PhpHelper.php
+++ b/lib/Froxlor/PhpHelper.php
@@ -400,10 +400,21 @@ class PhpHelper
         */
        public static function cleanGlobal(&$global, &$antiXss)
        {
+               $ignored_fields = [
+                       'system_default_vhostconf',
+                       'system_default_sslvhostconf',
+                       'system_apache_globaldiropt',
+                       'specialsettings',
+                       'ssl_specialsettings',
+                       'default_vhostconf_domain',
+                       'ssl_default_vhostconf_domain'
+               ];
                if (isset($global) && ! empty($global)) {
                        $tmp = $global;
                        foreach ($tmp as $index => $value) {
-                               $global[$index] = $antiXss->xss_clean($value);
+                               if (!in_array($index, $ignored_fields)) {
+                                       $global[$index] = $antiXss->xss_clean($value);
+                               }
                        }
                }
        }

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...