Instruktor: OK, więc
teraz wiemy, że możemy tu
wstawić dowolny kod, który zostanie wykonany w systemie.
Spójrzmy teraz na oświadczenie.
Zatem oświadczenie mówi: wybierz * z kont,
gdzie nazwa użytkownika jest równa nazwie użytkownika, którą tu
umieściliśmy, a hasło jest równe hasłu, które tam umieściliśmy.
Zobaczmy, czy możemy tego użyć, aby zalogować się bez
hasła, nawet nie znając hasła.
I zrobię to z administratorem.
Więc admin, nazwa użytkownika będzie adminem.
I nie wiem, jakie jest hasło dla administratora.
Więc co zamierzam zrobić, po
prostu umieszczę wszystko, więc nic tak naprawdę, jakieś
losowe hasło, I, w kodzie, powinienem tu biec.
Tak robiłem, a 1 = 1 i, lub
coś, więc, to, co zrobię, to zrobię
lub zamiast i.
I powiem 1 = 1.
Więc jaki będzie nasz kod, kiedy go
uruchomię,
kiedy go wstrzyknę, zacznie się tutaj, tak jak
robiliśmy to wcześniej.
Nasz kod będzie wyglądał tak, więc
tak będzie.
Wybierz * z kont,
gdzie nasza nazwa użytkownika jest równa admin.
A hasło jest równe AAA.
To jest złe.
Lub 1 = 1, co
jest słuszne.
Tak więc, za każdym razem, gdy masz lub, jeśli warunek lub jest odpowiedni,
wszystko jest w porządku.
Tak działa oświadczenie.
Wybierz * z kont.
Jesteśmy użytkownikiem równym adminowi,
dobrze, nazwa użytkownika równa się adminowi.
A hasło jest równe AAA, to źle.
Lub 1 = 1, dobrze, zaakceptuję to.
A potem faktycznie go wykona
i pozwoli nam zalogować się do administratora, nawet nie
znając hasła dla administratora.
Spróbujmy teraz to wstrzyknąć.
I jak widać, mogłem się zalogować jako administrator,
a małpa jest sygnaturą administratora.
Teraz pomijanie i logowanie można wykonać na wiele sposobów, w
zależności od kodu zapisanego na stronie.
I w zależności od tego, w jaki sposób chcesz
to zrobić i jak wyobrażasz sobie kod.
I w wielu przypadkach, kiedy umieścisz tutaj pojedynczy cytat,
nie zobaczysz tej wiadomości.
Czasami to
widzisz, co znacznie ułatwia twoją pracę.
Jeśli nie, to musisz zgadnąć,
jak to wygląda.
Pokażę ci inny przykład omijania.
Zamiast wstrzykiwać kod w ten
sposób, parametr admin jest również wstrzykiwany, jak
widzieliście, kiedy umieszczam ten pojedynczy
cytat, parametr admin można wstrzykiwać, dokładnie tak samo
jak hasło.
Możemy więc również wprowadzić kod do nazwy użytkownika.
I co teraz zrobię, więc spójrzmy na to i
po prostu zresetuję to tak, jak zwykle by
to wyglądało.
Mielibyśmy, a nazwa użytkownika i hasło, z pól,
które tu wpisujesz,
zostaną zastąpione, a nazwa użytkownika i hasło.
Spróbujmy więc wstawić coś do nazwy użytkownika,
i powiem, że nazwa użytkownika jest
równa adminowi, a potem
sami zamknę cytat, a potem
zamierzam Dodaj komentarz.
Tak więc, moje oświadczenie, kiedy je uruchomię,
będzie wyglądać tak i faktycznie
go tu skopiuję.
I kiedy wstrzyknę jeden, kiedy wstawię ten kod tutaj, w
moim imieniu.
Wprowadzi to tam, więc tak
będzie wyglądał kod.
Wybierze zacząć od kont,
gdzie nazwa użytkownika jest równa admin.
Sam zamknąłem cytat, korzystając z tego właśnie tam.
A potem dodaję komentarz, więc w zasadzie
wszystko to nawet nie zostanie wykonane, więc
kod będzie taki, będzie wybierany *
z kont, gdzie nazwa użytkownika
jest równa admin.
Pozwoli mi się zalogować bez
wprowadzania nawet hasła, więc
zróbmy to.
Podam swoją nazwę użytkownika jako admin, zamykam
ofertę i dodam komentarz.
Następnie możesz podać dowolne hasło.
Po prostu wstawię numer 1, a
potem się zaloguję.
I jak widać, udało mi się zalogować jako administrator.
Więc znowu w tym jest testowanie czarnej skrzynki,
więc tak naprawdę nie widzisz kodu.
W wielu przypadkach chcesz się z tym bawić
i zobaczyć, jak to działa.
Ale najważniejsze jest to, że chcesz przetestować, czy wstrzyknięcie
SQL istnieje, i użyłbyś tego przy użyciu metody
pokazanej w poprzednim filmie.
Wypróbuj pojedynczy cytat, wypróbuj instrukcję i, wypróbuj
prawda i instrukcje, więc 1 = 1, a następnie
fałsz i instrukcja, więc 1 = 0 lub
2 = 0, a jeśli działają zgodnie z oczekiwaniami, to jesteś celem
ma zastrzyk SQL i możesz
zacząć się nim bawić.