• Willkommen im Forum „Tintenzirkel - das Fantasyautor:innenforum“.
 

Bruteforce-Attacke eines Spambots per Redirect

Begonnen von Maja, 11. Juli 2022, 20:37:53

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

Maja

Ich könnte gerade einen Tipp von einem unserer technikaffinen Mitglieder brauchen und tagge @Volker.

Hier hat gerade ein Spambot versucht, über einen Redirect, von dem ich nicht wusste, dass die Forensoftware ihn besitzt, Spam abzusetzen, und hat damit mein Fehlerprotokoll mit Einträgen wie diesem geflutet (35 Einträge innerhalb einer Sekunde):

Gast
93.177.119.76
5e71b2622def9c6e8cdcbb6f72707793
https://forum.tintenzirkel.de/index.php?thememode=full;redirect=ours.co.in/wiki/index.php/User:MathiasKlug027https://tegnerforbundet.dk/community/%3Fwpfs=&member%5Bsite%5D=http%3A%2F%2Fbinaryoptionsreview.eu%2F&member%5Bsignature%5D=This+is+when+Stochastic+21+shows+a+bearish+crossover.+The+orange+%22start%22+mark+those+four+entries%2C+but+one+looks+like+it+might+be+a+little+early.+In+the+picture+above%2C+look+at+the+green+text+that+reads+%22start%22.+You+are+now+supposed+to+enter+a+put+option+every+time+the+Stochastic+(9%2C+3%2C+3)+also+indicates+a+crossover%2C+which+in+this+case+it+does+four+times.+Only+trend+following+entries+are+taken%2C+until+the+(21%2C9%2C9)+stochastic+signals+a+new+trend.+There+are+several+other+line+crosses+on+the+(9%2C+3%2C+3)+Stochastic+but+we+must+only+trade+in+the+direction+of+the+major+trend+defined+by+the+stochastic+with+the+higher+settings.%3Cp%3E%26nbsp;%3C/p%3E%3Cp%3E%26nbsp;%3C/p%3E+%3Cp%3E%26nbsp;%3C/p%3E%3Cp%3E%26nbsp;%3C/p%3E+A+binary+trade+is+essentially+a+yes+or+no+question:+do+you+think+the+price+of+an+asset+will+go+up+or+down+in+a+specific+timeframe.+Binary+options+are+a+much+simpler+version+of+more+traditional+options.+Binary+options+are+simple+%E2%80%93+which+is+one+of+the+reasons+why+they+have+become+so+popular+recently.+With+more+traditional+options%2C+a+trader+has+the+option+to+purchase+the+underlying+asset+at+the+current+price+no+matter+the+future+value.%3Cp%3E%26nbsp;%3C/p%3E%3Cp%3E%26nbsp;%3C/p%3E+%3Cp%3E%26nbsp;%3C/p%3E%3Cp%3E%26nbsp;%3C/p%3E+As+a+result+of+its+similarities+and+differences+to+more+traditional+options%2C+binary+can+be+regulated+in+many+different+ways.+Binary+options+can+be+regulated+as+a+financial+instrument+(a+financial+instrument+is+any+tradeable+asset).+This+allows+options+to+be+traded+in+countries+that+prohibit+gambling%2C+for+example.+In+England+for+example+Binary+Options+are+not+regulated+by+the+Financial+Conduct+Authority.+However%2C+they+can+also+be+regulated+as+a+sort+of+betting.+The+gambling+regulat
/var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php (Zeile 579)
Backtrace-Informationen

Art des Fehlers: Datenbank
Fehlermeldung Auswählen
Datenbankfehler: Data too long for column 'url' at row 1

In der Sources/Errors.php heißt es an der entsprechenden Stelle

573:     $smcFunc['db_query']('', '
574:     UPDATE {db_prefix}log_online
575:     SET url = {string:url}
576:     WHERE session = {string:session}',
577:     array(
578:     'url' => $smcFunc['json_encode']($url),
579:     'session' => $session_id,
580:     )
581:     );
582:     }


Ich habe die IP mittels der Plesk-Firewall vom Server ausgeschlossen, aber ich weiß nicht, ob der Spam erfolgreich auf seiner Zielseite gelandet ist oder ob die Fehlermeldung bedeutet, dass der Spamversuch fehlgeschlagen ist. Ich weiß auch nicht, wie ich solche Attacken in Zukunft verhindern kann, und möchte nicht, dass der Server auf einer Blacklist landet.

Habt ihr Tipps, was ich noch tun kann bzw. muss? Danke!


