Spamartige Benutzer Anmeldung

Hallo, ich habe, in einem Kunden OXIDShop (V6.1.4), immer wieder massiv spamartige Useranmeldungen! Meist von IP Adressen aus Asien.
Laut Log:

49.69.47.138 - - [07/Aug/2019:07:40:05 +0200] “POST /index.php? HTTP/1.1” 302 0 "https://www.xxx.de/index.php?" “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36”
49.69.47.138 - - [07/Aug/2019:07:40:06 +0200] “GET /index.php?cl=register&success=1 HTTP/1.1” 200 58595 "https://www.xxx.de/index.php?" “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36”

Es wird kein Registierformular benutzt, somit bringt mir das Honeypot Modul, welches ich installiert habe auch nichts!
Was kann ich noch tun, um dies zu unterbinden?
Derzeit bekommt der Kunde immer nur Fehlermails vom Server, da die angegebene Emailadresse nicht existent ist. Dann sperre ich die IP, bis zum nächsten mal!

Steffen Winde

Captcha einbauen?

Hallo Firefax,

das OXID eigene Chaptcha Modul, welches ich natürlich im Einsatz habe, sieht für das register.tpl kein Chaptcha vor! Gegen ein Google Re-Chaptcha sperrt sich der Kunde wegen Datenschutz :-(.

Im Formular ist wie schon geschrieben, ein verstecktes Feld drin und die OptIn Checkbox auch.
Im Serverlog sieht man auch keinen Zugriff auf die Seite /index.php?cl=register.

Hallo,

Fan2ban installieren. Mit dem prüfst, du die logs und an einer bestimmten Anzahl die IP sperren.

Viele Grüße
Tobi

im Beitrag #1 steht doch diese Url+Parameter !?
evtl. hllft es die Mailadresse mit checkdnsrr zu prüfen
https://www.php.net/manual/de/function.checkdnsrr.php

Hallo!

Da steht im Log eigentlich die Domain des Shops, die habe ich nur unkenntlich gemacht. Der Spamer gibt keine gültigen Emailadressen an, daher dann die Fehlermeldungen vom Emailserver. Wenn es die nicht gäbe würde man die Angiffe gar nicht mitbekommen.

@TumTumi
Fan2ban müsste ich mir auf dem Server einrichten lassen. Aber da die Anfrage HTTP-Statuscode 200 beantwortet wird, wird das auch nichts bringen!

Du kannst das ja umdrehen. Ich nehme an du hast ein leeres Input und falls jemand etwas reinschreibt wird es abgelehnt. Wenn du im Register-Formular ein hidden input “from_register_form” mit value 1 reinschreibst kannst du es ablehnen falls dieses Feld nicht gesendet wird, der Spammer sich das Formular also gar nicht angesehen hat.

Mir ist das ganze schon etwas peinlich :see_no_evil: aber so ein Feld ist eigentlich schon drin!
Die Checkbox von OptIn Modul hat als value=“1”. Ein normaler User bekommt das Formular nicht versendet ohne Haken.
Edit: Ich glaube ja fast, das der Spammer das Formular gar nicht benutzt, sondern das direkt an den Server schickt!

Sicher, das geht auch je nach Anwendung über URL und bedarf dann keiner Form. Die Hacker hängen die Variablen aus einer Form an die URL und testen alles durch, bis eine Lücke entdeckt wird. Dafür gibt’s natürlich Scripte.

Gibt es da technische Möglichkeiten das zu unterbinden? Man liest ja hier bei OXID wenig bis gar nichts über solche Fälle. In dem Fall nützen ja dann auch keine Spammaßnahmen im Formular!
Aber wenn man Tante Google nach “spammer registierung” fragt findet man einiges drüber.

Wie oben erwähnt, müsstest das Captcha einbauen. Danach sollte ruhe sein. Ich habe das bei einem Shop überall hingesetzt, wo Daten einzugeben sind. Funktioniert.
Dazu reicht es, folgendes in den Controller zu legen und den Rest aus dem Template zu kopieren:

protected $_oCaptcha = null;
public function getCaptcha()
{
if ($this->_oCaptcha === null) {
$this->_oCaptcha = oxNew(‘oxCaptcha’);
}

   return $this->_oCaptcha;

}

und über

$oCaptcha = $this->getCaptcha();

    if (!$oCaptcha->pass($sMac, $sMacHash)) {
        // even if there is no exception, use this as a default display method
        oxRegistry::get("oxUtilsView")->addErrorToDisplay('MESSAGE_WRONG_VERIFICATION_CODE');

        return false;
    }

abzufangen…
Schönes Wochenende

Die ist aber im Standard ja drin. Wenn du da ein eigenes Feld machst was sich evtl. immer wieder ändern lässt, kann man zumindest nicht mehr spammen ohne sich das Formular vorher anzuschauen. Was du auch machen könntest, ist die Registrier-Mails abzustellen, das verhindert zwar nicht die Registrierung, aber zumindest wird dann niemand mehr belästigt: https://www.web-grips.de/shop/OXID-eShop/OXID-Module/Kostenlose/Keine-E-Mail-bei-Registrierung.html
Ansonsten hilft wohl nur Captcha einbauen.

Hallo Windes,

ich gebe zu ist ein kleiner Konfigration aufwand. Die Idee wäre mit der Funktion getLogger() die Registierungs Prozesse zu loggen. Und diese Logdatei mit fan2Ban zu analysieren. Wenn in einem bestimmten Zeitraum von der selben IP Adresse registierungen rein gehen. Die IP für 24h zu sperren.

Viele Grüße
Tobi

Hallo Tum Tumi,
das ist sicher auch ein guter Ansatz aber für mich programmiertechnisch, mangels Kenntnissen, nicht durchführbar.

Ich versuche jetzt gerade im Captcha Modul von Oxid das Registrierformular einzubinden.
Angezeigt bekomme ich es schon mal im Formular! Leider habe ich es noch nicht geschafft, daß man auch gezwungen ist es auszuführen.
Aber das ist hier schon etwas OT.

$sMac = oxRegistry::getConfig()->getRequestParameter('c_mac');
    $sMacHash = oxRegistry::getConfig()->getRequestParameter('c_mach');
    $oCaptcha = $this->getCaptcha();

    if (!$oCaptcha->pass($sMac, $sMacHash)) {
        // even if there is no exception, use this as a default display method
        oxRegistry::get("oxUtilsView")->addErrorToDisplay('MESSAGE_WRONG_VERIFICATION_CODE');

        return false;
    }

muss in registeruser :wink:

Ok. Dann hier.

Ich habe einen Fork von https://github.com/OXIDprojects/captcha-module erstellt.
https://github.com/swinde/captcha-module
Dort habe ich den controller von “oecaptchacontact” kopiert und für die Klasse register angepasst.
und im Template /form/register.tpl durch [{block name=“captcha_form”}][{/block}] eingebunden, analog zum Kontaktformular.

Ausgegeben wird das Catcha wie schon geschrieben aber nicht validiert.

VG Steffen Winde
PS: Ich werde das erstmal sacken lassen und Montag wieder frisch weitermachen.