PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   hackerangriff auf mysql (http://www.selfphp.de/forum/showthread.php?t=26156)

gutu 09.03.2020 11:04:56

hackerangriff auf mysql
 
Hallo Expert*innen
Meine Seite www.bizilliance.com läuft problemlos. Aber folgendes bereitet mir Sorgen:
Habe auf allen Seiten eine Fehlerroutine eingebaut, die jeden Fehler in einer Datenbank vermerkt und mir ein mail sendet.
Seit einigen Tagen erhalte ich Hunderte Fehlermeldungen innerhalb von wenigen Minuten zu unmöglichen Zeiten (mitten in der nacht). Das sind sicher Hackerangriffe.
Das sind 2 Fehlermeldungen die am häufigsten auftreten:
2020-03-09 04:28:00 0 SQLSTATE[42000]: Syntax error or access violation: 1142 SELECT command denied to user /sql1615925/@/81.19.145.161/ for table /user/ Line 27 P /home/.sites/65/site1764132/web/index.php

2020-03-09 03:49:00 0 SQLSTATE[21000]: Cardinality violation: 1222 The used SELECT statements have a different number of columns line 27 /home/.sites/65/site1764132/web/index.php

Beide beziehen sich auf meine Homepage, wo ich Tickermeldungen aus der Datenbank lese:
PHP-Code:

25    $sql="select * from hometicker where sprache='".$sprache."' order by id";
26    $_SESSION["sql"]=$sql;
27    $stmt $pdo->query($sql); 

Habe versucht, den SQL über eine Session in die Fehler-Datenbank zu schreiben. Ist aber leider immer leer.
Bei der ersten Fehlermeldung versucht der Hacker offensichtlich eine Tabelle „user“ auszulesen, die es aber gar nicht gibt. Mit der 2. Meldung kann ich gar nichts anfangen.
Kann mir bitte jemand Tipps geben, denn ich bin sehr beunruhigt.
Liebe Grüße aus Salzburg
Uwe

vt1816 09.03.2020 14:37:12

AW: hackerangriff auf mysql
 
Den wichtigsten Tipp den man Dir hier nur geben kann, regelmäßig das SQL-Passwort zu aktualisieren und dabei aufbestimmte Notwendigkeiten achten (Groß-/Kleinschreibung, Zahlen, Sonderzeichen, Länge >= 10 Zeichen).

Kommen die Attacken immer von den gleichen IP-Adressen? Dann sperren.
Sind es immer die gleichen Browser Strings? Dann sperren.
Schau Dir an mit welchen Parametern Deine Seite aufgerufen wird (GET/POST) - sperren.

Es git kein Allheilmittel. Du kannst es den Angreifern nur so schwer wie möglich machen.

gutu 10.03.2020 08:38:22

AW: hackerangriff auf mysql
 
Herzlichen Dank für die rasche Antwort! Finde ich toll!
Das PW für die Datenbank hatte ich vor einigen Wochen geändert und es ist sehr komplex.

Was ich nicht verstehe ist, dass immer die Zeile 27 als Fehler gemeldet wird. Es muss dem Hacker gelungen sein, meine index.php auszulesen und dort den SQL Befehl zu ändern.
Daher habe ich den SQL String in eine Sessionvariable gespeichert, die dann in der Fehlerroutine in die Fehlertabelle geschrieben wird.
Aber der String ist leer!?
Hätte ich diese Fehlerroutine nicht programmiert, wüßte ich davon gar nichts. Hätte das alles gerne verstanden.
Beste Grüße aus Salzburg

chorn 13.03.2020 09:52:15

AW: hackerangriff auf mysql
 
"The used SELECT statements have a different number of columns" weist darauf hin, dass UNION benutzt wurde, was Ergebnisse aus zwei Statements aneinander klatscht, was natürlich nur geht, wenn die Spalten identisch sind, was hier offensichtlich nicht der Fall ist.

Sowas hier:

Code:

$sql="select * from hometicker where sprache='".$sprache."' order by id";
sollte in deinem Code NIEMALS auftauchen, Variablen in SQL-Statements sind praktisch immer ein klares Anzeichen für eine SQL-Injection-Lücke

https://de.wikipedia.org/wiki/SQL-Injection

und die Fehlermeldung weist darauf hin, dass dein Statement verändert wurde. Du nutzt ja scheinbar schon MySQLi oder PDO, dann bau das auf Prepared Statements um:

https://www.php.net/manual/de/pdo.pr...statements.php

gutu 14.03.2020 17:00:53

AW: hackerangriff auf mysql
 
Danke für die Antwort. Ich verwende sonst prepared, wollte aber in diesem Fall den Inhalt der Sql wissen, was mir aber ohnehin nicht gelungen ist.


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:26:06 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.