WordPress SQL Injection: Instrumente și tehnici pentru a preveni atacurile

Publicat: 2020-09-24
WordPress SQL Injection
Urmăriți @Cloudways

Injecția SQL a fost o tehnică de hacking utilizată pe scară largă pentru a manipula baza de date WordPress. În zilele noastre, Cross Site Scripting (XSS) este popular și a devenit metoda numărul unu pentru a pirata un site WordPress.

În acest ghid, voi acoperi elementele de bază ale injecției SQL SQL și cum se poate scăpa de ea. În partea următoare, voi acoperi Cross Site Scripting. Să începem!

  • Ce este SQL Injection?
  • Puncte de intrare pentru atacuri SQL Injection
  • De ce sunt frecvente atacurile cu injecție SQL?
  • Cum funcționează injecția SQL?
  • Modalități de prevenire a injecției SQL în WordPress
  • Sfatul nr. 1 Căutați vulnerabilități la injecție SQL
  • Sfat # 2 Actualizare, actualizare, actualizare!
  • Sfat # 3 Tema și plugin-uri WordPress
  • Sfat # 4 Utilizați pluginuri de formulare de încredere
  • Sfatul # 5 Ascundeți versiunea WordPress
  • Sfat # 6 Schimbați prefixul bazei de date
  • Sfatul # 7 Faceți întotdeauna copii de rezervă
    Sfatul # 8 Păstrează jurnalele
  • Sfat # 9 Folosiți un firewall
  • Sfat # 10 Eliminați funcționalitatea inutilă a bazei de date
  • Întrebați frecvent
  • Cuvinte finale!

Ce este SQL Injection?

SQL Injection este rezultatul lacunelor din codarea backend. Un atacator poate abuza cu ușurință de câmpurile de introducere prin inserarea unui cod rău intenționat care ar putea executa comenzi SQL și poate crea, prelua, actualiza și chiar șterge datele din baza de date.

SQL este formularul scurt pentru Structured Query Language - cel mai utilizat limbaj pentru baza de date în dezvoltarea web. Iată câteva dintre cele mai populare motoare de baze de date care utilizează SQL.

Baze de date folosind SQL

Avem o mulțime de software de baze de date disponibile pe piață. Cele mai populare includ:

  • Oracol
  • MySQL
  • SQL Server
  • PostgreSQL
  • MongoDB etc.

După cum puteți vedea, MySQL este al doilea din listă. WordPress care folosește singur SQL a contribuit la peste 35% din WWW și a devenit cea mai atractivă țintă pentru atacatori.

Baze de date folosind SQL

Puncte de intrare pentru atacuri SQL Injection

Toate câmpurile de intrare sunt considerate drept cele mai comune puncte de intrare pentru atacurile SQL Injection. În termenul lui Layman, putem spune:

  • Înscrieți-vă formularele
  • Formulare de autentificare
  • Formulare de contact
  • Căutări pe site
  • Câmpuri de feedback
  • Coșurile de cumpărături

De ce sunt frecvente atacurile cu injecție SQL?

Pot exista mai multe motive pentru aceasta, dar, iată cele mai frecvente pe care mi le amintesc în timp ce scriu ghidul.

  • Majoritatea bazelor de date ale site-urilor web se bazează pe SQL
  • WordPress - cel mai utilizat CMS folosește SQL pentru baza de date
  • Aproape toate site-urile web au câmpuri de intrare pentru a colecta informații de la vizitatorii lor
  • Toate site-urile web au cel puțin unul dintre punctele de intrare SQL Injection
  • Instrumentele de scanare SQL Injection sunt disponibile online online
  • Nu necesită nici o complexitate tehnică pentru a fi exploatată

Cum funcționează injecția SQL?

De exemplu, aveți un formular de contactare în care trebuie să introduceți un număr de telefon. Ar trebui să existe anumite criterii, cum ar fi să introduceți numerele limitate numai cu un format adecvat.

Majoritatea dezvoltatorilor care nu cunosc validările de intrare ar putea seta acest câmp ca text simplu, ceea ce înseamnă că se poate introduce orice șir care poate fi și codul rău intenționat. Prin utilizarea unor interogări SQL modificate, se poate solicita numele de utilizator și parola administratorului.

Exemple de injecție SQL WordPress

Puteți găsi o mulțime de vulnerabilități SQL Injection cu o simplă căutare pe Google. Dar, astăzi, permiteți-mi să împărtășesc un exemplu din viața reală: trebuie doar să ne uităm la industria jocurilor. După cum se întâmplă, multe atacuri de injecție SQL se concentrează pe jocurile video, una dintre cele mai mari și mai profitabile industrii din jur.

În plus, în trecut hackerii au atacat, de asemenea, site-uri web individuale, fie bloguri, magazine de comerț electronic, cât și unele dintre cele mai mari companii.

Se întâmplă mult timp, un alt exemplu de vulnerabilitate în WordPress raportat în septembrie 2017. WordPress Core nu a fost direct afectat de această vulnerabilitate, cu toate acestea, un patch (WordPress 4.8.3) a fost lansat pentru a preveni afectarea pluginurilor și temelor WordPress. .

