Ataki SQL Injection

hakin9_1_2009_pl-kopiaSQL Injection to technika ataku sieciowego, której poświeciony jest artykuł w najnowszym, styczniowym numerze pisma Hakin9. W tym artykule możecie poznać techniki takiego ataku, ale także dowiemy się jak się przed takimi atakami bronić. Najbardziej znanym przykładem podatności na tego typu ataki jest błędna walidacja danych wprowadzanych podczas logowania. Atakujący chce się dostać do części dla zalogowanych użytkowników na stronie napisanej w technologi ASP połączonej z serwerem baz danych SQL Server. Zapytanie wykonywane po wysłaniu formularza z danymi do logowania wygląda następująco:

1
2
3
4
strUsername = request.form("username");
strPassword = request.form("password");

"SELECT userID FROM useres WHERE username = ''' & strUsernam & ''' AND password = ''' & strPassword & '''


Przypuśćmy, że użytkownik wprowadził następujące dane do logowania admin i hasło: admin1234. Wówczas powyższe zapytanie będzie wyglądać następująco:

1
SELECT userID FROM users WHERE username = 'admin' AND password = 'admin1234'

Oczywiście to nie jest atak typu SQL Injection 🙂 Atak byłby wówczas, gdybyśmy do loginu dodali apostrof zamykający oraz dodali kolejne polecenia SQL, które przy braku odpowiedniej walidacji zostaną przesłane do bazy danych. Jakby to wyglądało? Atakujący może jako login podać admin’;– oraz dowolne hasło, np. admin. Zapytanie do bazy danych będzie wyglądać następująco:

1
SELECT userID FROM users WHERE username = 'admin';-- AND password = 'admin'

Baza danych wykona wówczas tylko następujące zapytanie:

1
SELECT userID FROM users WHERE username = 'admin'

W związku z tym atakujący dostał się do strefy dostępnej dla zalogowanych użytkowników bez potrzeby znajomości hasła, bowiem dalsza część zapytania zostanie zignorowana (nie wierzysz, to sprawdź):

1
--' AND password = 'admin'

Przedstawiony powyżej przykład znajduje się także w artykule pisma hakin9. Jeśli zainteresowała Cię ta tematyka, to odsyłam do artykułu, w którym jest więcej przykładów ataków SQL Injection, ale również są opisane sposoby walki z nimi.

Comments

Bezpieczeństwo aplikacji webowych cz. I | Arkadiusz Tobiasz

[…] za sobą podatność na ataki SQL Injection. Co nieco o tego typie ataków możesz przeczytać tutaj. Raport X-Force 2008 Trend Statistics, który przygotował IBM Internet Security Systems wskazuje, […]

Reply

Leave a Comment

four + one =