OK, więc zwiększmy poziom bezpieczeństwa do wysokiego poziomu bezpieczeństwa, który jest dość bezpieczny, więc czasami można
go ominąć, czasami można go ominąć.
I w tym wykładzie zamierzam po prostu podkreślić coś dla ciebie.
Więc spróbujmy użyć tego samego exploita, którego używaliśmy wcześniej.
Więc jeśli to skopiujemy, a my zamierzamy włączyć przechwytywacz i po prostu teraz mam zamiar wprowadzić zwykłą nazwę
użytkownika i
hasło, przechwycimy to tutaj i zmodyfikujemy tak, jak zrobiliśmy to w poprzednim wideo.
OK, teraz zamierzamy to zrobić.
I jak widać, mówi nam, że jest zła nazwa użytkownika i hasło, więc oczywiście jest to bezpieczniejsze.
I faktycznie w tym konkretnym przypadku na tej stronie nie można już wstrzykiwać tego poziomu
bezpieczeństwa.
Nie implementuje najlepszych praktyk bezpieczeństwa, ale w tym konkretnym przypadku jest wystarczająco bezpieczny.
Więc zamierzam mieć.
Rzucimy okiem na to, ale nie jest to najlepszy sposób zabezpieczenia witryny, więc porozmawiamy
o części dotyczącej bezpieczeństwa na końcu sekcji.
I porozmawiamy o najlepszym sposobie zabezpieczenia się przed bezpiecznymi zastrzykami.
Ale na razie warto to zauważyć, ponieważ jest to szybka implementacja i jeśli wiesz, co
robisz, możesz szybko rozwiązać problem, na przykład jeśli masz problem i nie masz wystarczająco
dużo czasu, aby zmienić implementację na najbezpieczniejszy sposób, o którym będziemy rozmawiać później,
możesz zrobić to tak szybko, abyś był wystarczająco bezpieczny, dopóki nie będziesz mógł go
zaimplementować i zmienić kod, aby był bezpieczniejszy.
Więc co teraz robią na tej stronie.
To nie zawsze zapewnia Ci 100 procent, ale w tym przypadku jest bezpieczne.
To jest kod do logowania i właśnie tutaj mamy przypadek, który jest arogancki lub numer Security
jeden.
I tutaj mamy kod dla poziomu bezpieczeństwa piątego.
Możesz porównać dwa kody.
Główną różnicą jest ta instrukcja select.
Tak więc usunę wszystko i zachowam te dwie wybrane
instrukcje, abyśmy mogli je porównać.
OK, aby zobaczyć tutaj w niezbyt bezpiecznym zestawieniu, które wybieramy, zacznij od kont, których nazwa użytkownika to
nazwa użytkownika w dolarach, a hasło to hasło w dolarach.
Więc w zasadzie to, co umieścisz w polach tekstowych dla nazwy użytkownika i hasła, jest bezpośrednio używane
tutaj.
Teraz była filtracja strony klienta i mogliśmy ominąć to za pomocą proxy.
Tak więc wszystko, co wprowadzamy w proxy, zostało zastąpione tutaj.
Moglibyśmy zatem zmodyfikować kod, ustawiając nazwę użytkownika na równą sobie lub jeden jest równy jednemu, a
następnie dodaliśmy komentarz.
Więc w zasadzie to, co stało się w tym oświadczeniu tutaj, zamiast nazwy użytkownika, która została podstawiona.
Tak więc wszystko, co tutaj zastaliśmy, zostało zastąpione.
I ta wartość została wstrzyknięta.
Zostało to zmienione na cytat, a następnie lub jeden jest równoznaczny z jednym komentarzem i wszystko to zostało w zasadzie zignorowane wszystkim, co nastąpiło po
tym, jak zostało to zignorowane, co spowodowało, że nasze stwierdzenie zadziałało.
Tak więc, jak widać tutaj ponownie, cytat, który został już wstawiony, a następnie dodaliśmy lub co
jest równe temu, co jest prawdziwym stwierdzeniem.
Nazwę użytkownika nazywamy Ogmund. Tak właśnie zrobiliśmy, to byłby tutaj adman, więc w zasadzie wybieramy cokolwiek, gdzie nazwa użytkownika jest równa
adminowi i nie dba o hasło, które dało nam
dostęp do konta administratora.
Teraz moglibyśmy wstrzyknąć również hasło, lub jedno jest równe jednemu.
Znowu daje nam prawdziwe oświadczenie.
I to było robione w tym konkretnym przypadku tutaj, w bezpiecznym.
To, co robią, to funkcja, która nazywa się rzeczywistym łańcuchem scape.
A to, co to robi, zasadniczo usuwa takie znaki, jak znak nowej linii, znak przerwania
i cytaty lub pojedynczy kod lub podwójny kod, więc skanuje.
Skanuje dane wejściowe, które umieszczamy tutaj, i usuwa wszelkie cytaty, które umieszczamy.
Więc umieściliśmy ten kod właśnie tutaj lub kiedy wprowadziliśmy podwójny kod i usuwaliśmy go.
Tak więc kiedy porusza się, zasadniczo oddaje wszystko w środku jako siłę.
Kolejny problem z tym teraz.
Powiedziałem, że jest to bezpieczne tylko w tym konkretnym przypadku, ponieważ są one również w cytacie
tuż przed i po wprowadzeniu.
Więc jeśli nie ma cytatów, nasz wstrzyknięty zastrzyk, który musimy wstrzyknąć, nie będzie musiał zawierać
cytatu i że będziemy w stanie ominąć tę funkcję, ale ponieważ używają, są one naprawdę trudne
w cytatach tutaj, tutaj i tam na samym końcu na początku i na końcu danych wejściowych,
a oni także unikną jakiegokolwiek związku przyczynowego.
Jeśli więc dane wejściowe zawierają jakiekolwiek cytaty, które usuwają, a następnie cokolwiek wstrzykniemy, niezależnie od
tego, jaki tekst włożysz, zostanie to uznane za siłę.
Więc będzie traktowany tylko jako zwykły tekst i nigdy nie będzie traktowany jako kod, dlatego
nigdy nie zostanie wykonany na serwerze.
Tylko w tym przypadku.
Zróbmy więc przykład, więc mamy tutaj nasz identyfikator.
A więc jest to zastrzyk, którego zawsze używamy. Więc zapomnij o tym.
Oto nasza nazwa użytkownika.
Więc w zasadzie to, co się stało, to zbliża się do kodu, a następnie kod będzie skanował
to i zauważy, że jest tutaj cytat.
A ponieważ jest cytat, to go usunie.
Ta konkretna funkcja usunie ją.
Po zastosowaniu tej funkcji zniknie.
A funkcja zniknie.
Tak będzie wyglądać kod do komputera.
To właśnie zobaczy.
Będzie to po prostu zwykły szczep, który jest zawarty również w dwóch cytatach.
Więc musimy przenieść kropki tutaj.
Zauważ, że są one już mocno zakodowane w tych dwóch cytatach.
Z tego powodu nasz zastrzyk nigdy nie zadziała.
Teraz, jeśli nie zawarli tych kodów, jeśli nie zaszkodzili im tutaj, gdyby nie istniały, nawet gdyby
użyli funkcji, którą ten zastrzyk zadziała.
Ale ponieważ użyją cytatu, cokolwiek pojawi się wewnątrz cytatów, będą uważane
za siłę.
A ponieważ sprawdzają, że nasze dane wejściowe nie powinny zawierać cytatów po stronie
serwera, to cokolwiek wyciągniemy, zostanie usunięte z cytatu i nigdy nie zostanie uznane za kod.
Znowu to nie jest najlepszy sposób na zabezpieczenie Twojej strony.
Wyjaśnię najlepsze dlaczego.
Na ostatnim wykładzie sekcji.
Jest to jednak dobry sposób na tymczasowe zabezpieczenie witryny.
Jeśli nie masz czasu na wdrożenie właściwej procedury.