Robotii care încearcă să spargă site-uri WordPress folosesc mai multe metode pentru a identifica numele utilizatorilor, inclusiv pe cel al administratorului. Iată cum reușesc și cum poți evita aceste vulnerabilități:
About Robots
Cum reușesc roboții să identifice numele administratorului
-
Interogarea API-ului REST WordPress:
WordPress are un API REST activat implicit, care poate dezvălui numele utilizatorilor. De exemplu, o cerere la/wp-json/wp/v2/users
poate returna o listă cu toți utilizatorii publici, inclusiv numele. -
Enumerarea utilizatorilor prin URL:
Roboții testează URL-uri precum?author=1
,?author=2
și așa mai departe. Dacă găsesc o pagină de autor validă, pot deduce numele utilizatorului asociat. -
Formulare sau comentarii:
Dacă un administrator lasă un comentariu sau publică articole, numele său poate apărea în metadate. -
Atacuri brute:
Chiar dacă numele utilizatorului este greu de ghicit, roboții pot folosi atacuri brute pentru a încerca combinații comune.
Cum să protejezi numele administratorului
1. Dezactivează API-ul REST pentru utilizatori necunoscuți
Poți adăuga următorul cod în fișierul functions.php
al temei:
add_filter(‘rest_endpoints’, function ($endpoints) {
if (isset($endpoints[‘/wp/v2/users’])) {
unset($endpoints[‘/wp/v2/users’]);
}
return $endpoints;
});
Acest lucru va bloca accesul la lista de utilizatori prin API.
2. Redirecționează interogările de tip “author”
Adaugă următorul cod în functions.php
pentru a preveni accesul la ?author=
:
add_action(‘template_redirect’, function () {
if (is_author()) {
wp_redirect(home_url());
exit;
}
});
3. Folosește un nickname public diferit de username-ul de autentificare
- Accesează Users > Profile în WordPress.
- Schimbă câmpul Display name publicly as (Numele public) pentru a afișa un alias, nu username-ul real.
4. Utilizează un plugin de securitate
Plugin-uri precum Wordfence sau iThemes Security pot:
- Bloca încercările de autentificare automate.
- Restricționa accesul la API.
- Ascunde pagina de login standard
/wp-login.php
.
5. Limitează accesul prin IP și activează autentificarea în doi pași (2FA)
- Activează autentificarea în doi pași pentru contul de admin folosind un plugin precum Google Authenticator.
- Configurează o restricție de acces la pagina de autentificare doar pentru anumite IP-uri, dacă este posibil.
6. Monitorizează activitatea și încearcă un honeypot
- Folosește un plugin pentru a înregistra încercările de autentificare (ex: WP Activity Log).
- Configurează un honeypot pentru a prinde roboții, atrăgându-i într-o capcană virtuală.
Testare suplimentară
După implementarea acestor măsuri, verifică singur vulnerabilitățile, utilizând instrumente precum WPScan sau Burp Suite pentru a vedea dacă numele utilizatorului este în continuare vizibil.
SOlutii
Enumerarea utilizatorilor prin URL funcționează astfel: WordPress asociază automat un ID numeric fiecărui utilizator creat pe site. De exemplu:
- Administratorul site-ului, fiind primul utilizator, va avea de obicei ID-ul 1.
- Următorii utilizatori creați primesc ID-uri consecutive (2, 3, etc.).
Cum funcționează această enumerare?
Roboții sau atacatorii trimit cereri către site folosind parametrul ?author=
în URL pentru a obține detalii despre utilizatori. Exemplu:
- Accesarea
https://example.com/?author=1
. - WordPress va redirecționa către URL-ul paginii de autor, cum ar fi:
https://example.com/author/admin_username/
.
Dacă WordPress nu este configurat să ascundă această redirecționare, atacatorul va descoperi numele utilizatorului asociat acelui ID. Apoi, acesta poate încerca să spargă contul folosind un atac de tip brute force sau alte metode.
Cum testezi dacă site-ul tău este vulnerabil?
- Introdu în browser
https://siteultau.ro/?author=1
. - Dacă ești redirecționat către o adresă precum
https://siteultau.ro/author/numeleadmin/
, înseamnă că site-ul este vulnerabil.
Cum să blochezi enumerarea utilizatorilor prin URL?
1. Redirecționează cererile ?author=
către pagina principală
Adaugă acest cod în fișierul functions.php
al temei active:
add_action(‘template_redirect’, function () {
if (is_author()) {
wp_redirect(home_url());
exit;
}
});
2. Dezactivează redirecționarea implicită a WordPress
Un alt mod este să modifici permalinks pentru a ascunde complet informațiile despre autori. Poți face asta printr-un plugin de securitate, cum ar fi iThemes Security sau Rank Math, care are opțiunea de a bloca accesul la URL-urile de autor.
3. Folosește un plugin de securitate
Plugin-uri precum Wordfence sau All In One WP Security & Firewall detectează și blochează încercările de enumerare a utilizatorilor. Activează setările specifice pentru brute force protection.
4. Verifică alte metode de ascundere a utilizatorilor
- Schimbă numele public (display name) din Users > Profile, astfel încât să fie diferit de username-ul de autentificare.
- Asigură-te că articolele sau comentariile postate de utilizatori nu dezvăluie username-ul lor real.
Dacă ai schimbat link-ul implicit de autentificare WordPress (/wp-admin
sau /wp-login.php
) cu unul personalizat și roboții tot reușesc să îl găsească, înseamnă că există metode suplimentare prin care aceștia îl descoperă. Iată ce se întâmplă și ce poți face:
Cum pot descoperi roboții link-ul de autentificare personalizat?
-
Verifică redirecționările implicite ale WordPress:
Chiar dacă schimbi URL-ul de autentificare, unele cereri trimise la/wp-admin
pot fi redirecționate automat spre noul link, expunând locația. -
Enumerarea fișierelor WordPress:
Roboții analizează structura site-ului și încearcă să identifice tipare comune în URL-uri sau resurse (cum ar fi scripturile.js
sau.css
) folosite de pagina de autentificare. -
Informații expuse în HTML sau în codul sursă al paginii:
Unele plugin-uri sau teme lasă urme în codul sursă care pot dezvălui URL-ul de autentificare. -
Atacuri brute pe directoare:
Roboții încearcă o listă de URL-uri comune sau personalizate (cum ar fi/login
,/admin
,/custom-login
) pentru a ghici locația paginii de autentificare.
Cum să protejezi link-ul de autentificare personalizat?
1. Blochează accesul neautorizat prin IP
Dacă site-ul tău are un set limitat de IP-uri de pe care te conectezi:
-
Configurează un
.htaccess
pentru a permite accesul la pagina de autentificare doar de la IP-urile tale:Înlocuiește
custom-login
cu numele noului link șiXX.XX.XX.XX
cu IP-ul tău.
2. Ascunde complet URL-ul de autentificare printr-un plugin
Folosind plugin-uri precum WPS Hide Login sau iThemes Security, poți schimba URL-ul de login fără a lăsa urme în redirecționări sau fișiere publice. Aceste plugin-uri blochează accesul la /wp-admin
și /wp-login.php
, fără a expune locația nouă.
3. Activează un Honeypot pentru a bloca roboții
Un honeypot creează un “fals” URL de autentificare care atrage roboții. Odată ce încearcă să îl acceseze, sunt blocați automat. Plugin-uri precum Cerber Security sau Wordfence pot face asta.
4. Activează autentificarea în doi pași (2FA)
Chiar dacă URL-ul este descoperit, activarea autentificării în doi pași (2FA) oprește roboții. Poți folosi plugin-uri precum Google Authenticator sau Wordfence Login Security.
5. Configurează un firewall și limitează cererile la URL-uri
Utilizează un firewall precum Cloudflare sau unul oferit de hosting. Creează reguli care:
- Blochează accesul către
/wp-admin
și/wp-login.php
. - Permite acces doar către URL-ul personalizat din locații legitime.
Testează măsurile de securitate
- Verifică redirecționările: Accesează manual
/wp-admin
și/wp-login.php
. Ele nu ar trebui să redirecționeze către link-ul personalizat. - Simulează un scan de vulnerabilitate: Utilizează un instrument precum WPScan pentru a vedea dacă URL-ul este expus.
Dacă implementezi aceste soluții și roboții continuă să găsească link-ul, este posibil ca site-ul să fie ținta unui atac avansat. În acest caz, un specialist în securitate IT poate face un audit complet