Co haker może zrobić z moim wp-config.php

11

Próbuję zabezpieczyć mojego bloga wordpress. Czytam kilka postów w sieci, które powinienem zmienić table_prefixi ukryć wp-config.php. Jednak nie rozumiem? Co może zrobić atakujący z moim wp-config.php?

Mam na myśli, że istnieją moje konfiguracje bazy danych, ale osoba atakująca potrzebuje mojej, DB_HOSTna przykład, co nie jest takie łatwe do uzyskania, aby połączyć się z moją bazą danych? (W moim przypadku jest define('DB_HOST', 'localhost');to:, której atakujący nie mógł użyć do połączenia z moją bazą danych )

A może brakuje mi czegoś?

Naprawdę doceniam twoją odpowiedź!

Kare
źródło
Myślę, że będzie mu łatwo wstrzykiwać SQL. Oznaczone gwiazdką Oczekiwanie na odpowiedź ekspertów.
Robert hue
Możesz także opublikować go na stronie Programowanie zagadek i Code Golf w wersji beta i zobaczyć, co wymyślą ludzie. :)
Joshua Taylor
1
@JoshuaTaylor Proszę nie. Oprócz oczywistych problemów etycznych, nie o to chodzi w naszej witrynie: lubimy tylko pytania, które mogą mieć obiektywne kryterium wygranej, aby zdecydować, które rozwiązanie wygra, nie tylko „Hej, napiszmy kod i baw się dobrze! Yaaaay!”
Klamka
@Doorknob Cóż, oczywiście byłby to konkurs popularności. Ale szczerze mówiąc, miałem nadzieję, że „:)” powie, że nie mówiłem poważnie. Jeśli ktoś w rezultacie spróbuje opublikować swoje pliki wp-config, przyjmij moje przeprosiny.
Joshua Taylor,

Odpowiedzi:

9

localhostodnosi się do maszyny, na której działa. Na przykład na mojej stronie tomjn.com localhost jest taki, 127.0.0.1jak zawsze. To nie oznacza, że haker nie wie, gdzie się połączyć, oznacza to, że zostaje zastąpiony przez hakerów localhostz tomjn.com.

Oczywiście, jeśli mam serwera proxy siedzącego z przodu, to nie zadziała, ale pamiętaj, że jeśli atakujący ma dostęp do mojego wp-config.php, ten sam dostęp pozwoliłby im robić inne rzeczy na tym komputerze.

Więc teraz atakujący ma dane twojej bazy danych i może czytać wp-config.php. Mają teraz dostęp do wszystkiego w bazie danych i mogą zmieniać wszystko w bazie danych.

W zależności od bezpieczeństwa twojej instalacji, mogą stworzyć dla siebie użytkownika, zalogować się, wgrać wtyczkę poprzez zip ze skryptem PHP Shell i zacząć wydawać polecenia lub używać strony jako części bot-net.

Mają także twoje sole i tajne klucze (jeśli ich nie masz, źle źle), więc brutalne wymuszanie haseł użytkowników staje się znacznie łatwiejsze. Mają także dostęp do swoich e-maili.

Wystarczy powiedzieć, że zdobywanie wp-config.phpjest jedną z najgorszych rzeczy, które mogą się zdarzyć. Można z tym zrobić wiele innych rzeczy, ale zajęłoby miesiące, aby opisać każdy możliwy atak z tego wynikający.

W przypadku, gdy wp-config.phpzostaniesz przejęty, prawdopodobnie wykonał to skrypt automatycznego ataku, a nie faktyczna osoba. Zmień wszystkie dane, zresetuj wszystkie hasła i zamknij dziurę.

Tom J Nowell
źródło
2
To nie oznacza, że haker nie wie, gdzie się połączyć, oznacza to, że zostaje zastąpiony przez hakerów localhostz tomjn.com. > Zakładając, że masz port do bazy danych dostępny dla świata zewnętrznego. Czy nie byłbyś bezpieczny, jeśli zamknąłeś port w regułach zapory ogniowej, pozwalając tylko komputerom w sieci lokalnej (w tym komputerowi z systemem Wordpress) na połączenie się z bazą danych?
IQAndreas
1
Nadal byłaby to właściwa lokalizacja, ale tak, porty są istotne, głównie dążyłem do oryginalnej nuty w pytaniu
Tom J Nowell
2

Jeśli akceptujesz dostęp do bazy danych tylko z localhost(nie można tego osiągnąć, definiując DB_HOSTjako localhost)? Sam w sobie nie za dużo (najgorszym przypadkiem byłby atakujący przejmujący konto administratora), ale w połączeniu z innymi podatnościami atakujący może mieć dostęp do twojej konfiguracji.

Uwierzytelnienie loginu

Ludzie ponownie używają swoich nazw użytkowników i haseł. Osoba atakująca sprawdzi, czy nazwa użytkownika i hasło do bazy danych (lub ich odmiany) działają w przypadku instalacji wordpress, hostera, poczty e-mail itp.

Atakujący ma przynajmniej pojęcie, jakiego rodzaju haseł używasz (całkowicie losowe, tylko małe litery / liczby, długość itp.).

Prefiks tabeli

Jeśli możliwy jest zastrzyk SQL, osoba atakująca musi znać nazwy tabel. W zależności od bazy danych może to być bardzo łatwe lub może wymagać zgadywania. Jeśli wymaga to zgadywania, najlepiej mieć prefiks tabeli.

Klucze i Sole

Znalazłem ten artykuł sugerujący, że tak naprawdę nie chcesz, aby wyciekły (w zasadzie każdy może przejąć twoje konto administratora), chociaż nie wiem, jak aktualne jest.

Zestaw danych bazy danych

Niektóre zastrzyki SQL zależą od zestawu znaków, więc atakujący powinien o tym wiedzieć.

streszczenie

Jeśli nie zezwolisz na zewnętrzny dostęp do bazy danych, jeśli nie użyjesz ponownie haseł i jeśli nie masz nigdzie żadnych zastrzyków SQL, głównym zmartwieniem będzie klucz i sole.

tim
źródło
Ten artykuł jest wystarczająco aktualny. Nie chcesz, aby twoje sole i klucze wyciekły. To są prywatne informacje. Jeśli nawet podejrzewasz, że zostały udostępnione, natychmiast zmień je na inny zestaw losowych danych. Ich zmiana nie ma prawdziwego minusa, po prostu wyloguje Cię ze strony i będziesz musiał zalogować się ponownie. Nowy losowy zestaw kluczy i soli można uzyskać tutaj: api.wordpress.org/secret-key/1.1/salt
Otto
1

Zakładam, że pytasz o dostęp do odczytu, ponieważ dostęp do zapisu to w zasadzie dostęp do wstrzyknięcia własnego kodu, aby zrobić wszystko, co mu się podoba z Twoją witryną.

Twoje założenie, że informacje DB nie są wrażliwe, jest błędne. Załóżmy, że Twoja witryna jest hostowana w chrzestnym. godaddy AFAIK używa dedykowanych serwerów mysql, do których prawdopodobnie można uzyskać dostęp tylko z ich własnych serwerów, ale jeśli znam twoje dane, jak trudno jest mi założyć konto godaddy i napisać skrypt, który uzyskuje dostęp do twojej bazy danych? W przypadku lokalnych baz danych trudniej jest je wykorzystać, ale na współużytkowanych serwerach hostingowych możesz mieć 100 witryn, które współużytkują serwer z tobą, czy możesz zaufać im, że są wystarczająco zabezpieczone, aby Mr Evil nie mógł się do nich włamać i użyć ich do ataku na twoją stronę?

Mark Kaplun
źródło