Fehlermail 'Shopware\Components\CSRFTokenValidationException' ohne, dass Änderungen vorgen. wurden

Hallo,

ich erhielt heute Morgen etliche Error-Mails mit diesem Inhalt:

ERROR
Message:	exception 'Shopware\Components\CSRFTokenValidationException' with message 'The provided X-CSRF-Token is invalid. Please go back, reload the page and try again.' in /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/engine/Shopware/Components/CSRFTokenValidator.php:161
Stack trace:
#0 [internal function]: Shopware\Components\CSRFTokenValidator->checkFrontendTokenValidation(Object(Enlight_Controller_ActionEventArgs))
#1 /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/engine/Library/Enlight/Event/Handler/Default.php(91): call_user_func(Array, Object(Enlight_Controller_ActionEventArgs))
#2 /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/engine/Library/Enlight/Event/EventManager.php(214): Enlight_Event_Handler_Default->execute(Object(Enlight_Controller_ActionEventArgs))
#3 /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/engine/Library/Enlight/Controller/Action.php(143): Enlight_Event_EventManager->notify('Enlight_Control...', Object(Enlight_Controller_ActionEventArgs))
#4 /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/engine/Library/Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch('indexAction')
#5 /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/engine/Library/Enlight/Controller/Front.php(226): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#6 /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/engine/Shopware/Kernel.php(176): Enlight_Controller_Front->dispatch()
#7 /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/vendor/symfony/http-kernel/HttpCache/HttpCache.php(487): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#8 /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#9 /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/vendor/symfony/http-kernel/HttpCache/HttpCache.php(258): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#10 /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/vendor/symfony/http-kernel/HttpCache/HttpCache.php(275): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true)
#11 /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/engine/Shopware/Components/HttpCache/AppCache.php(133): Symfony\Component\HttpKernel\HttpCache\HttpCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)
#12 /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/vendor/symfony/http-kernel/HttpCache/HttpCache.php(206): Shopware\Components\HttpCache\AppCache->invalidate(Object(Symfony\Component\HttpFoundation\Request), true)
#13 /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/engine/Shopware/Components/HttpCache/AppCache.php(114): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#14 /var/www/vhosts/name.aix-cloud.de/meinverzeichnis/shopware.php(101): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#15 {main}
Time:	2016-08-13T10:47:52.321847+0200
Channel:	core
request:	{
    "uri": "/wp-content/plugins/ultimate-product-catalogue/product-sheets/wp-setup.php",
    "method": "POST",
    "query": {
        "module": "frontend",
        "controller": "wp-content",
        "action": "plugins",
        "ultimate-product-catalogue": "product-sheets",
        "wp-setup.php": ""
    },
    "post": {
        "e51e": "die(pi());"
    }
}
session:	{
    "sessionId": "e610d39e58549cca7b6a638eaf8bfe4280b44f2e39d307feda5bc43fb2e7d308",
    "sArea": null,
    "sCountry": null,
    "sState": null,
    "X-CSRF-Token": "SKinVM97nKoGF2nrNL5QiGDk4rFCXJ",
    "Bot": null
}
shopId:	1

Aktuell habe ich Version 5.2.3, womit ich bisher noch keine Probleme hatte. Ich finde die Meldung nur in Verbindung mit Updates auf 5.2 und nicht angezeigten Einkaufswelten. Bei mir ist allerdings alles vorhanden.

Was will mir diese Meldung sagen?

 

LG

Hi, 

hast du da ein WordPress im Unterverzeichnis, dass da irgendwie eingebunden wird? Ich weiß nicht, ob dieses die(pi()) da irgendwie zum Setup gehört oder jemand da einfach irgendwelche Post-Daten getestet hat - aber irgendwie hängt WordPress da mit drin. 

Diese Token Exception an sich ist eine Sicherheitsfunktion, die in Shopware 5.2 neu ist. 

Daniel 

Hallo,

urlaubsbedingt die Antwort etwas verspätet… Ich hatte mit Wordpress bisher nie etwas zu tun, da wurde auch  nichts installiert, auch keine neuen Plugins etc.

LG

Schau mal im Access Log nach, woher die Requests zur Zeit der Fehlermeldungen gekommen ist. Für mich sieht das eher nach einem Bot aus, der Daten an frontend/index gepostet hat. Würde auch erklären, dass Du eine Vielzahl an Requests auf einmal bekommen hast. Womöglich ein Bot, der auf eine potentielle Sicherheitslücke in diesem WordPress Plugin abgezielt hat.

1 „Gefällt mir“

Access Log ist die Datei unter var/log mit dem entsprechenden Datum oder?

Dort finde ich etwa das, was in den Errormails auch steht, nur noch mehr zusammengezogen, so dass ich weder Anfang noch Ende finde.

Wo sehe ich dort, woher die Anfrage kam?

 

