SQL Injection – klasyczny atak, który wciąż działa
Cyberbezpieczeństwo Hacking

SQL Injection – klasyczny atak, który wciąż działa

💉 SQL Injection – klasyczny atak, który wciąż działa

SQL Injection (SQLi) to technika ataku, która polega na wstrzyknięciu złośliwych zapytań SQL do aplikacji internetowej w celu manipulowania bazą danych. Mimo że atak jest znany od dekad, w 2025 roku nadal pojawia się w wielu aplikacjach, zwłaszcza źle zabezpieczonych systemach CMS, e-commerce czy starszych systemach wewnętrznych.


📌 Na czym polega SQL Injection?

Podatność występuje, gdy dane wejściowe użytkownika są bezpośrednio wstawiane do zapytań SQL bez odpowiedniej walidacji czy sanitizacji.

Przykład kodu w PHP:

$user = $_GET['user'];
$query = "SELECT * FROM users WHERE username = '$user'";

Jeśli użytkownik poda:

admin' -- 

zapytanie SQL będzie wyglądało tak:

SELECT * FROM users WHERE username = 'admin' -- '

-- oznacza komentarz w SQL, więc cała reszta zapytania jest ignorowana.


🧨 Co można osiągnąć przez SQL Injection?

  • 🔍 Odczyt danych (hasła, e-maile, dane klientów)
  • ✏️ Modyfikacja danych (np. zmiana hasła admina)
  • 🧼 Usuwanie danych
  • 🛠 Dodawanie własnych kont
  • 🕵️ Eksfiltracja struktury bazy
  • 📡 Remote Command Execution (w niektórych przypadkach)
SQL Injection – klasyczny atak, który wciąż działa
SQL Injection – klasyczny atak, który wciąż działa

🔥 Typy SQL Injection

Typ Opis
Classic (In-band) Widoczna odpowiedź z bazy, możliwa szybka eksploitacja
Blind Brak bezpośredniego efektu – wymaga testów logicznych (np. warunków IF)
Time-based Blind Weryfikacja na podstawie opóźnień (SLEEP(5))
Out-of-band Dane przesyłane do serwera atakującego (np. via DNS)
Second-order Payload przechowywany w bazie i aktywowany w innym kontekście
Czytaj  Salt i Hashing: Zrozumienie Nowoczesnych Metod Przechowywania Haseł i Ich Łamania

🧪 Przykłady payloadów

' OR 1=1 --
' UNION SELECT null, version(), user() --
admin' AND SLEEP(5) --

🔧 Narzędzia do automatycznych ataków

  • sqlmap – najpopularniejsze narzędzie do wykrywania i eksploitacji SQLi
  • Havij – graficzne narzędzie do ataku na bazy SQL
  • Burp Suite – manualne testowanie aplikacji, repeater, intruder
  • SQLNinja, jSQL, BBQSQL – alternatywne frameworki

🔐 Jak się bronić?

✅ Dobre praktyki programistyczne:

  • Używaj zapytań parametryzowanych / prepared statements
    • np. PDO, mysqli z bind_param()
  • Waliduj dane wejściowe (np. czy to na pewno ID?)
  • Unikaj dynamicznych zapytań SQL
  • Escapuj znaki specjalne (jako dodatkowy środek, nie podstawowy)

🔐 Zabezpieczenia systemowe:

  • Ogranicz prawa użytkownika bazy (np. brak DROP, UPDATE)
  • Loguj nietypowe zapytania
  • Korzystaj z WAF (Web Application Firewall)
  • Regularnie testuj aplikacje (pentesty, SAST/DAST)

🧠 Przykład ataku krok po kroku

  1. Użytkownik odkrywa parametr id w URL.
  2. Próbuje: ?id=1'
  3. Otrzymuje błąd SQL → znak podatności
  4. Używa sqlmap:
    sqlmap -u "http://example.com/page.php?id=1" --dump
    
  5. Narzędzie automatycznie pobiera dane użytkowników i hasła

📚 Ciekawostki i przypadki z życia

  • 2008 – Heartland Payment Systems – wyciek 130 milionów rekordów przez SQLi
  • 2012 – LinkedIn – SQLi wykorzystane w częściowym ataku na dane użytkowników
  • 2022 – Indie leaki – SQL Injection w aplikacji rządowej ujawnia dane obywateli

🧩 Detekcja i forensics

  • Analiza logów aplikacji i serwera SQL
  • Wykrycie niestandardowych zapytań typu UNION, SLEEP
  • Wzrost zapytań z nietypowymi parametrami
  • Dziwne błędy w interfejsie aplikacji (SQL syntax errors)

🚧 SQL Injection w 2025 – nadal aktualne zagrożenie

Pomimo dziesiątek lat istnienia tej podatności, wciąż jest jedną z najczęściej wykorzystywanych przez atakujących. Szczególnie niebezpieczna w starszych aplikacjach, panelach admina, słabo chronionych API i systemach wewnętrznych.

Zrozumienie mechanizmu ataku oraz wdrożenie dobrych praktyk w kodzie to podstawa odporności na SQL Injection.

Czytaj  Jak szyfrować pojedyncze pliki i foldery za pomocą EFS, 7-Zip i innych narzędzi

 

Polecane wpisy
Omijanie zabezpieczeń systemów wykrywania i mitygacji DDoS
Omijanie zabezpieczeń systemów wykrywania i mitygacji DDoS

🔒 Uwaga! Artykuł ma charakter edukacyjny i służy wyłącznie do celów informacyjnych w zakresie cyberbezpieczeństwa. Celem jest podniesienie świadomości na Czytaj dalej

Szyfrowanie w chmurze: Wyzwania i najlepsze praktyki związane z ochroną danych przechowywanych w usługach chmurowych
Szyfrowanie w chmurze: Wyzwania i najlepsze praktyki związane z ochroną danych przechowywanych w usługach chmurowych

  ☁️ Szyfrowanie w chmurze: Wyzwania i najlepsze praktyki związane z ochroną danych przechowywanych w usługach chmurowych W dobie cyfrowej Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.