Znajdź zawartość
Wyświetlanie wyników dla tagów 'rest api' .
-
Witajcie, Zbierałem się "kilka" dni na napisanie tego Dzisiaj chciałem wam zaproponować zablokowanie anonimowego dostępu do REST API. Funkcja została dodana w Wordpress 4.7, a obecna aktualna to 5.6. Dokładnie rozchodzi się o /wp-json/wp/v2/users Chwila, chwila... Harry co ty piszesz, na FTP mam tylko foldery cgi-bin wp-admin wp-content wp-includes No i oczywiście: nie mam folderu wp-json?! Odpowiadam zatem Mimo iż nie posiadasz takiego folderu to dzięki REST API WordPress odpowiada na zapytania kierowane bezpośrednio do niego, ot cała magia 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ć. Mając dostęp do samej nazwy usera można przeprowadzić atak bruteforce do próby łamania haseł. ---=== WERSJA ARCHIWALNA - NIEBEZPIECZNIK ZABLOKOWAŁ PODGLĄD ===--- Z ciekawości szukałem w google przez chwilę blogów, które mają publicznie dostępną bazę i to co znalazłem trochę mnie rozbawiło ku mojemu zdziwieniu lecz możliwe, Że chłopaki ze strony Niebezpiecznik.pl w ogóle nie przejmują się tym całym REST API lub jest im po prostu potrzebny https://niebezpiecznik.pl/wp-json/wp/v2/users [{"id":11,"name":"Anonim","url":"http:\/\/aoisjf98sehjf89sdjf","description":"","link":"https:\/\/niebezpiecznik.pl\/post\/author\/anonim\/","slug":"anonim","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/4977a0c3991e11a59ded3e1b47587f0b?s=24&d=blank&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/4977a0c3991e11a59ded3e1b47587f0b?s=48&d=blank&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/4977a0c3991e11a59ded3e1b47587f0b?s=96&d=blank&r=g"},"meta":[],"_links":{"self":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users\/11"}],"collection":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users"}]}},{"id":16,"name":"B\u0142a\u017cej Malczak","url":"","description":"","link":"https:\/\/niebezpiecznik.pl\/post\/author\/bm\/","slug":"bm","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/4e67e7db84fab0926528e4b6f942ab20?s=24&d=blank&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/4e67e7db84fab0926528e4b6f942ab20?s=48&d=blank&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/4e67e7db84fab0926528e4b6f942ab20?s=96&d=blank&r=g"},"meta":[],"_links":{"self":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users\/16"}],"collection":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users"}]}},{"id":14,"name":"Dawid Ba\u0142ut","url":"","description":"","link":"https:\/\/niebezpiecznik.pl\/post\/author\/dbalut\/","slug":"dbalut","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/4f117b33eb2d40dcc8e6728807860357?s=24&d=blank&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/4f117b33eb2d40dcc8e6728807860357?s=48&d=blank&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/4f117b33eb2d40dcc8e6728807860357?s=96&d=blank&r=g"},"meta":[],"_links":{"self":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users\/14"}],"collection":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users"}]}},{"id":17,"name":"Grzegorz Wr\u00f3bel","url":"","description":"","link":"https:\/\/niebezpiecznik.pl\/post\/author\/grzegorz-wrobel\/","slug":"grzegorz-wrobel","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/8da8f069e9435695115c7e5a74577469?s=24&d=blank&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/8da8f069e9435695115c7e5a74577469?s=48&d=blank&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/8da8f069e9435695115c7e5a74577469?s=96&d=blank&r=g"},"meta":[],"_links":{"self":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users\/17"}],"collection":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users"}]}},{"id":5,"name":"igH","url":"","description":"","link":"https:\/\/niebezpiecznik.pl\/post\/author\/igh\/","slug":"igh","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/b2877236caa8824e77d9e9edad0a78cb?s=24&d=blank&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/b2877236caa8824e77d9e9edad0a78cb?s=48&d=blank&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/b2877236caa8824e77d9e9edad0a78cb?s=96&d=blank&r=g"},"meta":[],"_links":{"self":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users\/5"}],"collection":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users"}]}},{"id":13,"name":"Krzysztof Nowak","url":"http:\/\/www.niebezpiecznik.pl\/","description":"","link":"https:\/\/niebezpiecznik.pl\/post\/author\/Krzysztof Nowak\/","slug":"Krzysztof Nowak","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/c93f832b987a7724fcc52c191c5de66b?s=24&d=blank&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/c93f832b987a7724fcc52c191c5de66b?s=48&d=blank&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/c93f832b987a7724fcc52c191c5de66b?s=96&d=blank&r=g"},"meta":[],"_links":{"self":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users\/13"}],"collection":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users"}]}},{"id":19,"name":"Marcin Maj","url":"https:\/\/niebezpiecznik.pl","description":"","link":"https:\/\/niebezpiecznik.pl\/post\/author\/mmaj\/","slug":"mmaj","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/8250a3e8017c9637f4c65728fcef3ae5?s=24&d=blank&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/8250a3e8017c9637f4c65728fcef3ae5?s=48&d=blank&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/8250a3e8017c9637f4c65728fcef3ae5?s=96&d=blank&r=g"},"meta":[],"_links":{"self":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users\/19"}],"collection":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users"}]}},{"id":20,"name":"Mateusz Piaszczak","url":"","description":"","link":"https:\/\/niebezpiecznik.pl\/post\/author\/mp\/","slug":"mp","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/9a810e44dea4a928a23ab2e6deb0ecba?s=24&d=blank&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/9a810e44dea4a928a23ab2e6deb0ecba?s=48&d=blank&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/9a810e44dea4a928a23ab2e6deb0ecba?s=96&d=blank&r=g"},"meta":[],"_links":{"self":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users\/20"}],"collection":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users"}]}},{"id":3,"name":"Mr. Niebezpieczny","url":"https:\/\/niebezpiecznik.pl","description":"","link":"https:\/\/niebezpiecznik.pl\/post\/author\/niebezpiecznik\/","slug":"niebezpiecznik","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/a89e5942a59c6ee8132d205a38c143b1?s=24&d=blank&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/a89e5942a59c6ee8132d205a38c143b1?s=48&d=blank&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/a89e5942a59c6ee8132d205a38c143b1?s=96&d=blank&r=g"},"meta":[],"_links":{"self":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users\/3"}],"collection":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users"}]}},{"id":2,"name":"Piotr Konieczny","url":"https:\/\/niebezpiecznik.pl","description":"","link":"https:\/\/niebezpiecznik.pl\/post\/author\/pk\/","slug":"pk","avatar_urls":{"24":"https:\/\/secure.gravatar.com\/avatar\/eaa31546b0d4c41905c1c7fde81b8ebd?s=24&d=blank&r=g","48":"https:\/\/secure.gravatar.com\/avatar\/eaa31546b0d4c41905c1c7fde81b8ebd?s=48&d=blank&r=g","96":"https:\/\/secure.gravatar.com\/avatar\/eaa31546b0d4c41905c1c7fde81b8ebd?s=96&d=blank&r=g"},"meta":[],"_links":{"self":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users\/2"}],"collection":[{"href":"https:\/\/niebezpiecznik.pl\/wp-json\/wp\/v2\/users"}]}}] W google znalazłem jeszcze kilka innych blogów całkowicie pokazujących nie tylko te dane. ---=== WERSJA ARCHIWALNA - NIEBEZPIECZNIK ZABLOKOWAŁ PODGLĄD ===--- WP REST API ma troszkę więcej możliwości lecz po lekturę odsyłam tutaj: http://v2.wp-api.org/ Przykładem, którym się posłużę będą strony, które poznałem wczoraj. Temat: https://make-cash.pl/wordpres-prawdopodobnie-po-aktualizacji-szwankuje-t45143/ Strony: https://pomocnyrolnik.pl https://wielkietopy.pl https://zielonapasja.pl https://mocnafaza.pl https://newsykonopne.pl Autor: @Skate Poznajmy zatem zarejestrowanego użytkownika przechodząc pod adres https://pomocnyrolnik.pl/wp-json/wp/v2/users https://wielkietopy.pl/wp-json/wp/v2/users https://zielonapasja.pl/wp-json/wp/v2/users https://mocnafaza.pl/wp-json/wp/v2/users https://newsykonopne.pl/wp-json/wp/v2/users Reasumując: Zarejestrowany user na każdej stronie, to admin - typowe faux pas ponieważ nazwa konta to "admin". Wszystko będzie lepsze niż najzwyklejszy admin, brakuje jeszcze hasła "qwerty". @Skate - LOGIN DO ZMIANY JAK NAJSZYBCIEJ! Najlepiej aby każda strona miała inny login oraz hasło. Znając nazwę użytkownika już prosta droga, żeby łamać hasło, np. metodą brute force. W moim odczuciu osoba prowadząca takie strony powinna chociaż troszkę zadbać o bezpieczeństwo i prywatność, ale co ja tam wiem Innym przykładem niech będzie strona, którą tym razem znalazłem w dziale Twórczość Użytkowników Temat: https://make-cash.pl/strona-do-oceny-t14888/ Strona: http://zapiexy.pl Autor: @asi-mak Przechodząc pod adres: http://zapiexy.pl/wp-json/wp/v2/users poznamy zarejestrowanego użytkownika. Zarejestrowany user: Admin2020 - lepsze to niż sam admin Przy okazji widać, że w/w konto ma wprowadzony adres url: nowe.zapiexy.pl przekierowuje na zapiexy.pl Sprawdziłem przekierowanie i dostałem taki wynik (ciekawostka) >>> https://nowe.zapiexy.pl > -------------------------------------------- > 301 Moved Permanently > -------------------------------------------- Status: 301 Moved Permanently Code: 301 Date: Thu, 07 Jan 2021 08:03:20 GMT Content-Type: text/html; charset=UTF-8 Connection: close Server: Apache X-Redirect-By: WordPress Location: https://zapiexy.pl/ >>> https://zapiexy.pl/ > -------------------------------------------- > 200 OK > -------------------------------------------- Status: 200 OK Code: 200 Date: Thu, 07 Jan 2021 08:03:20 GMT Content-Type: text/html; charset=UTF-8 Connection: close Server: Apache Link: <https://zapiexy.pl/>; rel=shortlink Dobra, wyłączajmy tę możliwość UWAGA: Jeżeli potrzebujesz mieć włączone API to oczywiście tego nie rób, nie wyłączaj. Jeśli jednak nie miałeś pojęcia o tym to najlepiej wyłączyć Zdecydowana większość osób, nie używa REST API. Jeśli jednak nie używasz REST API, to poczyń następujące kroki: Zainstaluj sobie wtyczkę My Custom Functions Plugin: My Custom Functions Opis: Łatwe i bezpieczne dodawanie niestandardowego kodu PHP bez ingerencji w plik functions.php Link: https://wordpress.org/plugins/my-custom-functions Opinia: MUST HAVE! Mam na każdej stronie! 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 add_filter( 'rest_endpoints', '__return_empty_array' ); Po wklejeniu powyższego kodu: 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 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 @asi-mak http://zapiexy.pl/?author=1 przekierowuje mnie na http://zapiexy.pl/author/admin2020/ gdzie już są widoczne posty. Gdy sprawdzi się ID 2+ (author=2) i więcej, to wyświetli się strona 404 z informacją Jak sobie z tym poradzić? Wystarczy edytować plik .htaccess, skopiować poniższy kod i wkleić bezpośrednio nad </IfModule> 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. btw. ten poradnik również znajduje się na blogu GetPaid20.pl pt. "WordPress: Jak wyłączyć anonimowy dostęp do REST API oraz zablokować enumerację użytkowników" Przy okazji zareklamuję siebie. Mogę zabezpieczyć ci stronę lub ją zoptymalizować pod kątem szybkości działania Po więcej informacji zapraszam do mojego tematu: Jeżeli są pytania, to proszę zadawać. Postaram się odpowiedzieć na wszystkie. Życzę wam bezpiecznych wordpressów! Pozdrawiam
- 9 odpowiedzi
-
- 15
-
- wordpress
- bezpieczeństwo
-
(i 2 więcej)
Oznaczone tagami: