Instruktor: W tym wykładzie i
kilku następnych wykładach będziemy
rozmawiać o popularnym typie luk, zwanych SQL Injections.
Zanim zaczniemy mówić o tym, jak to się dzieje
i jak go wykorzystać, najpierw dowiedzmy się, czym jest SQL.
Teraz, jeśli przeprowadzasz test pióra na pewnej
stronie internetowej, są szanse, że ta strona jest nieco
większa niż mniejsze witryny, więc prawdopodobnie korzysta z bazy danych.
Większość stron internetowych, oprócz bardzo
prostych stron internetowych, korzysta z baz danych, bazy danych służą do przechowywania
danych, więc przechowują nazwy użytkowników, hasła, artykuły prasowe,
posty na blogach, zdjęcia.
Wszystko, co dzieje się na stronie internetowej, dosłownie,
jest przechowywane w bazie danych, a aplikacja internetowa wysyła do
niej zapytanie, a następnie wyświetla dane użytkownikowi lub
użytkownikom na ekranie.
Gdy użytkownicy coś zrobią, zaktualizuje,
usunie lub zmodyfikuje dane istniejące w bazie danych.
Ta interakcja między aplikacją internetową
a bazą danych odbywa się przy użyciu języka o nazwie SQL.
Pozwólcie, że pokażę wam, co mam na myśli
przez bazę danych, to
tylko przykład,
nic nie włamuję się, dosłownie po prostu zaloguję
się do bazy danych zainstalowanej na naszym komputerze Metasploitable, a
następnie jesteśmy po prostu zobaczę, co zostało na nim zainstalowane.
Więc nie robię żadnego hakowania, nic tu nie ma,
nic fantazyjnego, po prostu loguję się do SQL.
A potem umieszczam nazwę użytkownika
jako root, a Metasploitable nie używa hasła do roota,
co jest naprawdę złe, ale oczywiście jest to system podatny na ataki.
Więc po prostu się zaloguję i nic
nie włamuję, nie robię
żadnych zastrzyków SQL, to tylko terminal
MySQL, którego aplikacja internetowa użyłaby do interakcji z
bazą danych.
Staram się tylko pokazać, co mam na myśli mówiąc
o bazach danych i co tam zapisano.
Pierwszą rzeczą, którą
zamierzam zrobić, jest wpisanie baz danych show.
I to pokaże nam bazy danych,
które istnieją na naszym serwerze docelowym i możesz zobaczyć,
że mamy schemat informacyjny, jest to domyślna baza
danych, która zawiera domyślne informacje,
informacje o wszystkich innych bazach danych.
Tak więc ten jest instalowany domyślnie podczas
instalacji MySQL.
Pozostałe zostały zainstalowane dla każdej aplikacji internetowej.
Widzimy więc, że mamy jeden dla tikiwiki,
mamy jeden dla owas10, i to dla tego jednego Mutilllidae.
Mamy też jeden o nazwie mysql, jeden
o nazwie metasploit i jeden
dla dvwa, czyli tego, z którego korzystamy,
aplikacji sieci web.
Widzicie więc, że
dla każdej aplikacji internetowej faktycznie mamy bazę
danych i ta baza danych zawiera informacje, które
są używane przez tę aplikację internetową.
Pokażę ci,
co tam jest, więc użyję bazy danych owas10.
To jest ta, która jest znowu ta dla
Mutilldae, dla tej aplikacji internetowej.
I widzimy tabelę, więc każda baza danych
ma tabelę, tabele, aw tabelach znajdują się informacje.
Powiem więc „pokaż tabele”, aby zobaczyć tabele, które
mamy.
I widzisz, mamy tabelę
kont, więc możesz założyć, że ta tabela zawiera informacje
na temat nazw użytkowników, haseł i informacji o użytkownikach.
Mamy tabelę blogów, więc prawdopodobnie znajdują się tam wpisy
blogu, posty i komentarze.
Możesz zobaczyć przechwycone dane, karty kredytowe, więc
istnieje tabela zawierająca karty kredytowe.
Teraz jest to ogromne miejsce na stronach
internetowych z zakupami, faktycznie miałyby tabelę kart
kredytowych, a informacje o kartach
kredytowych byłyby tam przechowywane.
Zasadniczo baza danych będzie przechowywać wszystko,
wszystkie dane, które są używane na stronie internetowej.
Ponieważ nie są przechowywane w plikach, nie jest to wydajne.
Spójrzmy więc na konta i jeśli powiem
„wybierz”, to dokładnie w taki sposób aplikacja internetowa
pobierałaby informacje z bazy danych, wybiera
rzeczy, aktualizuje lub usuwa.
Tak więc, robię tutaj wybrane zdanie, znowu, to
nie jest hackowanie, nic nie robię,
tylko wybieranie rzeczy.
I wybiorę gwiazdkę, co oznacza
wszystko, z kont.
Apostrof i, jak widzimy, mamy identyfikator konta, nazwę użytkownika,
hasło, a
następnie podpis osoby, a
jeśli ta osoba jest administratorem.
Teraz te kolumny zależą
od tabeli, więc tak naprawdę to
osoba, która projektuje bazę danych, projektuje również tabele, kolumny, a
następnie dane są wstawiane przez aplikację internetową.
Widzisz więc, że mamy użytkownika
o nazwie admin i jego hasło to adminpass.
Widzimy, że mamy użytkownika o imieniu Adrian,
a jego hasło to jakieś hasło.
To tylko po to, aby pokazać, jak wyglądają bazy danych, i po prostu
się na nich poczuć, ponieważ
w przyszłych filmach postaramy się wykorzystać te bazy
danych i uzyskać do nich podobny dostęp.
Więc właśnie zalogowałem się przy
użyciu nazwy
użytkownika i hasła, zwykle nie miałbyś takiego
dostępu, tylko administrator sieci miałby ten dostęp.
W przyszłych filmach postaramy się przeprowadzić kilka ataków w celu uzyskania dostępu
podobnego do tego, abyśmy mieli pełną kontrolę
nad bazą danych, abyśmy mogli czytać
rzeczy i sprawdzać, czy możemy pisać
lub modyfikować rzeczy .