Próbuję zabezpieczyć mojego bloga wordpress. Czytam kilka postów w sieci, które powinienem zmienić table_prefix
i 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_HOST
na 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ź!
Odpowiedzi:
localhost
odnosi się do maszyny, na której działa. Na przykład na mojej stronie tomjn.com localhost jest taki,127.0.0.1
jak zawsze. To nie oznacza, że haker nie wie, gdzie się połączyć, oznacza to, że zostaje zastąpiony przez hakerówlocalhost
ztomjn.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.php
jest 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.php
zostaniesz przejęty, prawdopodobnie wykonał to skrypt automatycznego ataku, a nie faktyczna osoba. Zmień wszystkie dane, zresetuj wszystkie hasła i zamknij dziurę.źródło
localhost
ztomjn.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?Jeśli akceptujesz dostęp do bazy danych tylko z
localhost
(nie można tego osiągnąć, definiującDB_HOST
jakolocalhost
)? 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.
źródło
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ę?
źródło