Instruktor: We
wszystkich dotychczasowych wykładach ręcznie robiliśmy zastrzyki SQL.
Więc wstrzykiwaliśmy kod do adresu URL
lub do pól tekstowych.
W tym filmie pokażę ci narzędzie o nazwie sqlmap, które pozwala
ci robić wszystko, czego się do tej pory nauczyliśmy i
jeszcze więcej rzeczy.
Tego narzędzia można użyć do baz danych
MySQL, na których mieliśmy ten przykład.
Może być również używany przeciwko Microsoft
SQL, Oracle i innym typom baz danych.
Narzędzie jest bardzo przydatne i bardzo przydatne w wielu przypadkach.
Czasami zastrzyki nie są tak ładne jak te,
które widzieliśmy.
Czasami dostajesz tylko jedno wyjście dla każdego rekordu
i musisz zapętlić wszystkie wyjścia.
To narzędzie może to zautomatyzować
i zrobić wszystko dla ciebie o wiele łatwiej i znacznie prościej.
Najpierw uzyskajmy adres
URL, którego użyliśmy do wstrzyknięcia.
Mam tutaj ten plik tekstowy, którego używaliśmy, i
mam adres URL, którego używaliśmy wcześniej.
Więc to jest użytkownik. informacje. php,
nazwa użytkownika to admin, hasło, adminpass.
Naprawdę nie musisz znać nazwy użytkownika
i hasła, więc właściwie po prostu coś tu wstawię.
Aby więc założyć, że
nie znamy hasła, wprowadzamy tylko zastrzyki SQL.
Tak naprawdę nie musimy znać żadnej z tych rzeczy.
Wszystko, co zrobię, to
skopiuję to, a potem uruchomię sqlmap.
I zrobię to, żeby podać adres URL
i podam mój cel.
I
upewnię się, że mam go między dwoma
znakami cudzysłowu, aby nic nie
ignorował, żadnych znaków pośrodku, więc
mamy kilka znaków i znaków pośrodku,
że chcę, aby wszystko było traktowane jako jeden URL.
Więc wszystko, co zrobiłem, to sqlmap -u moim celem.
I nacisnę
Enter, a narzędzie automatycznie przejrzy parametry, więc przejrzy
informacje o użytkowniku, nazwę użytkownika i
hasło, aby sprawdzić, czy któreś
z nich jest możliwe do wstrzyknięcia,
a kiedy to zrobi, zapisze
je w jego pamięci.
Będzie wiedział, że jest
to wstrzyknięcie, a następnie będziemy mogli dalej wykorzystywać cel.
Jak widać,
wydaje się, że naszym celem może być MySQL lub PostgreSQL.
Pyta mnie, czy powinienem pominąć inne testy i odpowiem
tak, ponieważ
wiem, że to MySQL.
A teraz pyta mnie, czy powinien wykonać wszystkie testy dla
obu baz danych?
I powiem tak, zakładając, że nie jestem
pewien, który to jest.
Wiem, że to MySQL, ale po prostu pozwolę mu to zrobić i
zobaczymy, czy da się to zrobić poprawnie, czy nie.
W tej
chwili sprawdza, czy jest to PostgreSQL.
I zakładam, że będzie wiedział, że tak nie jest,
a potem będzie wiedział, że to MySQL.
Właśnie dowiedziałem się, że nazwa użytkownika wydaje się
możliwa do wstrzyknięcia.
I rzeczywiście, mówi nam tutaj, że
parametr nazwa użytkownika jest wrażliwy i możemy
go wstrzyknąć.
Więc pyta mnie, czy chcę sprawdzić inne parametry,
takie jak hasło i wszystkie?
Mogę powiedzieć „tak” i pozwolić mi to
zrobić, ale
powiem „nie”, ponieważ nie mam nic przeciwko, jeśli użyje
nazwy użytkownika do wstrzyknięcia, więc wszystko będzie dobrze.
Teraz sqlmap wie, że cel jest wstrzykiwany i wie,
że użyje parametru nazwy użytkownika do
wstrzyknięcia rzeczy.
I widzę, że zorientował się, że działa
na systemie Linux Ubuntu i zorientował się, że używa PHP
z Apache 2. 2) 8
I używa MySQL Server jako serwera bazy danych.
Uruchommy więc sqlmap - help i zobaczmy, co
możemy teraz zrobić.
To narzędzie jest naprawdę
duże i pozwala robić wiele rzeczy.
Tak więc w tym filmie pokażę
Wam krótkie spojrzenie
na ten film i polecam spędzić z nim więcej czasu i
spróbować zobaczyć, co jeszcze można z tym zrobić.
Okej, więc spróbujmy pobrać bieżącego użytkownika, a my
postaramy się pobrać aktualną bazę danych.
Więc użyjemy tego samego polecenia, którego
używaliśmy wcześniej, i po prostu dodam do niego dbms, aby uzyskać
bieżące bazy danych.
Lub dbs, przepraszam.
Jak widać, mamy wszystkie bazy danych, które mamy.
Mamy więc dvwa, mamy information_schema, metasploit,
mysql, owasp10, który był
tym, którego używaliśmy wcześniej i tikiwiki.
Teraz, jeśli robimy bieżącego użytkownika, możesz zobaczyć,
że jesteśmy rootem, a
jeśli robię bieżącą bazę danych,
zobaczymy, że owasp10 jest naszą bieżącą bazą danych.
Spróbujmy teraz pobrać tabele
dla owasp10, więc pamiętajmy, kiedy zrobiliśmy nazwę tabeli
z schematu_informacyjnego. tabele,
w których tabela_schema jest równa owasp10.
Zrobimy to, pozwolimy, aby sqlmap zrobiło to
wszystko za nas, więc polecenie będzie,
poprosimy go, aby zebrał dla nas wszystkie tabele.
I użyjemy opcji
D, aby określić bazę danych, a
nasza baza danych będzie nazywać się owasp10.
I jak widać, dostaliśmy wszystkie tabele,
które istnieją i pamiętajcie, to jest to samo.
Mamy również konta,
tabelę blogów i karty kredytowe.
A teraz, jeśli
chcemy uzyskać kolumny, możemy ponownie
użyć tego samego polecenia i powiemy mi,
weźcie kolumny, w których tabela nazywa się kontami,
a baza danych to owasp10.
I właśnie tutaj możemy zobaczyć, że mamy kolumny.
Mamy więc is_admin, hasło i nazwę użytkownika i
możemy uzyskać dane
za pomocą opcji zrzutu.
Więc to jest to samo polecenie, którego używaliśmy wcześniej.
Otrzymujemy więc tabelę zwaną kontami i bazę
danych o nazwie owasp10.
Chcę, żebyś zdobył mi wszystkie dane.
I proszę bardzo, mamy wszystkie dane.
Mamy administratora, jego hasło, adminpass i
mamy Adriana, a jego hasło to jakieś hasło.
I tutaj mamy wszystkie dane.
Tak jak powiedziałem, narzędzie jest bardzo przydatne.
Może być użyty, aby ułatwić nam życie,
robi wszystko automatycznie i może
zrobić wszystko, co zrobiliśmy,
a nawet więcej.