Anthony Ferrara, omul din spatele vulnerabilității de mai sus, a scris un ghid extins despre WPBD SQL Injection, modul în care poate afecta un site WordPress și măsurile de precauție pentru fiecare utilizator WordPress.

Nu există o modalitate infailibilă de a securiza un site WordPress. De fapt, chiar și pluginul de securitate WordPress a fost afectat în trecut. În 2014, unul dintre cele mai populare pluginuri de securitate a demonstrat DOUĂ vulnerabilități care permiteau injecția SQL.

Modalități de prevenire a injecției SQL în WordPress

Așa cum am spus mai devreme, nu există nicio modalitate de a scăpa complet de încercările de hacking. Cu toate acestea, se poate reduce riscul de a fi piratat. Iată câteva dintre cele mai frecvente practici care pot ajuta la prevenirea unor astfel de atacuri.

Căutați performanțe și securitate mai bune?

Migrați site-ul web WooCommerce către Cloudways la cost zero.

Migrați acum!

Sfatul nr. 1 Căutați vulnerabilități la injecție SQL

Puteți găsi o serie de instrumente online pentru a vă scana site-ul WordPress. Am selectat cele mai bine cotate unde tot ce trebuie să faceți este să introduceți adresa URL a site-ului WordPress și să începeți să căutați vulnerabilitățile descoperite.

  • Scanare de securitate WordPress - Verifică vulnerabilitățile de bază pe site-ul dvs. WordPress. Scanările avansate sunt disponibile cu un upgrade premium.
  • Sucuri SiteCheck - Site-ul dvs. WordPress poate fi verificat pentru malware cunoscut, starea listei negre, erori și dacă site-ul dvs. este învechit.
  • WPScan - Un scaner de vulnerabilități auto-găzduit, gratuit pentru uz personal. De asemenea, puteți obține o licență plătită pentru uz comercial.

Rulând un raport de scanare, puteți vedea exact ce zone trebuie concentrate pentru a îmbunătăți securitatea WordPress.

Sfat # 2 Actualizare, actualizare, actualizare!

Cel mai important pentru fiecare utilizator WordPress! Păstrați totul actualizat, inclusiv nucleul WordPress, tema și pluginurile.

WordPress Core

Conform statisticilor oficiale WordPress, doar 29,3% dintre site-urile WordPress utilizează cea mai recentă versiune (5.5.x). Toate versiunile anterioare pot fi vulnerabile și pot avea ca rezultat piratarea. În exemplul de mai sus al vulnerabilității SQL Injection, vedeți, toate site-urile care se află sub cea mai recentă versiune sunt vulnerabile la vulnerabilitatea descoperită. Dacă site-ul dvs. a fost piratat, sper să știți cine va fi responsabil!

Statistici WordPress Core

Versiuni PHP

PHP, backend-ul WordPress a fost mult îmbunătățit în ultimii ani. Au fost făcute o mulțime de patch-uri și modificări orientate spre performanță. Cu toate acestea, mai mult de 23% dintre utilizatorii de WordPress utilizează PHP 7.2, care poate fi unul dintre factorii pentru SQL Injection în WordPress. Cea mai recentă versiune de PHP este 7.4

Notă: Dacă găzduirea dvs. WordPress nu acceptă cele mai recente versiuni de PHP, este timpul să comutați imediat gazda la o găzduire WordPress gestionată care acceptă cele mai recente versiuni de PHP, cum ar fi Cloudways.

Versiunea PHP

Sfat # 3 Tema și plugin-uri WordPress

Majoritatea vulnerabilităților, inclusiv SQL Injection în WordPress, au fost descoperite în pluginuri și teme, nu în nucleul WordPress. Fii atent la actualizări, remedieri și adaptează-te în consecință.

Dacă o temă și un plugin nu sunt actualizate în mod regulat, acesta poate fi un semn de întrebare pe site-ul dvs. WordPress. Utilizați întotdeauna o temă / plugin care se actualizează frecvent.

Notă: Înainte de a efectua o actualizare, verificați compatibilitatea dintre nucleul, temele și pluginurile WordPress pentru a vă asigura că site-ul dvs. funcționează așa cum ar trebui. Pentru a testa, puteți face o copie a site-ului dvs. web live, apoi puteți verifica compatibilitatea în mediul de etapă WordPress.

Sfat # 4 Utilizați pluginuri de formulare de încredere

Dacă conduceți o afacere sau chiar un blog simplu, trebuie să cunoașteți importanța formularelor cum ar fi formularele de înregistrare, formularele de conectare, formularele de contact etc. Cu o serie de pluginuri disponibile în depozitul WordPress, este greu să găsiți cel mai bun. Prin urmare, pentru a vă restrânge căutarea, am compilat o listă cu cele mai bune pluginuri WordPress Form.

Notă: Nu uitați să verificați vulnerabilitățile descoperite anterior și rezoluția acesteia înainte de a alege orice plugin.

Sfatul # 5 Ascundeți versiunea WordPress

Este întotdeauna sugerat să nu afișați public versiunea WordPress. Având aceste informații la dispoziția publicului, puteți facilita atacatorilor să exploateze vulnerabilitățile cunoscute într-o anumită versiune.

Pentru a ascunde versiunea WordPress, trebuie doar să copiați și să lipiți sub linia de cod în fișierul functions.php al temei dvs. active.

remove_action ('wp_head', 'wp_generator');

Sfat # 6 Schimbați prefixul bazei de date

Când instalați WordPress, în mod implicit, prefixul bazei de date setează la „ wp_ ”. Majoritatea utilizatorilor WordPress ignoră și instalează doar cu setările implicite. Ghicirea tabelelor bazei de date devine mai ușor de exploatat folosind tehnici SQL Injection.

Nu vă faceți griji, dacă aveți deja instalat WordPress. Există un ghid excelent despre cum puteți schimba prefixul bazei de date în WordPress.

Sfatul # 7 Faceți întotdeauna copii de rezervă

Este posibil ca backup-urile să nu fie direct legate de SQL Injection. Dar vă poate ajuta să recuperați un site piratat. Copiile de rezervă WordPress pot fi stocate în două moduri:

  • Backup local : backupul generat automat și / sau manual și care se află pe furnizorul dvs. de găzduire. Nu este sugerat să păstrați o copie de rezervă locală dacă sunteți cu găzduire partajată, odată ce un server este compromis, puteți pierde și copiile de rezervă. Cu toate acestea, dacă serverul dvs. este pe mâini bune, cum ar fi Cloudways, atunci puteți păstra copii de rezervă locale pentru WordPress.
  • Backup în afara site-ului : backupurile automate și / sau manuale vor fi generate și trimise la locația de stocare off-site dorită, cum ar fi Google Drive, Dropbox, Amazon S3 etc. Am scris un ghid extins pentru a face backup pentru site-urile WordPress.

Sfatul # 8 Păstrează jurnalele

Dre Armeda, cofondatorul Sucuri a spus odată:

Oamenii sunt și vor continua să fie cea mai mare problemă de securitate cu WordPress.

Adică, trebuie să-ți faci partea. Urmăriți modificările și ar trebui să țineți un jurnal cu tot ceea ce se întâmplă pe site-ul dvs. WordPress. Vă va ajuta să urmăriți modificările făcute de dvs. și / sau de un atacator, astfel încât să puteți acționa în consecință.

Există un plugin excelent pentru jurnalul de audit al securității WordPress care cu siguranță vă va ajuta! În plus, furnizorul dvs. de găzduire păstrează, de asemenea, jurnalele cu tot. Continuați să citiți jurnalele ocazional.

Sfat # 9 Folosiți un firewall

Unul dintre cele mai bune și importante lucruri este utilizarea unui firewall care să asigure că datele clienților sunt sigure și protejate. În plus, puteți defini și nivelul de acces al utilizatorilor pe baza diferiților factori, cum ar fi pachetul abonat. Dacă utilizați Cloudways, atunci nu trebuie să vă faceți griji. Toate serverele găzduite Cloudways sunt protejate de firewall-uri la nivel de sistem de operare, care filtrează traficul rău intenționat și îi țin pe intruși.

Sfat # 10 Eliminați funcționalitatea inutilă a bazei de date

Una dintre cele mai eficiente tehnici pentru a elimina funcționalitatea și conținutul inutile bazei de date. Cu cât este mai vulnerabil la un potențial atac de injecție SQL. Pentru a preveni acest lucru, normalizați baza de date și faceți site-ul dvs. mai bun și mai inteligent.

Întrebați frecvent

Î: Ce este SQL Injection?

R: SQL Injection este rezultatul lacunelor din codarea backend. Un atacator poate abuza cu ușurință de câmpurile de introducere prin inserarea unui cod rău intenționat care ar putea executa comenzi SQL și poate crea, prelua, actualiza și chiar șterge datele din baza de date.

Î: Care este exemplul injecției SQL WordPress?

R: Se întâmplă mult timp, un alt exemplu de vulnerabilitate în WordPress a fost raportat în septembrie 2017. WordPress Core nu a fost afectat direct de această vulnerabilitate, cu toate acestea, un patch (WordPress 4.8.3) a fost lansat pentru a preveni afectarea pluginurilor WordPress. și teme.

Î: Ce face o injecție SQL?

R: SQL Injection a fost cea mai de bază și cea mai utilizată tehnică de hacking pentru manipularea bazei de date WordPress. În zilele noastre, Cross Site Scripting (XSS) este popular și a devenit metoda numărul unu pentru a pirata un site WordPress.

Cuvinte finale!

Așa cum am spus mai devreme, nu există un mod infailibil de a proteja un site WordPress. Există întotdeauna posibilitatea de a fi piratat, acest lucru se poate datora vulnerabilității din bază, temă și pluginuri. De aceea este întotdeauna sugerat să fie ACTUALIZAT! SQL Injection a fost controlat foarte mult în ultimii ani.

Dacă v-ați confruntat vreodată cu orice fel de atac WordPress Injection SQL, împărtășiți-vă experiența și modul în care scăpați de ea. Sunt sigur că ar ajuta alți utilizatori WordPress.