EDIT
Ich vermute, da hat ein Spammer noch eine Vorversion des Forums irgendwo als Link abgespeichert. Der Snippet "?thememode=full" stammt aus dem alten Mobiletheme des alten Forums (nicht dem, den wir zuletzt hatten, sondern dem davor) und ist im jetzigen Forum, das ich ja im Juni komplett neu installiert habe, überhaupt nicht mehr vorhanden. Daher sollte der Redirect auch nicht mehr funktionieren. Oder doch? Wie probiere ich das aus?

EDIT2
Ach ja, das hier sind die Backtrace-Informationen:

    #0: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #1: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #2: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #3: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #4: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #5: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #6: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #7: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #8: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #9: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #10: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #11: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #12: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #13: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #14: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #15: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #16: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #17: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #18: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #19: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #20: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #21: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #22: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #23: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #24: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #25: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #26: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #27: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #28: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #29: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #30: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #31: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #32: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #33: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #34: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #35: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #36: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #37: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #38: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #39: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #40: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #41: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #42: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #43: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #44: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #45: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #46: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #47: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #48: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #49: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #50: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #51: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #52: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #53: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #54: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #55: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #56: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #57: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #58: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #59: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #60: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #61: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 579
    #62: log_error_online()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Errors.php in Zeile 175
    #63: fatal_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 719
    #64: smf_db_error()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Subs-Db-mysql.php in Zeile 494
    #65: smf_db_query()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/Sources/Logging.php in Zeile 100
    #66: writeLog()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/index.php in Zeile 270
    #67: smf_main()
    Aufgerufen von /var/www/vhosts/gottfabrik.de/httpdocs/www/tintenzirkel/forum/index.php in Zeile 191

Niemand hantiert gern ungesichert mit kritischen Massen.
Robert Gernhardt

Luna

Hmm ... habe gerade in den Code geschaut.
Ich glaube, das Forum hat kein redirect.
Wenn ich "https://forum.tintenzirkel.de/index.php?thememode=full;redirect=ours.co.in" aufrufe, lande ich auch wieder im Forum.
Ergo: Das ist nicht am Ziel angekommen. Der Fehler entstand anschließend beim Versuch die URL, die der Bot aufgerufen hat, ins Log zu schreiben. Die Datenbank beschwert sich dabei, dass die URL zu lang ist.

Frage mich gerade, ob eine ältere Foren-Version ein redirect hatte?

Volker weiß vielleicht, wie man so eine Spamattacke aufhalten kann, indem IPs, die mehr als x aufrufe pro Sekunde machen, automatisch gesperrt werden. Ich denke, soetwas gibt es.

Maja

#2
Danke für die Rückmeldung!

Die alte Version unserer Mobile-Skin Smf4mobile, die wir bis 2019 in Benutzung hatten, hatte einen Open Redirect, der von Spammern ausgenutzt worden ist. Volker hat mir damals geholfen, die Schwachstelle zu identifizieren, und ich habe eine neue Mobileskin installiert, die diesen Redirect nicht mehr hatte.

Das neue Forum braucht keine Mobileskin mehr, es ist von Haus aus responsiv, und da ich es in einrm neuen Verzeichnis installiert habe, gibt es auch keine Spuren der alten Mobileskin mehr in den Eingeweiden des Forums.

Deswegen hoffe ich sehr, dass von uns keine Gefahr ausgeht und wir nicht als Spamschleuder missbraucht werden können.


Ich habe geschaut, ob ich eine Firewall für das Forum installieren kann, aber es gibt da nur eine einzige Mod, und funktioniert über einen .htaccess-Eintrag (was unser Ngix-Server nicht unterstützt) und hat keinerlei Nutzerbewertungen, dafür aber Warnungen, dass man vor der Installation alles backuppen soll ... Das erschien mir zu riskant. Es gibt dann noch ein Antispam-Plugin, aber das verhindert nur, dass Mitglieder Spam posten - das betrifft uns nicht, da die Registrierung neuer Mitglieder abgeklemmt ist und Spambots das Forum nur von außen sehen, aber nichts posten können.
Niemand hantiert gern ungesichert mit kritischen Massen.
Robert Gernhardt

Volker

Das sieht stark nach den Versuchen aus, das alte Plugin-Redirect zu missbrauchen.
Wie @Luna schon gut gesehen hat, führt das zu einem Fehler beim Loggen in die Datenbank.
Das ist zwar nervig, aber kein Sicherheitsproblem.

Man könnte das abfangen, indem man den zu langen String abschneidet, beispielsweise
575:     SET url = substr( {string:url}, 0, 80 )
Die 80 dann so lange durch kleinere/größere Werte ersetzen, bis möglichst viel geloggt wird, aber noch nix zu Fehlern führt.