Infos zu den logs gibt es hier: https://synonymous.rocks/error-logging-fehlersuche-mit-shopware/
Du siehst im Access Log normalerweise die IP Adresse. Wenn Du diese dann auf einer Website prüfst (zB IP WHOIS Lookup - Lookup IP WHOIS Information - WhatIsMyIP.com®) siehst Du woher der Request kam. Vermutlich siest Du dann, dass es sich um eine chinesische IP oder eine von Google oder AWS handelt.

Also in dem Access Log steht exakt das, was oben im ersten Beitrag als Code eingefügt wurde. Da ist von einer IP-Adresse keine Spur…

Das unter 1 ist die Exception - ein Standard-Eintrag in der access.log sieht führ gewöhnlich so aus:

Sep 09 10:42:29.902022 2011] [core:error] [pid 35708:tid 4328636416] [client 72.15.99.187] File does not exist: /usr/local/apache2/htdocs/favicon.ico

 

So nun bin ich wohl ein Stückchen weiter gekommen. Diese Access.log ist in meinem Hostingaccount zu finden und nicht bei SW, wenn ich das richtig sehe.

Ich finde dort z.B. folgendes:

2016-08-28 19:39:17   Access     203.146.42.56     301   GET / HTTP/1.0   658 Apache-Zugriff

2016-08-28 19:39:19     Access   203.146.42.56    200   GET / HTTP/1.0 6.85 K Apache-Zugriff

2016-08-28 19:39:23   Error    203.146.42.56    400  POST /newsletter HTTP/1.0 4.08 K Apache-SSL-Zugriff

2016-08-28 19:39:45 Access  207.46.13.92   200  GET /artikelurl?refid=Elmar HTTP/1.0 11.0 K Apache-Zugriff

 

Die Zeile mit „Error“ deckt sich mit einer Fehlermail. Die IP ist aus Bangkok. Was sagt mir das nun? Dass jemand versucht, die Seite zu hacken? Muss ich was unternehmen oder kann ich das ignorieren und die Fehlermails löschen?

 

Also für mich würde das auf einen Bot hindeuten der versucht Dein Newsletterformular auszufüllen. Das ist kein gezielter Angriff, sondern relativ “normal”. Möglicherweise um dann - nachdem Du einen Newsletter versandt hast - Deine Mailadresse in einen Spamverteiler aufzunehmen. Aber es kann auch noch viele andere Gründe haben.

Auch das ist ein schönes Beispiel dafür, dass die CSRF Protection absolut sinnvoll ist, da hier offenbar der POST-Request direkt von der entsprechenden IP abgesetzt wird.

Schützen kann man sich gegen solche “Angriffe” und auch DOS Attacken zum Beispiel mit einer sogenannten “Clean-Pipe” bei der die Requests (bestmöglich) entsprechend gefiltert werden, bevor Sie am Webserver aufschlagen. Solche Systeme gibt es in allen Preisklassen mit allen möglichen Features.

Für einen kostengünstigen Beginn kannst Du z.B. Cloudflare ausprobieren. Das ist ein CDN das zusätzlich entsprechende Security-Features bietet. Außer Cloudflare kenne ich aus eigener Erfahrung nur noch Barracuda - allerdings spielt das preislich wieder in einer anderen Liga.

Es waren insgesamt 253 Zugriffe vom 13.8. bis 30.08.

Am ersten Tag ca. 20 Zugriffe in 2 Minuten. Alle hatten was mit wp zu tun, etwa in dieser Art:

"uri": "/wp-content/plugins/inboundio-marketing/admin/partials/csv_uploader.php",
    "method": "POST",
    "query": {
        "module": "frontend",
        "controller": "wp-content",
        "action": "plugins",
        "inboundio-marketing": "admin",
        "partials": "csv_uploader.php"


"uri": "/wp-admin/admin-ajax.php",
    "method": "POST",
    "query": {
        "module": "frontend",
        "controller": "wp-admin",
        "action": "admin-ajax.php"
    },
    "post": {
        "action": "revslider_ajax_action",
        "client_action": "update_plugin"


"uri": "/wp-content/plugins/inboundio-marketing/admin/partials/csv_uploader.php",
    "method": "POST",
    "query": {
        "module": "frontend",
        "controller": "wp-content",
        "action": "plugins",
        "inboundio-marketing": "admin",
        "partials": "csv_uploader.php"

 

 

Zweiter und Dritter Tag dann je über 70 Zugriffe in 2-3 Minuten, sowas in der Art (nichts mehr mit wp):
 

"uri": "/11.php",
    "method": "POST",
    "query": {
        "module": "frontend",
        "controller": "11.php",
        "action": "index"
    },
    "post": {
        "x": "eval(urldecode(urldecode($_POST[chr(99).chr(111).chr(100).chr(101).chr(122)])));",
        "codez": "echo%2520%2528123454320%252B1%2529%253Bexit%2528%2529%253B"


"uri": "/b374k-2.8.php",
    "method": "POST",
    "query": {
        "module": "frontend",
        "controller": "b374k-2.8.php",
        "action": "index"
    },
    "post": {
        "lang": "php",
        "x": "eval",
        "evalcode": "eval(urldecode(urldecode($_POST[chr(99).chr(111).chr(100).chr(101).chr(122)])));",
        "codez": "echo%2520%2528123454320%252B1%2529%253Bexit%2528%2529%253B"



"uri": "/adodb.class.php",
    "method": "POST",
    "query": {
        "module": "frontend",
        "controller": "adodb.class.php",
        "action": "index"
    },
    "post": {
        "array": "ZXZhbCgnZWNobyAoMTIzNDU0MzIwKzEpO2V4aXQoKTsnKTs"



"uri": "/cacheplugin.php",
    "method": "POST",
    "query": {
        "module": "frontend",
        "controller": "cacheplugin.php",
        "action": "index"
    },
    "post": {
        "pass": "",
        "ajax": "1",
        "a": "Php",
        "p1": "eval(urldecode(urldecode($_POST[chr(99).chr(111).chr(100).chr(101).chr(122)])));",
        "codez": "echo%2520%2528123454320%252B1%2529%253Bexit%2528%2529%253B"


"uri": "/cgi-bin/error-log.php",
    "method": "POST",
    "query": {
        "module": "frontend",
        "controller": "cgi-bin",
        "action": "error-log.php"
    },
    "post": {
        "ice": "eval(urldecode(urldecode($_POST[chr(99).chr(111).chr(100).chr(101).chr(122)])));",
        "codez": "echo%2520%2528123454320%252B1%2529%253Bexit%2528%2529%253B"
  1. Tag nur 5 Versuche beim Newsletter.

  2. Tag 19 ersuche Newsletter

  3. Tag einige Versuche Newsletter und Kontaktforumlar und dann sowas:

    „uri“: „/artikelurl?action=rating&c=18“,
    „method“: „POST“,
    „query“: {
        „action“: „rating“,
        „c“: „18“,
        „module“: „frontend“,
        „controller“: „detail“,
        „sArticle“: „96“,
        „rewriteUrl“: „1“,
        „sCategory“: „18“
    },
    „post“: {
        „sVoteName“: „aspa818fic“,
        „sVoteSummary“: „“,
        „sVoteStars“: „10“,
        „sVoteComment“: "http://glucotrol.top/ - buy glucotrol http://crestor.red/ - found it for you http://genericforcrestor.trade/ - crestor http://buy-zithromax.red/ - buy zithromax ",
        „sCaptcha“: „“,
        „Submit“: „“

 

Dann wiederholt sich alles mehr oder weniger, inzwischen nur noch ca. 10 Meldungen am Tag.

Gerade beim 6. der Eintrag scheint, als wollte jemand versuchen, eine Bewertung mit Links abzugeben. Sogar der Kommentar ist lesbar, war mir in der Emailflut gar nicht aufgefallen.

Für die von dir genannten Systeme kenne ich mich zu wenig mit dem techn. Kram aus. Also hoffe ich weiter das Beste… Blöderweise ist die IP auch immer unterschiedlich, so dass ich die nicht blockieren kann.

 

 

 

 

 

Ja, das sind sehr sicher Bots die versuchen Sicherheitslücken in sehr populären Open Source Systemen (zum Beispiel WordPress) auszunützen. Kommentare / Bewertungen werden oft genützt um Backlinks zu generieren (wie bei Deinem Beispiel der Fall).

Hallo Leute ich habe ein Ähnliches problem, und zwar habe ich jeden tag so zwichen 40-80 mail s in meinem Postfach die alle nur sagen X-CFSR Token false, ein bekannter meinte es sei von google symphony oder so ich habe keine ahnung ich habe gegoogelt aber nix gefunden. Ich habe dieses problem erst nach dem update von 5.2.3 auf 5.2.6 seit dem habe ich diese fehler. und mit verlaub es nervt gewaltig, meine frage ist ob man diese „Bot-Anfragen“ blocken kann? wenn ja wie. Weil ich habe nur jedemenge mit Audioserver und Newsletter gefunden aber keine mit Index anfragen. 

„uri“: „/rasenmaeher-ersatzteile/angebote/222/rotak-32-li“, „method“: „POST“, „query“: { „module“: „frontend“, „controller“: „detail“, „action“: „index“, „sArticle“: „222“, „rewriteUrl“: „1“ }, „post“:

 

 

Die Auskunft, die ich vom Hoster bekommen habe ist, dass Aussperren von IP-Adressen z.B. keinen Sinn macht, da diese Bots die IP-Adressen ständig wechseln. Wenn jemand eine andere Idee hat, bin ich dankbar.

Das ist korrekt. Ich empfehle dir eine WAF (Web Application Firewall) oder einen CDN Provider (z.B. Cloudflare).