SQL injection. Metody włamań do systemów komputerowych p. 1/13. Bogusław Kluge, Karina Łuksza, Ewa Makosa



Podobne dokumenty
PHP: bazy danych, SQL, AJAX i JSON

6. Bezpieczeństwo przy współpracy z bazami danych

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Aplikacje WWW - laboratorium

Zagrożenia trywialne. Zagrożenia bezpieczeństwa aplikacji internetowych. Parametry ukryte. Modyfikowanie parametrów wywołania

Zagadnienia. Konstrukcja bibliotek mysql i mysqli w PHP. Dynamiczne generowanie stron. Połączenie, zapytanie i sesja

Aplikacje internetowe - laboratorium

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

INSTRUKCJA INSTALACJI DATAMOBILE. Ver. 1.3

Język PHP. Studium Podyplomowe Sieci Komputerowe i Aplikacje Internetowe. v1.7, 2007/11/23

Instrukcja konfiguracji programu Invoice.Exporter

Bezpieczeństwo aplikacji. internetowych. 2. Szkolenie dla administratorów stron internetowych hufców Śląskiej Chorągwi ZHP

INFORMATOR TECHNICZNY WONDERWARE. Ograniczenie wyświetlania listy zmiennych w przeglądarce zmiennych ActiveFactory

Drobne błędy w portalach WWW

MS Windows Vista. Spis treści. Autor: Jacek Parzonka, InsERT

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Dokumentacja smsapi wersja 1.4

Projektowani Systemów Inf.

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Bazy danych i usługi sieciowe

Bezpieczeństwo systemów komputerowych

Żeby korzystać z opisywanego modułu, należy go włączyć do kompilowanej wersji interpretatora PHP:

Formy ataku SQL Injection

DECLARE VARIABLE zmienna1 typ danych; BEGIN

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

CREATE USER

Administracja bazami danych. dr inż. Grzegorz Michalski

Bazy Danych i Usługi Sieciowe

Instrukcjaaktualizacji

Administracja i programowanie pod Microsoft SQL Server 2000

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

SQL 4 Structured Query Lenguage

Praca w programie dodawanie pisma.

5. Współpraca z bazą danych MySQL

Biuletyn techniczny Instalacja i uruchamianie CDN OPT!MA dodatkowe moŝliwości. Data powstania: Copyright 2007 COMARCH SA

Baza danych do przechowywania użytkowników

Praca Magisterska "System zdalnego składania ofert kupna i sprzedaży za pośrednictwem Internetu" AUTOR PROMOTOR

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Instalowanie aktualizacji w bazie Oracle11g

Dostęp do baz danych przy wykorzystaniu interfejsu ROracle i biblioteki Shiny

Wybrane ataki na urządzenia sieciowe Secure Michał Sajdak, Securitum sekurak.pl

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Konfiguracja vsftpd ( Very Secure FTP Server )

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

FTP przesył plików w sieci

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Zagrożenia związane z udostępnianiem aplikacji w sieci Internet

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Administracja i programowanie pod Microsoft SQL Server 2000

Systemowe aspekty baz

HermesEX. Dokumentacja serwisowa v

Wybrane problemy bezpieczeństwa w urządzeniach sieciowych SEConference Michał Sajdak, Securitum sekurak.pl

ROZSZERZAJĄC FUNKCJONALNOŚCI MEMCACHED

MentorGraphics ModelSim

Podstawy technologii WWW

Autor: Joanna Karwowska

dziennik Instrukcja obsługi

Jednym z najważniejszych zagadnień, z którym może się zetknąć twórca

BAZY DANYCH Cz III. Transakcje, Triggery

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

Systemowe aspekty baz danych

Paweł Rajba

15. Funkcje i procedury składowane PL/SQL

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Aplikacje internetowe

Liczba godzin 1,2 Organizacja zajęć Omówienie programu nauczania 2. Tematyka zajęć

Analiza możliwości złośliwego oprogramowania vjw0rm w kampanii phishingowej PayU

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

instrukcja INSTALACJI APi_proxy

Pracownia internetowa w szkole ZASTOSOWANIA

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

DESlock+ szybki start

Dokumentacja fillup - MS SQL

Problemy techniczne SQL Server

Wprowadzenie do Doctrine ORM

Struktura bazy danych

Problemy techniczne SQL Server

14. POZOSTAŁE CIEKAWE FUNKCJE

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

NS-2. Krzysztof Rusek. 26 kwietnia 2010

Internetowe bazy danych

ibok Internetowe Biuro Obsługi Klienta

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

SQL z perspektywy hakera - czy Twoje dane są bezpieczne? Krzysztof Bińkowski MCT,CEI,CEH,ECSA,ECIH,CLFE,MCSA,MCSE..

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs.

Ćwiczenia 2 IBM DB2 Data Studio

Ćwiczenie 4. Użytkownicy

Procedura wygenerowania paczki instalacyjnej oprogramowania F-Secure

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:

Instrukcja obsługi/instalacji platformy Krok w Przedsiębiorczość Administrator platformy

Oracle PL/SQL. Paweł Rajba.

Transkrypt:

Metody włamań do systemów komputerowych SQL injection Bogusław Kluge, Karina Łuksza, Ewa Makosa b.kluge@zodiac.mimuw.edu.pl, k.luksza@zodiac.mimuw.edu.pl, e.makosa@zodiac.mimuw.edu.pl Metody włamań do systemów komputerowych p. 1/13

SQL injection Ogólnie Polega na nieautoryzowanym wykonaniu wyrażeń języka SQL. Jak znaleźć tylne drzwi do informacji przechowywanych w bazie danych? Wystarczy wykorzystać problem tkwiacy w błędzie aplikacji internetowej. Jednym z podstawowych błędów jest brak filtracji danych przekazywanych przez użytkownika. Oto bardzo prosty przykład programu weryfikujacego login i hasło:... $result=mysql_db_query($db, SELECT * FROM $user_table WHERE login= $login AND password= $pass ); $num_rows=mysql_num_rows($result); if ($num_rows!=0){ poprawne login i hasło --- użytkownik dopuszczony } else brak dostepu Metody włamań do systemów komputerowych p. 2/13

SQL injection 1=1 => jesteśmy w systemie Łatwo popełnić bład. logujac się do systemu podajmy następujace hasło: test or 1=1 w naszym skrypcie php otrzymujemy zapytanie: SELECT * FROM $users WHERE login= x AND password= test or 1=1 Równie łatwo jest wykorzystać bład w niecnych celach. Login: x ;DROP TABLE users;-- Hasło: Metody włamań do systemów komputerowych p. 3/13

SQL injection jesteśmy kim chcemy być chcemy poadministrować: Login: admin ;-- Hasło: albo po prostu zmienić osobowość: Login: Kim Basinger ;-- Hasło: Metody włamań do systemów komputerowych p. 4/13

SQL injection extended stored procedures Intruz może wykorzystać dostęp do bazy danych do uzyskania większej kontroli nad siecia. Przedstawimy kilka sposobów, z których może w takim wypadku skorzystać atakujacy. Beda to metody SQL Injection na serwerach SQL. Ważnym pojęciem tutaj używanym będzie extended stored procedures. Sa to skompilowane biblioteki DLL (Dynamic Link Library), używajace specyficznej konwencji wywołań na serwerach SQL do wykonywania eksportowanych funkcji. Pozwalaja serwerom SQL na pełne korzystanie z C/C++. Niektóre z nich sa wbudowne w Serwer SQL i dostarczaja takich funkcjonalności jak wysyłanie maili czy korzystanie z rejestru. Metody włamań do systemów komputerowych p. 5/13

SQL injection przejmowanie kontroli xp_cmdshell extended stored procedure (używana do wydawania komend jako użytkownik serwera SQL, na serwerze bazy danych) xp_regread extended stored procedure (używana do czytania kluczy rejestru) inne extended stored procedures wykonywanie zapytań na podłaczonych serwerach tworzenie extended stored procedures aby wykonać exploita jako proces Serwera SQL. UWAGA: to tylko kilka ze znanych sposobów. Metody włamań do systemów komputerowych p. 6/13

SQL injection xp_cmdshell xp_cmdshell to wbudowana extended stored procedure, pozwalajaca na wykonanie dowolnych komend: komenda dir : exec master..xp_cmdshell dir pomoże nam przejrzeć zawartość katalogu, spod którego uruchomiono proces aktualnie działajacego serwera SQL. komenda net1 user : exec master..xp_cmdshell dir przedstawi listę wszystkich użytkowników korzystajacych z maszyny. Zwykle serwery SQL działaja jako procesy o dużym zakresie uprawnień intruz może wyrzadzić wiele szkód. Metody włamań do systemów komputerowych p. 7/13

SQL injection xp_regxxx Przydatny może okazać się zestaw funkckcji xpregxxx, operujacych na rejestrze systemowym: xp_regaddmultistring xp_regdeletekey xp_regdeletevalue xp_enumkeys xp_enumvalues xp_regread xp_regremovemultistring xp_regwrite Metody włamań do systemów komputerowych p. 8/13

SQL injection xp_regread Aby dowiedzieć się jakie zasoby sa dostępne w trybie null-session na tym serwerze, wystarczy napisać: exec xp_regread HKEY_LOCAL_MACHINE, SYSTEM\CurrentControlSet\Services\lanmanserver\parameters, nullsessionshares Metody włamań do systemów komputerowych p. 9/13

SQL injection Inne extended strored procedures xp_servicecontrol pozwala na wykonanie poleceń start, stop oraz continue : exec master..xp_servicecontrol start, schedule exec master..xp_servicecontrol pause, server xp_ditree: pozwala otrzymać drzewo katalogów na serwerze. xp_loginconfig: pokazuje jaki jest tryb zabezpieczeń. xp_terminate_process: kończy działanie procesu o podanym identyfikatorze. Metody włamań do systemów komputerowych p. 10/13

SQL injection Podłaczone serwery Do serwera SQL moga być podłaczone serwery z bazami danych. Jeśli zostały postawione za pomoca procedury sp_addlinkedsrvlogin, to nasz serwer ma do nich otwarty dostęp. Oznacza to możliwość manipulacji danymi na tych serwerach bez konieczności zalogowania się. Linki do podłaczonych serwerów sa przechowywane w tablicy master..sysservers. Metody włamań do systemów komputerowych p. 11/13

SQL injection Własne extended stored procedures generujemy własna bibliotekę DLL, zawierajac a szklodliwy kod i umieszczamy ja na serwerze. dodajemy ja do ogólnego użytku : sp_addextendedproc xp_webserver, c:\temp\xp_foo.dll można ja teraz standardowo wywołać: exec xp_webserver a następnie usunać: sp_dropextendedproc xp_webserver Metody włamań do systemów komputerowych p. 12/13

SQL injection Bibliografia Chris Anley [chris@ngsoftware.com]. Advanced SQL Injection In SQL Server Applications. Marek Janiczek. Błędy w aplikacjach internetowych. Software 2.0, nr 71. http://quiz.ngsec.biz:8080/ Metody włamań do systemów komputerowych p. 13/13