Was könnte ein Hacker mit meiner wp-config.php machen?

11

Ich versuche mein WordPress-Blog zu sichern. Ich habe einige Beiträge im Web gelesen, die ich ändern table_prefixund verstecken sollte wp-config.php. Allerdings verstehe ich es nicht? Was könnte ein Angreifer mit meinem machen wp-config.php?

Ich meine, es gibt meine Datenbankkonfigurationen, aber der Angreifer benötigt DB_HOSTzum Beispiel meine , die nicht so einfach zu bekommen ist, um eine Verbindung zu meiner Datenbank herzustellen? (In meinem Fall ist es : define('DB_HOST', 'localhost');, die der Angreifer nicht verwenden konnte, um eine Verbindung zu meiner Datenbank herzustellen )

Oder vermisse ich etw?

Ich freue mich sehr über Ihre Antwort!

Kare
quelle
Ich denke, es wird ihm leicht fallen, SQL zu injizieren. Markiert. Warten auf Experten, um dies zu beantworten.
Robert Farbton
Sie können es auch auf Programming Puzzles & Code Golf Beta veröffentlichen und sehen, was sich die Leute einfallen lassen. :)
Joshua Taylor
1
@ JoshuaTaylor Bitte nein. Abgesehen von den offensichtlichen ethischen Fragen geht es auf unserer Website nicht darum: Wir mögen nur Fragen, die ein objektives Gewinnkriterium haben, um zu entscheiden, welche Lösung gewinnt, nicht nur "Hey, lasst uns alle Code schreiben und Spaß haben! Yaaaay!"
Türknauf
@ Doorknob Nun, offensichtlich wäre es ein Beliebtheitswettbewerb. Aber im Ernst, ich hatte gehofft, dass das ":)" vermitteln würde, dass ich es nicht ernst meinte. Wenn jemand versucht hat, seine wp-config-Dateien zu veröffentlichen, bitte ich um Entschuldigung.
Joshua Taylor

Antworten:

9

localhostbezieht sich auf die Maschine, auf der es läuft. Zum Beispiel auf meiner eigenen Website tomjn.com ist localhost 127.0.0.1wie immer. Dies bedeutet nicht , der Hacker nicht weiß , wo zu verbinden, es bedeutet , dass der Hacker ersetzt localhostmit tomjn.com.

Wenn ich einen Proxy vor mir habe, funktioniert dies natürlich nicht. Beachten Sie jedoch, dass der Angreifer, wenn er Zugriff auf meinen wp-config.phphat, mit demselben Zugriff andere Aufgaben auf diesem Computer ausführen kann.

Jetzt hat der Angreifer Ihre Datenbankdetails und kann diese lesen wp-config.php. Sie haben jetzt Zugriff auf alles in Ihrer Datenbank und können alles in Ihrer Datenbank ändern.

Abhängig von der Sicherheit Ihrer Installation können sie einen Benutzer für sich selbst erstellen, sich anmelden, ein Plugin per Zip mit einem PHP-Shell-Skript hochladen und Befehle ausgeben oder die Site als Teil eines Bot-Netzes verwenden.

Sie haben auch Ihre Salze und geheimen Schlüssel (wenn Sie keine davon haben, schlecht, schlecht, schlecht), so dass das brutale Erzwingen der Passwörter Ihrer Benutzer erheblich einfacher wird. Sie haben auch Zugriff auf ihre E-Mails.

Es genügt zu sagen, dass das Erhalten wp-config.phpeines der schlimmsten Dinge ist, die passieren können. Es kann noch viel mehr getan werden, aber es würde Monate dauern, um jeden möglichen Angriff, der sich daraus ergibt, abzutippen.

Falls Sie wp-config.phperworben wurden, ist es wahrscheinlich, dass ein automatisiertes Angriffsskript dies getan hat, nicht eine tatsächliche Person. Ändern Sie alle Ihre Daten, setzen Sie alle Passwörter zurück und schließen Sie die Lücke.

