Seite 1 von 1

Sicherheitslücke - Möglichkeit von Cross-Site-Scripting/XSS

Verfasst: Do 19. Dez 2024, 09:06
von Henshingly
Ich wurde von Tobi darauf hingewiesen das es eine Sicherheitslücke im LMO zu geben scheint.
Diese Lücke besteht in allen "alten" LMO's (auch schon die auf der Downloadseite von www.liga-manager-online.de) und natürlich auch in der momentan aktuellsten Version LMO 4.1.4.
Diese Lücke nennt sich Cross-Site-Scripting – kurz XSS – So wird das Ausnutzen von Sicherheitslücken in Webanwendungen bezeichnet.

Durch diese Lücke ist es leider möglich das durch Skripte in der URL des LMO's, Server- oder Clientseitig Schadcode ausgeführt wird. Mir persönlich ist noch kein Fall bekannt wo dieses passiert ist. Aber Vorsicht ist besser als Nachsicht.

Ich möchte deswegen hier ein kleines Sicherheitsupdate für den LMO anbieten. Dieser Sicherheitspatch ist für alle LMO Versionen ab LMO 4.0.2rc02 kompatibel.
Er beinhaltet nur 3 Dateien des LMO's. Diese 3 Dateien einfach per FTP in den ROOT Ordner eures LigaManagerOnline hochladen und die drei vorhandenen Dateien überschreiben.

Grüße Henshingly

Re: Sicherheitslücke - Möglichkeit von Cross-Site-Scripting/XSS

Verfasst: Mi 30. Apr 2025, 13:28
von Henshingly
Kleines Update zum absichern gegen die XSS-Lücke im LMO. Es besteht weiterhin die Möglichkeit eines XSS Angriffs durch die Verwendung von ASCII Zeichen, die durch ein "%" Zeichen mit dem nachfolgenden Hexadezimal Code dargestellt werden, statt von "normalen" Zeichen.
Kleiner Fix dazu.
Im vorherigen Download ist auch die init.php Datei.
Diese mit einem Texteditor öffnen und die Zeile 24

Code: Alles auswählen

    if (str_starts_with($value, '<'))

ändern in

Code: Alles auswählen

     if (str_starts_with(urlencode($value), '<') || str_starts_with(urlencode($value), '%'))

Sollte euer Webserver noch mit PHP 7.4 laufen so ändert die Zeile 24 in

Code: Alles auswählen

     if (substr(urlencode($value), 0, 1) == '<' || substr(urlencode($value), 0, 1) == '%')
Da die Funktion str_starts_with() aus der oberen Änderung erst ab PHP 8 verfügbar ist. Ein weiterer Hinweis endlich dieses zu ändern. Dazu bitte auch die Umfrage hier beantworten.

Vielen Dank an DwB für die Hilfe

Gruß Henshingly

Re: Sicherheitslücke - Möglichkeit von Cross-Site-Scripting/XSS

Verfasst: Di 6. Mai 2025, 15:09
von Henshingly
Hier nochmal die Änderungen als Download.
XSS-Patch1.1.zip
XSS Patch Version 1.1 für den LMO (06.05.2025)
(7.52 KiB) 13-mal heruntergeladen
Die lmo-dirlist.php ist nur im Zip-File, falls jemand den inzwischen gelöschten Download von hier heruntergeladen hatte.
Ansonsten handelt es sich dabei um die Datei aus der LMO Version 4.1.4.

MfG Henshingly

Re: Sicherheitslücke - Möglichkeit von Cross-Site-Scripting/XSS

Verfasst: Mo 23. Feb 2026, 13:39
von Henshingly
Neu eingecheckt auf GitHub Update des XSS patches. Wird mit der nächsten LMO herausgegeben.
Wer nicht so lang warten möchte...
Download auch hier.
DOWNLOAD GELÖSCHT

Der Patch macht nun auch eine LOG Datei in der potentielle Angriffe dokumentiert werden (xss_log.txt).
Dort wird die Uhrzeit und die IP Adresse des Angreifers gespeichert. Hier mal ein kleiner Auszug aus meinen Versuchen.
[2026-02-23 12:59:54] [IP: 127.0.0.1] Security: Potential XSS/Tags removed from $_GET[file]
[2026-02-23 12:59:54] [IP: 127.0.0.1] Security: Potential XSS/Tags removed from $_REQUEST[file]
[2026-02-23 13:00:24] [IP: 127.0.0.1] Security: Potential XSS/Tags removed from $_GET[stat1]
[2026-02-23 13:00:24] [IP: 127.0.0.1] Security: Potential XSS/Tags removed from $_REQUEST[stat1]
[2026-02-23 13:08:07] [IP: 127.0.0.1] Security: Potential XSS/Tags removed from $_GET[stat1]
[2026-02-23 13:08:07] [IP: 127.0.0.1] Security: Potential XSS/Tags removed from $_REQUEST[stat1]
Gruß Henshingly

Re: Sicherheitslücke - Möglichkeit von Cross-Site-Scripting/XSS

Verfasst: Fr 6. Mär 2026, 08:41
von Henshingly
Mit dem letzten Update des XSS-Patches bin ich ein wenig über das Ziel hinaus geschossen.

Zum Beispiel wurden gewollte Eingaben mit Sonderzeichen im Adminmenü durch HTML Code ersetzt.
Hatte ich bemerkt als ich bei Tests den Teamnamen Borussia M'gladbach eingeben wollte.
Der wurde in der Ligadatei ungewollt durch Borussia M&#039;gladbach ersetzt.

Hier nun ein weiteres Update des XSS-Patches.
XSS-Patch1.3.zip
(6.75 KiB) 8-mal heruntergeladen
Den voherigen habe deswegen entfernt.

Gruß Henshingly