Sprawdź:
Cześć wszystkim!
Szukałem ale nie znalazłem podobnego tematu więc przedstawiam wam krótki acz treściwy poradnik dotyczący wyłączenia anonimowego dostępu do REST API. Funkcja ta została dodana w wersji 4.7 wordpressa, a na dzień pisania tego poradnika aktualna to 5.6.
Oczywiście, to jest jedna z wielu metod na zabezpieczenie WP. Akurat ta jest bardzo często wykorzystywana przez spamerów, hackerów, backdoory i inny syf. Z resztą polecam zapoznać się z obrazkiem, który wiele powinien wyjaśnić.
Jak widzisz REST API to potężne narzędzie dla programistów, ale też umożliwia ataki. Dopisując do adresu odpowiednie wartości ujawnić można ciekawe rzeczy, np. zarejestrowanych wszystkich użytkowników, posty, strony czy media. By poznać zarejestrowanych użytkowników wystarczy dopisać
/wp-json/wp/v2/users
Spostrzegawcza osoba zwróci uwagę, że nie istnieje folder /wp-json/, a jedynie:
- cgi-bin (opcjonalnie)
- wp-admin
- wp-content
- wp-includes
MAGIA!
Za przykład niech posłuży mi strona znaleziona w dziale
Off-Topic / Wasza Twórczość /
Poznajmy zatem zarejestrowanego użytkownika przechodząc pod adres
http://msx96.pl/wp-json/wp/v2/usersZarejestrowany user to alg43215
Znając nazwę użytkownika już prosta droga, żeby łamać hasło, np. metodą brute force.
Dopiero później znalazłem dział
Strony Partnerskie, więc obieram za cel stronę znajdującą się tutaj, która nie ma wyłączonego REST API.
Zarejestrowany user:
admin - typowe
faux pas 
ponieważ nazwa konta to "
admin". Wszystko będzie lepsze niż najzwyklejszy admin, brakuje jeszcze hasła "qwerty".
Login do zmiany jak najszybciej!
Myślę, że te 2 przykłady wystarczą w zupełności. Żeby wyłączyć REST API, z którego zapewne nie korzystasz. Poczyń następujące kroki:
Zainstaluj sobie wtyczkę
My Custom Functions
Masz jedną z dwóch możliwości dostania się od ustawień wtyczki gdzie wprowadzisz zmiany:
- Wtyczki -> Zainstalowane wtyczki -> My Cystom Functions -> Settings
- Ustawienia -> PHP Inserter
Następnie:
- W zakładce "Main" wklejasz kod
Kod:
add_filter( 'rest_endpoints', '__return_empty_array' );
- Po prawej stronie zmieniasz na "ON"
- Zapisujesz zmiany (Save changes)
Jeśli wszystko zrobiłeś tak jak należy, to po przejściu pod
adres-twojej-strony.pl/wp-json/wp/v2/users powinna pokazać się informacja jak na poniższym obrazku
Dodatkowo wordpress ma coś takiego jak enumeracja. Każdy użytkownik w bazie danych ma przypisany numer identyfikacyjny – ID. Domyślnie od 1 (admin) do ∞ (nieskończoność).
Wystarczy aby zainteresowany użył skryptu automatyzującego, który będzie wpisywał po adresie /?author=x
Gdzie 'x' to cyferka, np. /?author=1
Dla przykładu wezmę jeszcze stronę użytkownika
HYIPRoulette
Jak sobie z tym poradzić?
Wystarczy edytować plik .htaccess, skopiować poniższy kod i wkleić bezpośrednio nad
</IfModule>
Kod:
RewriteCond %{QUERY_STRING} ^author=([0-9]*)
RewriteRule .* https://ADRES-TWOJEJ-STRONY.PL/? [L,R=302]
Od tej pory gdy ktoś będzie chciał poznać ID zostanie automatycznie przekierowany na stronę główną. Zamiast
https://ADRES-TWOJEJ-STRONY.PL/ można ustawić inny adres, np. jakiś "screamer link"
Do edycji .htaccess mogę polecić wtyczkę
Htaccess File Editor – Safely Edit Htaccess File (https://wordpress.org/plugins/wp-htaccess-editor)
- Testowanie poprawności przed zapisaniem
- Automatyczne kopie
- Możliwość wgrania backupu (z poziomu pluginy lub FTP)
- Wspiera sieć stron Wordpress (WordPress Multisite)
Innym sposobem, którego w sumie nie polecam (wrzucam informację jako ciekawostkę) jest zmiana ID w bazie danych, np ID=1000, to następne konto będzie miało ID=1001 i tak dalej
Reasumując: wyłączona enumeracja użytkowników oraz REST API skutkuje zwiększeniem bezpieczeństwa.
Zobacz też inny poradnik z tematyki bezpieczeństwa:
Jeżeli są pytania, to proszę zadawać. Postaram się odpowiedzieć na wszystkie.
Pozdrawiam
Reklama
...
ZYSKAJ DOSTĘP DO STALE ROZWIJANYCH PORADNIKÓW
--> zarabiam.comMentoring Bezpieczeństwa i Anonimowości[/url] <--
PRYWATNOŚĆ - OFFSHORE - PŁATNOŚCI - ZABEZPIECZENIA - DARKNET
zarabiam.com
![[Obrazek: welcome3.png]](http://getpaid20.pl/img/welcome3.png)
[/url]