>> LUCIANO ARANGO: OK, chłopaki.
Nazywam się Luciano Arango.
Jestem studentem drugiego roku w Adams House.
I będziemy mówić o Bezpieczeństwo WWW aktywne obrony.
Więc pracować dla Biura Informacji Bezpieczeństwo w morzu.
I w lecie, I internowany w SeguraTec, co było informacji
firma ochroniarska, który służył dla Banku Kolumbii.
To głównie, gdy dowiedziałem się, czego się nauczyłem do tej pory.
>> I tak, niektóre z materiałów, które jesteśmy pójdzie na dziś, nie mamy
naprawdę mówi się w klasie.
Ale wkrótce.
To będzie jak SQL, JavaScript.
A my naprawdę nie poszedł na to.
Więc może sortować lotu przez niego, i może nie wiedzieć kilka rzeczy.
Ale wkrótce, będziesz się uczyć.
I będzie to wszystko ma sens.
Także inna rzecz -
pobyt etyczne.
Niektóre z rzeczy, które uczą się, jesteś może korzystać w sposób nie-etycznych.
>> Jeśli jest to twoja, na pewno spróbować.
Zdecydowanie motywować chłopaków spróbować własnych serwerów, spróbuj
dzieje się wewnątrz nich.
Zobacz, czy możesz je przeniknąć, czy można dostać w nich.
Ale nie kogokolwiek innego.
Policjanci naprawdę nie lubią dowcipy i całości, możemy umieścić to tutaj.
Byliśmy bawić.
Oni się naprawdę zły.
>> Więc udać się na tej stronie.
Mam otworzył tutaj.
Jest to strona, i to ma kilka przykładów.
Co się dzieje, jest to, że pierwszy przykład jest rodzajem będzie dużo łatwiejsze
od ostatniej przykład w sensie że pierwszy przykład
jest całkowicie niezabezpieczone.
I ostatnia jest jakby co normalny człowiek zrobiłby zabezpieczeń internetowych.
Ale nadal można sortować z obejść to.
I jedziemy do koncentrując się na jednym i dwa, raz i dwa przykłady.
>> OK.
Zacznijmy cross-site scripting.
JavaScript jest prowadzony na przeglądarka klienta.
Jest to język programowania, który używasz do pracy w przeglądarce klienta, tak
nie masz do aktualizacji strony internetowej i iść z powrotem do serwera.
Masz uruchomiony.
Na przykład Facebook, nie musisz , aby ponownie załadować stronę internetową dla nowego stanu
aktualizacje wymyślić.
Jest za pomocą JavaScript, aby wygenerować wszystkie te rzeczy.
Więc możemy wstrzyknąć złośliwy JavaScript na stronach internetowych.
I w ten sposób, kiedy wysłać link do ktoś, możemy jakby wysłać go
niektóre z kodu, który chcemy.
>> Jest trwały i nie trwały JavaScript -
trwałe i nie trwałe krzyżowych skryptów, mam na myśli.
I różnicą, że trwałe jest JavaScript, który będzie
zapisane na stronie internetowej.
I nie będziesz mieć JavaScript że rzeczywiście tak się stało raz.
Więc spójrzmy na przykład bardzo szybko.
>> OK.
Więc ta strona, prosta, nic się nie dzieje tutaj.
I będziemy próbować wstawić jakiś JavaScript.
Więc sposób zaczynamy pisanie JavaScript jest zacząć od scenariusza począwszy.
I zamykamy ją skryptu.
Mamy po prostu zamiar umieścić wiadomość -
Pokażę ci -
Alert.
Alert jest funkcją JavaScript wykorzystuje do wyświetlania coś.
Więc spróbujmy go bardzo szybko.
Idę do pracy, powiadomienie cześć.
Cóż, zapomniałem umieścić -
OK.
Więc to jest proste.
>> Kładziemy JavaScript na stronie internetowej, i stało się.
I to tylko dzieje się coś w rodzaju na naszej stronie, prawda?
Tak więc wydaje się, że jak to nie jest problem, prawda?
Chodzi mi o to, w jaki sposób można użyć to złośliwie?
Tak droga, że ​​hakerzy nie to jest naprawdę proste.
Zamierzają go złapać.
Mogą wysłać ten link do Ciebie.
Jeśli wyślę link do ciebie teraz, i otworzyć go, to będzie
powiedzieć, cześć, mówiąc, że moja strona www mówi ci cześć.
>> I tak, jeśli miałbym powiedzieć coś trochę mądrzejszy, jeśli podciągnąć
W pewnym sensie funkcji JavaScript z już napisał -
ale jeśli spojrzeć na to, pójdę nad tym, zanim napisałem to.
Więc mamy zamiar ustawić limit czasu.
Zamierzamy poczekać kilka sekund.
W rzeczywistości, będziemy czekać, jeśli Się nie mylę, pięć sekund.
To idzie w milisekundach.
A następnie, co zamierzamy zrobić, to jesteśmy będzie ostrzegać, że logowanie
limit czasu na ponowne zalogowanie
I mamy zamiar zmienić lokalizację w innym miejscu.
>> Więc jeśli mogę wysłać tę stronę, aby ktoś, że będziemy mieć
przeglądania wokół, spokój.
Nic się nie dzieje.
I w ciągu pięciu sekund, co się dzieje powiedzieć, twój login limit.
Zaloguj widok
Po kliknięciu OK, mam zamiar wziąć je do innej strony internetowej.
Przypuszczalnie, strona będzie podobny do strony, która
byli wcześniej.
I idą do logowania ich Poświadczenia do mojej stronie zamiast
swojej stronie internetowej.
>> A więc mogę wysłać ludzi e-mail z tego linku.
I powiedz, oh, oto link.
To Bank, na przykład.
Mówię tu, idź na ten link.
I po ich wysłać, są będzie przegląda się.
Mogę poczekać 15 sekund, 20 sekund i pop, które zaloguj z powrotem w
zaloguj ponownie.
Możecie spróbować z dużo więcej rzeczy.
To skomplikowane, bo chłopaki nie widziałem JavaScript, więc może
nie wiem z pewnych funkcji.
Ale wszystko, co musisz zrobić, to początek ze skryptu, kończy się skryptu.
I można kłaść w środku.
>> Alert jest funkcją, poczekaj.
Lokalizacja okno przejście w nowym miejscu.
Ale można zrobić jeszcze więcej.
A więc chodzi o to, że przyjmujemy, że się.
Jeśli pójdę do np. dwóch, a ja umieścić w tym samym kodzie, to
nie będzie działać.
Więc to wszystko z powodu drukowania co strona ta oryginalnie
nie jest, jeśli mogę umieścić tu nic, będzie to wydrukować go tutaj.
Więc to nie jest nic drukowania.
Przykład ten jest faktycznie sprawdzania aby sprawdzić, czy skrypt ma.
Więc tak, proszę bardzo.
Zapytaj mnie.
>> PUBLICZNOŚCI: nie wysyła GET lub POST wniosek?
>> LUCIANO ARANGO: Tak. oni wysyłając żądanie GET.
>> PUBLICZNOŚCI: Jest?
>> LUCIANO ARANGO: Tak.
Również przeglądarki używają żądania POST.
Ale staram się pokazać żądań GET tak, że możemy zobaczyć, co jest
faktycznie dzieje.
I tak, jeśli spojrzymy na ten kod - tak to nie działa już.
A jeśli spojrzeć na ten kod, to będzie w przykładzie drugim.
Co ta osoba robi, osoba za tej przeglądarki -
otworzyć, OK -
Skrypt jest zastąpienie słowa.
To jest PHP, które chłopaki mogą widziałem trochę jeszcze.
>> On jest po prostu zastąpienie Skrypt słowo z nazwy.
Tak jednak, jeśli pójdę do przodu i po prostu umieścić w -
jeśli ponownie chwycić mój kod, i zamierzam modyfikować go tylko trochę.
Zamiast skryptu, mam zamiar zmienić to dla skryptu z R. i kapitału
mamy zamiar sprawdzić, czy ten kod działa.
Więc nie wydrukować, co jest dobrym znakiem.
I miejmy nadzieję, że w kolejnych dwóch sekund, to będzie pop-up.
>> Twój login limit.
OK.
W porządku.
Więc może sprawdzenie skryptu nie muszą pracować.
Osoba -
może też sprawdzić skrypt wielkimi literami, skrypt małe, sprawa str
porównanie, upewnij się, że są takie same.
Ale haker może jeszcze zrobić coś w rodzaju tego, co my w Vigenère kiedy przenieśliśmy
powrotem kilka znaków, iść do przodu.
I to może dowiedzieć się, jak umieścić skrypt z powrotem tam, więc to może wstrzyknąć
że skrypt.
>> Więc co chcesz używać jest htmlspecialchars do
ochrony swojej stronie.
I co to robi to robi upewnić się, że to, co można umieścić w -
na przykład, czy to notowania większa lub mniejsza niż -
otrzymuje się z czymś nie będzie -
pozwól mi przybliżyć tutaj -
Rzeczywisty Ampersand.
Zastąpi on tych specjalnych HTML znaków, które zobaczymy, gdy jesteśmy
mówisz -
och, to zajmie mi powrót do -
znaki te tutaj.
>> To oznacza, że ​​coś nadchodzi.
Dla HTML, że od wspornika mówi nam, że coś
HTML związane nadchodzi.
I chcemy, aby pozbyć się tego.
Nie chcemy, aby umieścić w HTML website.k Nie chcemy, aby użytkownik
w stanie umieścić coś w ich stronę które mogą mieć wpływ na ich stronie internetowej, jak
Skrypt lub HTML lub coś w tym stylu.
Ważne jest to, że ci zdezynfekować wejście użytkownika.
>> Więc użytkownicy mogą wejść wiele rzeczy.
On może wprowadzić kilka rzeczy, aby spróbować oszukać przeglądarkę do jeszcze
działa ten kod skryptu.
Co chcesz zrobić, to nie tylko patrzeć dla scenariusza, ale spójrz na wszystko
które mogą być szkodliwe.
I htmlspecialchars zrobię dla Ciebie, więc nie musisz
się o to martwić.
Ale nie próbuj zrobić samemu jakby z własnego kodu.
Czy wszyscy jasno XSS?
>> OK.
Chodźmy do SQL injection.
Więc SQL injection jest prawdopodobnie Usterka numer jeden
w różnych stronach internetowych.
To znaczy, dobry przykład -
Właśnie badania najdalej dla tej rzeczy.
I znalazłem ten wspaniały artykuł, w którym Widziałem, że został naruszony Harvardu,
włamał.
I zastanawiałem się, cóż, jak oni to robią?
Harvard jest najbardziej niesamowite, najbardziej bezpieczne uniwersytet kiedykolwiek.
Prawda?
Cóż, do naruszenia serwerów, hakerzy używane
technika zwana SQL injection.
>> Tak to się dzieje na codzień.
Ludzie zapominają, aby uwzględnić dla SQL injection.
Harvard ma.
Myślę, że tu jest napisane, Princeton, Stanford, Cornell.
Jak więc - więc co to jest SQL wtryskową połączenie wszystkich tych
ludzie w dół?
OK.
Więc SQL jest językiem programowania, który używamy, aby uzyskać dostęp do baz danych.
Co możemy zrobić, to możemy wybrać -
więc co to czyta teraz to wybrać wszystko ze stołu.
>> SQL, zmienia w tych bazach danych które mają stoły pełne informacji.
Więc wybrać wszystko od użytkowników gdzie nazwa to nazwa użytkownika.
Prawda?
Dość proste.
Idea iniekcji SQL to, że wstawić jakiś złośliwy kod, który
oszukać serwer do uruchomienia coś inny niż to, co
pierwotnie został uruchomiony.
Więc powiedzmy, że dla użytkownika, kładziemy się lub 1 wynosi 1.
Więc umieścić w lub 1 wynosi 1.
Sposób odczytuje teraz będzie wybrać od użytkowników, wszystko z
użytkowników - to wszystko -
gdzie nazwa to nazwa użytkownika, ale nazwa użytkownika jest równa 1 lub 1.
>> Więc nazwa jest niczym lub 1 wynosi 1.
1 jest równa 1 jest zawsze prawdziwe.
Więc będzie to zawsze zwraca informacje ze strony użytkowników.
OK.
Nie trzeba mieć poprawna nazwa użytkownika.
Możemy po prostu wszystko, co chcemy, i powróci informacji
że musimy.
Spójrzmy na inny przykład.
>> Jeśli mamy wybierać wszystko od użytkownika, gdzie nazwa jest DROP TABLE users -
tak, jak myślisz to wola zrobić, jeśli mogę umieścić nazwę użytkownika
jako użytkownicy DROP TABLE?
Ktoś ma pomysł?
Tak.
>> PUBLICZNOŚCI: To powie to zrzucić wszystkie tabele.
>> LUCIANO ARANGO: To się nam powiedzieć, zrzucić wszystko na stronie internetowej,
wszystko w bazie danych.
I co to za ludzie używać - tak Mam zamiar pokazać wam.
I wyłączona upuszczając tabele bo nie chcę cię
Chłopaki spadać moje tabele.
Rzućmy okiem na to.
Więc to po prostu ciągnie się informacje dla niektórych osób.
Więc skąd mamy wiedzieć, czy jest to wpływ SQL injection.
Zamierzamy sprawdzić bardzo szybko czy możemy umieścić coś -
chciałbym skopiować ten kod.
Mam zamiar iść na nią chwilę.
Mam zamiar umieścić korzeń i 1 wynosi 1.
>> To właśnie tutaj, w tym znak procent 23 -
co to naprawdę jest, jeśli spójrz tutaj w -
HTML odbywa się w sposób liczb, jeśli przyjrzeć się, kiedy kładę się w przestrzeni
tutaj - gdybym coś kosmicznego o, zmienia się na wartość procentową 2.
Czy faceci zobaczyć tutaj kiedy mogę umieścić w przestrzeni?
Zasada jest, że tylko możesz wysłać wartości ASCII przez HTML.
Tak więc zastępuje na przykład Przestrzeń z procentami 20.
Nie wiem, czy wy widziałem, że przed.
>> Zastępuje hashtag z procentami 23.
Potrzebujemy hashtag na końcu lub Ochrona tak, że możemy powiedzieć,
baza zapomnieć na komentarz Ten ostatni średnik na końcu.
Chcemy, aby nie myśleć o tym.
My po prostu chcemy go uruchomić wszystko że mamy wcześniej i
komentarz, że się.
Rzućmy okiem na to.
>> Więc jeśli miałbym postawić coś złego - Powiedzmy, na przykład, umieścić 2 równa
1, nie daje mi nic.
Kiedy kładę się 1 wynosi 1, i to nie coś wrócić, to mówi mi, że
jest podatny na SQL injection.
Teraz wiem, że cokolwiek Umieścić po to -
i na przykład, usunięcie tabel czy coś takiego
na pewno działa.
Wiem, że jest podatna na SQL injection bo wiem, że
pod maską, to pozwolić mi zrobić 1 równa się 1 rzecz.
OK?
>> A jeśli spojrzymy na tych pozostałych, numer dwa i numer trzy, to
zamiar zrobić trochę więcej sprawdzenia pod
Kaptur, co to jest.
Więc ktoś umożliwić spadek coś jeszcze czy próbowałeś?
Czy faceci jakby dostać jeszcze SQL?
Bo wiem, że faceci nie mają widziałem go jeszcze, więc jest to swego rodzaju
mylące dla was.
Rzućmy okiem.
Więc co jest sposobem na zapobieganie SQLI?
OK.
Więc to jest bardzo ważne, ponieważ Chłopaki na pewno chcesz, aby zapobiec
to na stronach internetowych.
>> Jeśli nie, wszyscy twoi przyjaciele będą śmieją się z was, gdy spadnie wszystko
tabele.
Więc chodzi o to, że można naprawić SQL w określony sposób, natomiast dopasować
co z wejścia użytkownika pewien ciąg.
Więc sposób to działa jest to, przygotowanie bazy danych.
Wybrać nazwę, kolor i kalorii z bazy danych o nazwie owoców.
A potem, gdy kalorii jest mniejsza, i umieścić tam znak zapytania
mówiąc, mamy zamiar wejścia coś w drugim.
>> I kolor jest równy, i stawiamy pytanie znak mówiąc będziemy
Wejście coś w drugim, jak również.
OK?
A następnie wykonujemy go, kładąc w 150 i czerwony.
I będzie to sprawdzić, upewnić się, że te dwa -
ta tablica będzie sprawdzić, że są dwa są liczbą całkowitą i
że jest to ciąg znaków.
Potem idziemy, i pobrać wszystko, kładziemy go na czerwono.
Oznacza to, że możemy sprowadzić wszystko.
Oznacza to, że w rzeczywistości wykonać SQL Ochrona i umieścić go z powrotem w kolorze czerwonym.
Tutaj robimy to samo, ale zrobić to samo na żółty.
I pobieramy wszystko.
>> I w ten sposób, uniemożliwić użytkownikowi z możliwości wejścia do czegoś
że nie jest to, co podano, łańcuch lub liczbę całkowitą, na przykład.
Mówiłem wcześniej o opierając się na innych.
Kiedy wy rozpocząć projekt, jesteś Najbardziej na pewno będzie korzystać
bootstrap lub coś podobnego.
Czy wy kiedykolwiek Wordpress?
Pewnie chłopaki używali Wordpress najprawdopodobniej.
Tak więc problem z użyciem sprawy innych ludzi -
Idę do Google bardzo szybko Wordpress luka.
>> Jeśli ciągnąć to właśnie teraz -
I dosłownie zrobił dwie sekundy Google.
Widzimy, że Wordpress -
to jest datowane we wrześniu '12.
26 jest aktualizowana.
Domyślna konfiguracja Wordpress przed 3.6 nie wyklucza to
niektóre dodane, które mogą ułatwić
krzyż-site scripting.
Tak szybkie historia, kiedyś pracowaliśmy z - tak, byłem, w lecie pracy
staż.
I pracowaliśmy z rodzaju jak firmy duże karty kredytowej.
>> I opierają się one na coś o nazwie -
Nie wiem, czy wy kiedykolwiek grał z produktu o nazwie Joomla.
IBP produkt, który jest używany do kontrola - rodzaj podobny do
Wordpress, wykorzystywane do budowania stron internetowych.
Więc mieli ich stronę internetową działa na Joomla.
Właściwie jest to karta kredytowa Firma w Kolumbii.
Zabiorę cię do ich strona bardzo szybko.
>> Tak kiedyś Joomla.
I oni nie zaktualizowane Joomla do najnowszego dodatku.
I tak, gdy byliśmy przyjrzeniu ich kod, byliśmy w stanie właściwie
iść w ich kodzie i ukraść wszystko informacje o karcie kredytowej, które mieli,
wszystkie numery kart kredytowych, nazwiska, adresy.
I to właśnie -
i ich kod był idealnie w porządku.
Mieli świetny kod.
To wszystko było bezpieczeństwo.
Sprawdzili wszystkie bazy danych.
Sprawili, że cross-site skryptów było w porządku.
>> Ale kiedyś coś, co nie było zaktualizowane, to nie jest bezpieczny.
I tak, że doprowadził ich do - tak wy na pewno będzie wykorzystywać inne
Kod, szkielety ludzi innych ludzi do budowania swojej stronie internetowej.
Upewnij się, że są bezpieczne, ponieważ czasami to nie ty, który
popełni błąd.
Ale ktoś inny popełni błąd, a potem spaść z tego powodu.
>> Hasła i PII.
Więc hasła.
OK.
Rzućmy okiem na hasłach bardzo szybko.
OK.
Proszę mi powiedzieć, że każdy wykorzystuje bezpieczne -
Mam nadzieję, że wszyscy tutaj używa bezpiecznych haseł.
Jestem po prostu pozwolić, że w jako założenie.
Więc chłopaki są na pewno będzie przechowywania haseł na stronach internetowych.
Masz zamiar zrobić coś takiego Zaloguj się lub coś w tym stylu.
Ważne jest, aby nie przechowywać hasła w postaci zwykłego tekstu.
Jest to niezwykle ważne.
Nie chcesz, aby zapisać hasła w postaci zwykłego tekstu.
>> I na pewno nie chcę przechowywać je w jeden sposób mieszania.
Więc co się szyfrem, że kiedy wygenerować słowo, gdy mu to
Słowo do funkcji skrótu, to będzie wygenerować z powrotem jakieś tajemnicze
Wiadomość lub tajemnicze zestaw kluczy.
Pokażę wam przykład.
Idę do mieszania, one word hasło1.
Więc MD5 będzie mi wrócić jakieś dziwne informacje.
>> Problemem jest to, że ludzie tam że chciałbyś pójść do stron internetowych mają
już zorientowali się, sortowania wszystkich skrótów MD5.
Co zrobili jest usiedli na swoich komputery i ich mieszany każdy
Pojedynczy możliwe tam, aż słowo dostali jakby co to jest.
Gdybym miał szukać tego w górę -
Właśnie złapał ten skrót.
Jeśli dostanę ten skrót od -
jeśli pójdę na stronie internetowej, i uważam, tego skrótu, bo dostać się do
baz danych i mogę to sprawdzić, ktoś już zorientowaliśmy się dla mnie.
>> Tak.
Więc ludzie usiedli, i cokolwiek md5 hash, które można umieścić w, że będziemy
powrót do ciebie coś to jest słowo.
Jeśli hash inne słowo, jak -
Nie wiem -
trees2.
Nie chcę być zawiedziony według moich wyszukiwań Google.
Nie jest to, trees2.
Tak wiele stron internetowych nadal używać skrótu MD5.
Mówią, och, to jest bezpieczne.
Nie jesteśmy przechowywania w postaci zwykłego tekstu.
Mamy tego skrótu MD5.
I wszystko, co musisz zrobić, to po prostu Google numer.
>> I nawet nie trzeba obliczyć samodzielnie.
Mogę tylko google, a ktoś już nie dla mnie.
Oto kilka z nich.
Oto kilka haseł.
Więc na pewno nie używać skrótu MD5, bo wszystko co musisz
Google nie jest to.
Więc co chcesz użyć zamiast tego?
OK.
Coś, co nazywa solenie.
Więc co solenie jest -
czy faceci pamiętam, kiedy byliśmy mówisz losowo -
Nie jestem pewien, co pset było -
został pset tam lub cztery?
>> Rozmawialiśmy o znalezieniu Igła w stogu siana.
A w pset, to powiedział, że można rzeczywiście dowiedzieć się, co losowej
generuje, bo ktoś już dostał losowe milion razy i tylko
rodzaj utworzony co generuje.
Co chcesz zrobić, to umieścić w wejściu.
Więc to, co jest swego rodzaju solenia.
Oni już zorientowali się, co solenie zwraca dla każdej pracy.
>> Więc to, co robi jest solenie można umieścić w soli.
Można umieścić w pewnym słowem.
I będzie to słowo w zależności skrótu na to, co można umieścić w tutaj.
Więc jeśli hash jednego z tym hasłem zdanie, to będzie do mieszania
inaczej, jeśli hash hasło1 w innym zdaniu.
To rodzaj daje to gdzieś początku do mieszania, aby rozpocząć.
Więc jest to o wiele trudniejsze do obliczenia, ale można jeszcze obliczyć go, zwłaszcza
jeśli używasz zły sól.
>> Ludzie zorientowali się już także wspólne sole i zorientowali się,
co to jest.
Losowe sole są o wiele lepsze, ale najlepszym sposobem jest użycie
coś, co nazywa krypta.
I co pozwala na krypta nie - tak te funkcje są
już zbudowany dla Ciebie.
Wielu ludzi zapomina, że ​​albo zapominają go używać.
Ale jeśli spojrzeć krypta krypta PHP, już zwraca ciąg mieszania dla mnie.
I faktycznie soli, która wiele razy Sumy i to wiele razy.
>> Tak więc nie musimy tego robić.
Więc wszystko co musisz zrobić, to wysłać go do krypty.
I stworzy wielki skrót bez jesteś martwiąc się o soli
czy coś.
Bo jeśli były do ​​soli to, masz aby pamiętać, co słonych użyłeś
bo jeśli nie, to nie można dostać swoje powrotem bez hasła
soli, które używane.
OK.
>> A także osobistego zidentyfikowania informacje.
Bezpieczeństwa, tak społeczne, karta kredytowa - to jest dość oczywiste.
Ale czasami ludzie zapominają, sposób, w jaki Prace jest, jak wiele informacji czy
rzeczywiście trzeba znaleźć jedną osobę?
Ktoś zrobił badania na temat ten sposób z powrotem.
I to było jak, jeśli masz pełna nazwa, nie można znaleźć
ktoś tak łatwo.
Ale co, jeśli masz pełną nazwę a ich data urodzenia?
Czy to wystarczy, aby zidentyfikować ktoś konkretnie?
>> Co zrobić, jeśli masz swoje imię i nazwisko oraz ulica, że ​​żyją na?
Czy to wystarczy, aby znaleźć kogoś?
I to jest, gdy pytanie, co to jest identyfikowalne informacje osobiste, a
co należy martwić się o nie rozdaje?
Jeśli oddać prywatnego zidentyfikowania informacje, że ktoś daje,
można potencjalnie pozwany.
I na pewno nie chcemy.
>> Więc kiedy jesteś wprowadzenie swoją stronę , i masz naprawdę fajne
projekt, mam nadzieję, że Ci się niesamowity projekt końcowy.
Wszelkie Ci rodzaj chcą umieścić go tam.
Chcesz, aby upewnić się, że wszystko, co bierzesz od użytkownika, jeśli jest to
identyfikowalne informacje osobiste, to Aby upewnić się, że jest naprawdę
Uważaj z tym.
>> Wtrysk Shell.
OK.
Wtrysk Shell pozwala na intruza uzyskać dostęp do aktualnej linii poleceń
w serwerze.
I tak, że jest w stanie uruchomić kod , że nie można kontrolować.
Weźmy na przykład ten piękny ciąg tutaj.
Jeśli pójdziemy w stronę jeszcze raz, jestem pójdzie do iniekcji kodu.
Więc co to robi, jest -
jest to również to, co my patrząc na przed.
Jesteśmy pozwalając użytkownikowi umieścić w dowolnej chce, i będzie drukować
co chcesz.
>> Więc mam zamiar zawiesić połączenie.
Co to robi, jest -
zacznie przez złączenie.
Więc niech mi będzie prowadzony niezależnie Uruchamianie poleceń osoby
przed, jak i dla mnie rozkazem.
I używam polecenia systemowego.
I te ostatnie słowa są - pamiętam to, co mówiłem do was, o,
natomiast trzeba kodować że w sposobie URL.
Jeśli uruchomię to teraz -
Pokażę ci tutaj -
zobaczysz, że skończyło się uruchomienie polecenia.
>> To jest rzeczywiście rzeczywiste serwer że moja strona działa na.
Więc my nie chcemy, bo mogę uruchomić -
Ten serwer nie jest mój.
Więc ja nie chcę zepsuć jego siostra, serwer Marcusa.
Ale można uruchomić więcej poleceń , że są niebezpieczne.
I potencjalnie, można usunąć plików, usunąć katalogi.
Można usunąć jakiegoś katalogu, jeśli Chciałem, ale nie chcę
aby to zrobić, aby Marcus.
To miły facet.
Pozwolił mi pożyczyć swój serwer.
Więc mam zamiar mu dać off na dobry.
>> Tak więc to, czego nie chcesz używać - nie użyć eval lub system.
Eval lub system pozwala nam na dokonać tych wywołań systemowych.
Eval sposobem oceny.
System oznacza co wpadłem.
Jest prowadzony coś w systemie.
Ale możemy zakazać tych rzeczy w PHP tak, aby ich nie używać.
I przesyłanie plików.
Miałem zamiar zrobić niesamowite co z wysyłania pliku.
Ale tak jak wam powiedziałem, mój plik Prześlij rzecz nie działa.
Gdybym przesłać plik teraz -
gdybym przesłać plik, i to jest obraz -
masz coś przesyłania to jest obraz.
To dobrze.
Nic się nie dzieje.
>> Ale jeśli masz plik, do wysyłania przykładem, a użytkownik faktycznie dodane
plik PHP lub exe czy coś tak, to może potencjalnie
problem.
Ten pracował wcześniej.
Niestety dla mnie, to jest nie działa już.
Jeśli, na przykład, przesłać plik, jestem nie dostanę pozwolenie, aby przesłać
pliku z powodu serwera nie jest moja.
Więc facet jest naprawdę mądry.
>> Więc nie chcesz -
Zamierzam pokazać chłopaki -
OK, to są naprawdę fajne narzędzia.
Więc te -
przejść do - jeśli macie Firefox - miejmy nadzieję, że tak.
Są dwa dodatki zwane SQL Inject Ja i skryptów krzyżowych Me.
Otwierają się jak mały bok bary na stronie.
I gdybym miał iść do CS60 na przykład -
więc co robi to wygląda Dla wszystkich postaci, które -
miejmy nadzieję, że nie będzie kłopoty na tym.
>> Ale OK.
Oto układ stykowy.
Kiedy więc zacząć szukać dziury w System, pierwsze co robię to
otwórz ten piękny mały Narzędzie z boku.
I mam zamiar przetestować formy z atakami auto.
I tak, co to robi to powoli otworzyć kilka przeglądarek.
Oto kilka przeglądarek.
I próbuje każdego połączenia cross-site scripting
że możliwe jest, w przypadku można zobaczyć na stronie.
>> I to daje mi wynik jakby co odpowiedzią jest.
Wszystko przejść.
Oczywiście, wszystkie one przechodzą.
Chodzi mi o to, że są bardzo inteligentne ludzie tam.
Ale gdybym miał do uruchomienia -
Miałem razy wcześniej, kiedy to uruchomić na końcowych projektów studenckich.
Ja po prostu uruchomić z programu SQL Inject Me wszystkie inne ataki.
I próbuje SQL inject serwer ten pin.
Jeśli więc przewijać w dół, na Na przykład, mówi -
to jest dobre, jeśli zwróci.
>> Tak testowany jest kilka pewnych wartości.
I zwracane przez serwer Kod, który był ujemny.
Usuń tymczasowo.
To jest dobre.
Próbuje wszystkie te testy.
Więc może po prostu uruchomić -
Chciałbym znaleźć na stronie internetowej rzeczywiście szybkie, że mi pozwolisz -
może przechowywać CS50.
>> Wow, to będzie brać zbyt długo.
Dam pierwszy test Nie ukończył prawo.
Więc to narzekać.
To są trzy rzeczy.
Narzędzia te są darmowe.
Można je pobrać i uruchomić je na Twoja strona, i to ci powiem, jeśli
masz cross-site scripting, jeśli masz SQL, jeśli masz
coś jak.
Jestem rodzaj bałaganu.
>> Co ważne -
OK, więc nigdy nie ufaj użytkownikowi.
Bez względu na wprowadzane przez użytkownika do Ciebie, upewnij pewien, że go zdezynfekować, oczyścić go,
sprawdzić na właściwe rzeczy, że daje ci to, czego
chce mu dać.
Zawsze być aktualizowana co ramy że jesteś rzeczywiście użyciu.
Jeśli używasz coś jak bootstrap -
Wiem, że macie zamiar używać bootstrap bo pójdzie
na to tylko w klasie -
i Wordpress lub coś w tym stylu, normalnie to może być posiekany.
>> A potem nawet nie wiem.
Jesteś po prostu działa swoją stronę.
I jest to całkowicie bezpieczne.
I zejść.
Więc jestem naprawdę wcześnie łowienie.
Ale chcę podziękować Pentest Labs.
Mam zamiar pokazać wam coś nazywa Pentest Labs.
Jeśli faceci są naprawdę zainteresowany co bezpieczeństwo jest naprawdę, nie ma
strona nazywa Pentest Labs, jeśli wy pójść do niej teraz.
Och, dobrze, że nie o to chodzi.
Mam zamiar uruchomić go w ten sposób.
Google mówi mi odpowiedź.
>> OK.
I uczy cię wykorzystać - więc mówi, dowiedzieć penetracji internetowej
badania na właściwą drogę.
To uczy -
mam nadzieję, że jesteś osobą etyczną.
Ale uczy, jak można spojrzeć na jak można dostać się stron internetowych.
A jeśli dowiesz się, jak można dostać się do środka stron internetowych, można dowiedzieć się, jak
chronić się przed coraz wewnątrz strony.
Pozwól mi powiększać bo może wy nie patrząc na to prawo.
>> Z SQL injection zapłacić, więc rodzaju, jak można uzyskać z SQL
wtrysk zapłacić.
I pobrać tę maszynę wirtualną.
I już jest maszyna wirtualna ze strony internetowej, że jesteś
spróbuję go.
Możesz pobrać ten plik PDF.
I pokaże linia po linii, co co musisz zrobić, co sprawdzić.
To jest to, co w rzeczywistości atakujący nie dostać się do środka na stronie internetowej.
>> A niektóre z tych rzeczy jest skomplikowane.
Chciałabym pójść na więcej rzeczy z wami.
Ale obawiam się, że chłopaki nie ma naprawdę -
to jest to, co ja przeszedłem z wy web testy
do testów penetracyjnych.
Tak naprawdę nie wiem, co SQL jest i co -
Seminarium Carl Jacksona to niesamowite, jak dobrze.
Chłopaki nie wiem sortowania z tego, co to jest.
Ale jeśli pójdziesz do tej strony, a pobrać te tutoriale i te
Plików PDF, można spojrzeć na rodzaj co obszar bezpieczeństwa naprawdę
z testów penetracyjnych, zobaczyć, jak to tylko możliwe dostać się do środka i ochrony stron internetowych
się od niego.
>> Więc jeśli zrobię super szybki przegląd, to będzie uniknąć cross-site scripting.
Chcesz korzystać każdy htmlspecialchars razem coś wejścia użytkownika.
Zapobiec SQL injection.
Jeśli to zrobisz, jesteś już lepiej niż Harvard był
kiedy dostałem naruszone.
I upewnij się, że Twoje hasła nie są w postaci zwykłego tekstu.
Upewnij się, że nie tylko jeden sposób mieszania je jednak, że używasz krypty, PHP
Funkcja że pokazałem wam.
W ten sposób, powinno być dobrze.
>> Ponadto, jeśli twoi przyjaciele pozwalają uruchomić SQL Inject Me na swoich stronach internetowych.
Uruchom cross-site scripting na swoich stronach internetowych.
, A zobaczysz dużo tych stron mają mnóstwo luk.
To niesamowite, jak wiele osób zapomina do dezynfekcji swoje bazy danych lub do
pewien, co wprowadzeniu osoby Nie jest kod skryptu.
OK.
I jakby zakończył bardzo wcześnie.
Ale jeśli ktoś ma jakieś pytania dotyczące cokolwiek, można strzelać do mnie pytanie.
Tak.
Idź, idź.
>> PUBLICZNOŚCI: Chcę tylko zapytać, można wyjaśnić, jak plikowi
przesłać dokładnie prace.
>> LUCIANO ARANGO: Tak.
Więc pozwól mi pokazać plik przesłać bardzo szybko.
Więc przesyłanie plików -
Problem dowcip przesyłanie plików w tej chwili jest to, że -
Zamierzam otworzyć kod, tak wy zobaczyć kod za kulisy.
I to jest przesłać.
Oto kod na uploader pliku.
>> Staramy się iść do tego katalog tutaj.
I staramy się, jak tylko wejście plik, plik isset - tak, gdy istnieje
złożyć w plikach, tego obrazu, a następnie staramy się przenieść go tutaj.
Pobieramy plik tutaj.
Metoda jest POST, typ, obraz, plik.
I wysyłamy tego pliku.
A następnie raz nam się go zdobyć, więc gdy plik ma obrazu, próbujemy wysłać go
do tego katalogu.
>> Problemem jest to, że strona nie jest pozwolił mi iść do tego katalogu,
dlatego, że nie chce mi się wracać.
Nie chce mi się iść -
Muszę iść - więc o to przesłać.
Oto zdjęcia.
Muszę przejść całą drogę z powrotem do początek i umieścić go tam, a następnie
go i umieścić go w katalogu.
Więc gdybym biegał okno terminala, i chciałem przenieść plik -
[Niesłyszalne]
Można go zobaczyć.
Gdybym chciał przenieść plik, mam umieścić nazwę pliku, a następnie
pełna ścieżka Chcę wysłać go.
>> A następnie serwer nie jest pozwolił mi wrócić.
A więc to nie jest najmu mi dostać się do tego pliku.
Ale normalnie -
więc jest kod na wysyłanie pliku.
Tak normalnie, co się stanie, że Osoba nie jest sprawdzenie, czy mój plik
kończy. jpeg, więc chciałbym sprawdzić.
Pozwól mi otworzyć przykład zbyt bardzo szybko.
>> OK.
Ten człowiek prawy -
tak np. dwa sprawdza jeśli preg_match -
oto jest tutaj -
aby upewnić się, że kończy się PHP, co jest dobre.
To jest dobre.
Ale jest naprawdę duży Problem z tym.
To jest dobre.
Ale jeśli miałbym umieścić plik o nazwie myfavoritepicture.php.jpeg, mogłem
wciąż potencjalnie pozbyć jpeg i uruchomić it.k że PHP jest niebezpieczny.
Nie chcesz, aby być w stanie osoba uruchomić kod na swojej stronie.
>> Ale wtedy. JPEG pozwala mu przejść.
Chodzi o to, co naprawdę chcesz robić nie wziąć plików, A. Ale ok, co
naprawdę chcesz zrobić, to upewnić się, że można przeczytać na całym świecie.
I nie ma nic. Php w nim.
Nie ma. Php w Cała nazwa pliku.
>> PUBLICZNOŚCI: Ale mogłeś umieścić. jpeg na koniec.
Serwery nadal uruchomić kod.
>> LUCIANO ARANGO: Nie, to nie będzie uruchomić na początku.
Musisz wrócić i spróbować aby sprawdzić, czy można -
>> PUBLICZNOŚCI: Więc musimy -
OK, po prostu inny zestaw, który obejmuje -
>> LUCIANO ARANGO: Tak.
>> PUBLICZNOŚCI: OK.
>> LUCIANO ARANGO: Tak.
OK.
Wszelkie inne pytania?
OK.
Mam zamiar zostawić to i sortować z spróbować sprawdzić, czy wy może -
pozostałe z nich są nieco bardziej skomplikowany, ponieważ wymaga znacznie
więcej znajomość SQL, niż tylko zaczynając znajomość internetowej SQL jest i
co jest obsługa JavaScript.
Ale mam zamiar starać się utrzymać to w górę, i mam nadzieję, że chłopaki będą uczyć
o tym i starają się rzucić okiem na co można zrobić i jak wiele przykładów
można dotrzeć.
>> Każdy ma inny pytania o niego?
Śmiało.
Tak, strzelać, strzelać.
Tak, proszę bardzo.
Śmiało.
>> PUBLICZNOŚCI: OK.
Słyszałem o tym, jak magia Cytaty nie są wystarczająco bezpieczne.
>> LUCIANO ARANGO: Co -
Magiczne notowania?
>> PUBLICZNOŚCI: Tak.
Więc dodaje - więc kiedy tylko wejście coś, to zawsze dodaje cytaty.
>> LUCIANO ARANGO: Tak.
Tak.
OK.
>> PUBLICZNOŚCI: I wtedy jednak, że pracował, ale szukałem go.
I powiedział, że to nie jest dobre.
Ale nie jestem pewien, dlaczego.
>> LUCIANO ARANGO: Tak.
>> PUBLICZNOŚCI: Nie używaj magicznych notowania, bo to nie jest bezpieczne.
>> LUCIANO ARANGO: OK.
Magiczne notowania jest tak po włożeniu SQL i to już dodaje cytat dla Ciebie.
>> PUBLICZNOŚCI: To zawsze dodaje cytaty wokół cokolwiek umieścić w.
>> LUCIANO ARANGO: Tak.
Więc problem z tym jest to, że -
Będę przyjrzeć -
>> PUBLICZNOŚCI: W jaki sposób nabywać Instrukcja SQL?
I myślę, że to może być jak cytat wybrać.
>> LUCIANO ARANGO: Tak, trzeba dobre notowania SQL.
>> PUBLICZNOŚCI: Nie, ale serwer zrobi to za Ciebie.
>> LUCIANO ARANGO: Te małe cytaty tu, te małe cytaty?
>> PUBLICZNOŚCI: Tak.
>> LUCIANO ARANGO: Tak.
Problemem jest to, że można ustosunkowania się ostatnio -
OK, więc to, co mogę zrobić, to mogę skomentować się - więc rzućmy okiem na - pozwól mi
otworzyć plik edycji tekstu.
Pozwólcie mi tylko zmodyfikować tutaj bezpośrednio.
OK.
Można wyraźnie zobaczyć, że chłopaki?
Co mogę zrobić, to mogę skomentować z ostatniego.
To komentarz z ostatniego.
A następnie włożę je tutaj umieścić wszystkie złośliwe rzeczy tutaj.
>> Więc użytkownik jest rzeczywiście wprowadzania, prawda?
Użytkownik nie jest wprowadzanie rzeczy, prawda?
To jest to, co mam zamiar wejścia w osób próbuje dostać się do środka.
Mam zamiar umieścić w -
to jest jeden cudzysłów.
To tylko falowane przez pomyłkę.
I co wtedy kod to zrobić -
Przepraszam, mam zamiar wziąć to.
Jaki kod będzie zrobić, to to będzie dodać pierwszy
cudzysłowów tutaj.
I to będzie dodawać ostatnia cudzysłów, jak również.
>> I to też będzie dodać ostatni, ostatni cudzysłów.
Ale jestem komentując te cytat zaznacza się, żeby nie uruchomić.
I kończę ten cytat zaznaczyć tutaj.
Czy rozumiesz?
Zgubiłeś się?
Mogę skomentować ostatni cytat znak, i dbać o
pierwszy cudzysłów.
>> PUBLICZNOŚCI: I tylko wykończenie pierwszy.
>> LUCIANO ARANGO: Tak.
I tak kończy się pierwszy.
Tak, to prawda.
To, co mogę zrobić.
Tak.
Wszelkie inne pytania, takie jak to?
To jest wielkie pytanie.
No, tak, może.
Miejmy nadzieję, że chłopaki będą jakby zrobić więcej sensu, kiedy uczysz się SQL i
takie rzeczy.
Ale upewnij się, że -
zachować te narzędzia w zegarku.
Niestety, narzędzia te tutaj.
Narzędzia te są świetne.
Jeśli ktoś ma jakieś pytania, można również napisz do mnie.
To jest mój normalny email.
I to jest mój e-mail pracy, które jest wtedy, gdy pracuję na morzu.
>> OK, dzięki.
Dzięki, chłopaki.
Jesteś dobry, aby przejść.
Nie musisz się tu zatrzymać.
Nie klaskać.
To dziwne.
OK, dzięki, chłopaki.