Tom J Nowell
quelle
2
Dies bedeutet nicht , der Hacker nicht weiß , wo zu verbinden, es bedeutet , dass der Hacker ersetzt localhostmit tomjn.com. > Vorausgesetzt, Sie haben den Port zur Datenbank, auf den die Außenwelt zugreifen kann. Wären Sie nicht sicher, wenn Sie den Port in den Firewall-Regeln geschlossen haben und nur Computern im lokalen Netzwerk (einschließlich des Computers, auf dem WordPress selbst ausgeführt wird) die Verbindung zur Datenbank ermöglichen?
IQAndreas
1
Es wäre immer noch der richtige Ort, aber ja, die Ports sind relevant. Ich habe hauptsächlich auf die ursprüngliche Notiz in der Frage
Tom J Nowell
2

Wenn Sie nur den Zugriff auf die Datenbank von akzeptieren localhost(dies wird nicht durch Definieren DB_HOSTals erreicht localhost)? Nicht zu viel für sich (der schlimmste Fall wäre, wenn ein Angreifer das Administratorkonto übernimmt), aber in Kombination mit anderen Sicherheitslücken kann es für einen Angreifer hilfreich sein, Zugriff auf Ihre Konfiguration zu haben.

Anmeldedaten

Die Benutzer verwenden ihre Benutzernamen und Passwörter wieder. Ein Angreifer prüft, ob Ihr Datenbankbenutzername und Ihr Kennwort (oder Variationen davon) für Ihre WordPress-Installation, für Ihren Hoster, für Ihre E-Mail usw. funktionieren.

Zumindest bekommt ein Angreifer eine Vorstellung davon, welche Art von Passwörtern Sie verwenden (völlig zufällig, nur Kleinbuchstaben / Zahlen, Länge usw.).

Tabellenpräfix

Wenn eine SQL-Injection möglich ist, muss ein Angreifer die Tabellennamen kennen. Abhängig von der Datenbank kann dies sehr einfach sein oder das Erraten beinhalten. Wenn es sich um Vermutungen handelt, ist es am besten, das Tabellenpräfix zu haben.

Schlüssel und Salze

Ich habe diesen Artikel gefunden, der darauf hinweist, dass Sie wirklich nicht möchten, dass diese durchgesickert sind (im Grunde könnte jeder Ihr Administratorkonto übernehmen), obwohl ich nicht weiß, wie aktuell es ist.

Datenbankzeichensatz

Einige SQL-Injektionen hängen vom Zeichensatz ab, daher ist es für einen Angreifer gut, dies zu wissen.

Zusammenfassung

Wenn Sie keinen externen Zugriff auf die Datenbank zulassen, wenn Sie keine Kennwörter wiederverwenden und wenn Sie nirgendwo SQL-Injektionen haben, sind der Schlüssel und die Salze die Hauptsorge.

tim
quelle
Dieser Artikel ist aktuell genug. Sie möchten nicht, dass Ihre Salze und Schlüssel auslaufen. Das sind private Informationen. Wenn Sie sogar den Verdacht haben, dass sie zur Verfügung gestellt wurden, ändern Sie sie sofort in einen anderen Satz zufälliger Daten. Es gibt keinen wirklichen Nachteil, sie zu ändern. Sie werden einfach von der Website abgemeldet und Sie müssen sich erneut anmelden. Sie können einen neuen zufälligen Satz von Schlüsseln und Salzen von hier erhalten: api.wordpress.org/secret-key/1.1/salt
Otto
1

Ich gehe davon aus, dass Sie nach dem Lesezugriff fragen, da der Schreibzugriff im Grunde genommen der Zugriff ist, um seinen eigenen Code einzufügen, um mit Ihrer Site alles zu tun, was er möchte.

Ihre Annahme, dass DB-Informationen nicht vertraulich sind, ist falsch. Nehmen wir an, Ihre Website wird bei godaddy gehostet. godaddy AFAIK verwendet dedizierte MySQL-Server, auf die wahrscheinlich nur von ihren eigenen Servern aus zugegriffen werden kann. Wenn ich jedoch Ihre Daten kenne, wie schwierig ist es für mich, ein Godaddy-Konto zu erstellen und ein Skript zu schreiben, das auf Ihre Datenbank zugreift? Bei lokalen DBs ist die Ausnutzung schwieriger, aber auf gemeinsam genutzten Hosting-Servern haben Sie möglicherweise 100 Sites, die den Server mit Ihnen teilen. Können Sie darauf vertrauen, dass sie so sicher sind, dass Mr Evil nicht in sie eindringen und sie zum Angriff auf Ihre Site verwenden kann?

Mark Kaplun
quelle