LUCIANO Arango: OK, momci. Moje ime je Luciano Arango. Ja sam student u Adams doma. A mi ćemo se govori o Sigurnost na webu aktivnu obranu. Tako ja radim za Ured za informiranje Sigurnost na moru. A preko ljeta, interniran sam SeguraTec, što je informacija zaštitarske tvrtke koja je služila za Bank of Columbia. To govore gdje sam naučila ono što sam do sada naučio. I tako su neki od materijala da smo će ići preko danas, nismo Stvarno je govorio o klasi. No, što ćemo uskoro. To će biti kao što je SQL, JavaScript. I mi stvarno nisu otišli preko njega. Pa ja mogu sortirati leta kroz njega, a možda ne znaju neke stvari. Ali uskoro, vi ćete ga naučiti. I to će sve imati smisla. Također, još jedna stvar - ostati etički. Neke od stvari koje ste naučili, što mogao koristiti u ne-etičke načine. Ako je tvoja, svakako probati. Ja definitivno motivirati momci isprobati svoje vlastite poslužitelje, pokušajte događa unutar njih. Pogledajte ako ih ne može probiti, ako mogu dobiti unutar njih. Ali ne bilo tko drugi. Policajci stvarno ne volim šale i Cijelo to stavili smo ovdje. Bili smo se zajebavati. Oni se jako naljuti. Tako se preko glave na ovoj web stranici. Imam ga otvorio upravo ovdje. To je web stranica, a to ima hrpa primjera. Ono što se događa je da je prvi primjer je vrsta će biti puno lakše od posljednjeg primjer u smislu da prvi primjer je potpuno nesigurno. I posljednja je onakav kakav normalno web sigurnost osoba će učiniti. No, još uvijek možete svojevrsni od dobiti oko toga. A mi ćemo se usredotočili na jednu i dva, primjeri jedan i dva. OK. Počnimo s cross-Site Scripting. JavaScript je izvoditi na klijenta preglednika. To je programski jezik koji koristite za rad na klijenta preglednika tako ne morate ažurirati web stranicu i vratiti na poslužitelj. Imate ga izvodi. Na primjer, Facebook, ne moraš Za ponovno učitavanje web stranica za novi status ažuriranja smisliti. To je pomoću JavaScript za generiranje sve te stvari. Dakle, možemo se uvelo zlonamjerni JavaScript na internetskim stranicama. I na taj način, kad smo poslati link netko, mogli smo na neki način poslati s Neki od koda koji želimo. Tu je uporan i nepostojani JavaScript - uporni i nepostojani cross-site skriptiranje, mislim. A razlika je u tome da je uporni JavaScript je da će biti Spremaju se na web stranici. I nepostojani će biti JavaScript da će se zapravo dogoditi samo jednom. Pa pogledajmo primjer vrlo brzo. OK. Dakle, ova web stranica, jednostavno, ništa se ne događa ovdje. A mi ćemo pokušati ubacivanje JavaScript. Dakle, način na koji smo počeli pisati JavaScript je li početi s početkom pismu. I mi smo ga zatvoriti s pismom. Mi jednostavno ćemo staviti poruku - Ja ću vam pokazati - oprezu. Uzbuna je funkcija da JavaScript koristi za prikaz nešto. Tako ćemo ga pokušati vrlo brzo. Ja idem, pozdrav upozorenja. Pa, zaboravio sam staviti - OK. Dakle, to je jednostavno. Mi smo stavili JavaScript na web stranici, i ona je došao gore. I to kakve se događa samo Na našoj web stranici, zar ne? Dakle, čini se kao da to nije Problem je, zar ne? Mislim, kako ste mogli koristiti ovo zlonamjerno? Dakle, način na koji hakeri učiniti ovo je stvarno jednostavan. Oni će ga zgrabiti. Oni mogu poslati ovaj link na vas. Ako Poslat ću ovaj link na vas upravo sada, a vi ga otvoriti, to će kažu, hello, rekavši da je moja web stranica je reći 'bok'. I tako da sam reći nešto malo pametniji, ako sam podići JavaScript funkcija ja vrsta već pisao - ali ako na to gledate, ja ću otići preko njega prije nego što sam ga napisao. Tako ćemo postaviti timeout. Mi ćemo čekati par sekundi. U stvari, mi ćemo čekati, ako Ja ne varam, pet sekundi. To ide u milisekundi. I što ćemo učiniti je zatim smo će upozoriti da je prijava Isteklo je vrijeme da se ponovno se prijavite I mi ćemo se promijeniti mjesto na drugo mjesto. Dakle, ako ja pošaljem ovu web stranicu kako bi netko, oni će biti pregledavanje oko, mirna. Ništa se nije događalo. I u pet sekundi, to će reći, vaša prijava je isteklo. Molimo ponovno se prijavite Nakon što kliknete U redu, ja ću ih odvesti na druge web stranice. Vjerojatno, web stranice će biti sličan web stranicu koja oni su bili prije. I oni će se prijavite svoje vjerodajnice u mojoj web stranici, umjesto svoje web stranice. I tako ja mogu poslati ljude e-mail s ovim linkom. Kažem, oh, evo link. To je banka, na primjer. Kažem, ovdje, idite na ovaj link. I kad su ga poslali, oni su će biti pregledavanja okolo. Ja mogu čekati 15 sekundi, 20 sekundi, a zatim pop koji logirajte davne potpisati na leđa. Momci, možete probati s puno više stvari. To je komplicirano, jer ti dečki nisu vidjeli JavaScript, tako da možda Ne znam neke funkcije. No, sve što morate učiniti je početi s pismom, završava s pismom. A ti bi mogao staviti ništa u sredini. Uzbuna je funkcija, čekati. Prozor mjesto vodi na novo mjesto. Ali, možete učiniti mnogo više. I tako je ideja da uzmemo da je off. Ako idem na primjer dva, a ja staviti u tom istom kodu, to je ne ide na posao. Dakle, to znači tiskanje sve riješiti, jer ono što ove web stranice je izvorno radi se ako sam stavio nešto ovdje, to će ga isprintati ovdje. Dakle, to ne znači tiskanje ništa. Ovaj primjer je zapravo pravopisa da li skripta je tu. Tako da, samo naprijed. Pitajte me. Ivanković: Nije slanje dobiti ili postavljati zahtjev? LUCIANO Arango: Da. oni su slanjem GET zahtjev. Ivanković: To je? LUCIANO Arango: Da. Također preglednici koriste postavljati zahtjeve. Ali ja pokušavam pokazati se zahtjeva tako da možemo vidjeti što je zapravo događa. I tako, ako pogledamo ovaj kod - pa ne radi više. A ako ćemo uzeti pogledati ovaj kod, to će biti primjer dva. Ono što ta osoba radi, osoba zadužena za ovaj preglednik - otvaraju, OK - zamjenjuje riječ skriptu. To je PHP, što ti dečki bi mogli Vidjeli malo još. On je samo zamjene Riječ skripta sa imenom. Pa ipak, ako sam ići naprijed i samo staviti u - ako sam zgrabiti moj broj opet, i ja ću ga mijenjati samo malo. Umjesto pisma, ja ću promijeniti je za skriptu s kapitalom i R. ćemo vidjeti je li to kod radi. Dakle, to nije to isprintati, što je dobar znak. I nadamo se u još dvije sekunde, to će pop-up. Vaš prijava je isteklo. OK. Nema problema. Dakle provjere skriptu možda ne mora nužno raditi. Osoba - ona također može provjeriti skripte velika slova, skripte mala, str slučaj usporedbu, uvjerite se da su isti. No, hakeri ipak može napraviti svojevrsno ono što smo učinili u Vigenere kad smo se preselili natrag par likova, pomaknuti prema naprijed. I to se može shvatiti kako staviti skriptu natrag unutra, tako da može ubrizgati da skripta. Dakle, ono što želite koristiti je htmlspecialchars se zaštitili svoje web stranice. A što to čini se čini sigurni da je ono što ste stavili u - za primjer, navodi ili ovo veći ili manji od - zamijenjen nečim da neće biti - neka mi zumirati ovdje - Stvarni znak za struju. On će zamijeniti one posebne HTML likovi koji Vidjet ćemo kad smo govori o - Oh, ovo će me odvesti natrag - ti likovi upravo ovdje. To znači da se nešto dolazi. Za HTML, koji počinje zagrada govori nam da nešto HTML vezani dolazi. I želimo riješiti to. Mi ne želimo staviti u HTML website.k Ne želimo korisniku da bude mogućnosti staviti nešto u svojoj internetskoj stranici koji mogu utjecati na njihovu web stranicu, kao što su skripte ili HTML ili nešto slično. Ono što je važno je da vam dezinficirajte korisničkog unosa. Tako korisnici mogu ulazne mnoge stvari. On je moguć ulaz hrpa stvari za probati da prevari svoj preglednik u još trčanje ovaj kod skripte. Što želite učiniti je ne samo gledati za scenarij, ali izgleda za sve koji bi mogao biti zloban. I htmlspecialchars će to učiniti za vas, tako da ne morate brinuti o tome. Ali ne pokušati učiniti sami vrsta sa svojim kodom. Jesu li svi jasno na XSS? OK. Idemo na SQL injekcije. Dakle, SQL injection je vjerojatno broj jedan ranjivost na različite web stranice. Mislim, dobar primjer - Upravo sam bio istraživanje najdalje za ovu stvar. I našao sam ovaj strašan članak, u kojem Vidio sam da je Harvard bio probijen, hakiran. I pitao sam se, dobro, kako bi oni to učiniti? Harvard je većina strašan, većina osigurati sveučilište ikad. Zar ne? Pa, da ugroze poslužiteljima, hakeri koriste Tehnika pod nazivom SQL injection. Tako se to dogodi na osnovi dana u dan. Ljudi zaboravljaju da uzme u obzir za SQL injekcije. Harvard radi. Mislim da ovdje piše, Princeton, Stanford, Cornell. Pa kako ćemo raditi - pa što je ovo SQL injekcije koje donosi sve to ljudi dolje? OK. Dakle, SQL je programski jezik koji ćemo koristiti za pristup bazama podataka. Ono što mi radimo je da odaberete - pa što je ovo čita upravo sada je odabrati sve sa stola. SQL, on promijeni u tim bazama podataka da su tablice pune informacije. Dakle odaberite sve od korisnika gdje je ime ime. Zar ne? Vrlo jednostavna. Ideja SQL injekcije je da smo ubacivanje malicioznog koda koji bi izigrati poslužitelj u trčanje nešto drugačiji nego što je to izvorno je pokrenut. Tako recimo za korisničko ime, stavimo u 1 ili jednak 1. Tako smo stavili u ili 1 jednak 1. Tako će čitati sada će biti odaberite od korisnika, sve od Korisnici - to je sve - gdje je ime ime, ali korisničko ime je ili 1 jednak 1. Dakle ime je ništa ili 1 jednak 1. 1 jednako 1 je uvijek istina. Dakle, to će se uvijek vratiti podatke od strane korisnika. OK. Mi ne trebamo imati ispravno korisničko ime. Mi samo možemo imati sve što želimo, i da će se vratiti podatke da nam je potrebna. Pogledajmo još jedan primjer. Ako smo odabrali sve, od korisnika, gdje je ime kap tablica korisnik - pa što ti misliš da ta volja učiniti ako sam stavio u username kao kap tablica korisnike? Svatko tko ima ideju? Da. Ivanković: Bit će to reći je na deponij sve tablice. LUCIANO Arango: To će nam reći na deponij sve na internetskim stranicama, sve u bazi podataka. I ono što ljudi koriste to za - tako Ja ću vam pokazati dečki. Ja onemogućen spustivši tablice jer nisam ti želim dečki da ispadne moje tablice. Uzmimo pogled na ovo. Dakle, to jednostavno skida podatke za određenu osobu. Pa kako ćemo znati ako je to pogođeni i SQL injection. Idemo provjeriti vrlo brzo ako mi možete staviti nešto - neka mi kopirati taj kod. Ja ću ići preko njega u sekundi. Ja ću staviti korijen i 1 jednak 1. Ovo ovdje, ovo znak postotka 23 - što to stvarno je, ako sam Pogledajte ovdje na - način HTML traje u brojkama, ako Pogledajmo kad sam stavio u prostoru ovdje - ako mi je nešto prostora ovdje, da ga mijenja na 2 posto. Vidite li vi to vidite ovdje kad sam stavio u prostoru? Način na koji to radi je da možete samo poslati ASCII vrijednosti kroz HTML. Dakle, može zamijeniti, na primjer, Prostor s 20 posto. Ja ne znam da li vi momci Vidjeli su da prije. On zamjenjuje hashtag s 23 posto. Trebamo hashtag na kraju ili izjavu, tako da možemo reći Baza zaboraviti komentirati out ovaj zadnji zarez na kraju. Želimo da se ne razmišljati o tome. Mi samo želimo da se izvoditi sve da imamo unaprijed i komentirati to. Uzmimo pogled na njega. Dakle, ako sam ja staviti nešto krivo - recimo za primjer, ja sam stavio 2 jednako 1, ne daje mi ništa. Kad sam stavio u 1 jednak 1, i to ne vratiti nešto, to mi govori da je ovo je osjetljiva na SQL injection. Sad znam da je ono što Stavio sam nakon toga - i, na primjer, kap TABLICE ili nešto slično definitivno će raditi. Znam da je ranjiv na SQL injection jer znam da ispod poklopca motora, to je ostavljajući učinim 1 jednak 1 stvar. OK? A ako pogledamo ove one druge, broj dva i broj tri, to je će učiniti nešto više provjere ispod napa što je to. Dakle, svatko omogućiti pad ništa još i pokušao? Vidite li vi kakve se još SQL? Jer znam da ti dečki nisu ga još nije vidio, pa to je vrsta zbunjujuće za vas. Idemo pogledati. Dakle, što je način da se spriječi SQLI? OK. Dakle, ovo je jako važno jer vam dečki svakako žele spriječiti ovo u vaše web stranice. Ako ne, svi vaši prijatelji će ismijavati vas kad ispadne sve tablicama. Dakle, ideja je da se popraviti SQL na određeni način, dok se podudaraju ono što korisnik ulaza s određeni niz. Dakle način to radi je li priprema baze podataka. Vi odaberite naziv, boju i kalorija iz baze podataka pod nazivom voća. I onda gdje kalorija manje od, i stavili smo upitnik postoji rekavši da ćemo ulaz nešto u sekundi. I boje jednako, a mi staviti pitanje Mark kaže da ćemo Ulaz se nešto u sekundi, kao dobro. OK? I onda smo ga izvršiti, stavljajući u 150 i crvene. A to će se provjeriti kako bi sigurni da su ta dvojica - ovo polje će provjeriti da su ti dva su broj i da je to niz. Onda idemo, a mi dohvatiti svega, mi smo se crveno. To znači da možemo dohvatiti sve. To znači da mi zapravo izvršiti SQL izjava i stavio ga natrag u crveno. Ovdje ćemo učiniti isto, ali mi učiniti isto za žute. I mi dohvatiti sve. I na ovaj način, možemo spriječiti korisnika od toga da bude u mogućnosti da unesete nešto to nije ono što je navedeno, string ili cijeli broj, na primjer. Ja sam govorio ranije o oslanjajući se na drugima. Kad ste vi početi svoj projekt, ti si zasigurno će se koristiti početno dizanje ili nešto slično. Jeste li vi ikad koristili Wordpress? Vjerojatno ti dečki su koristili Wordpress najvjerojatnije. Dakle, problem s korištenjem tuđe stvari - Samo ću na Google vrlo brzo Wordpress ranjivost. Ako sam to povući do sada - Doslovno sam učinio dva drugi Googleu. Možemo vidjeti da Wordpress - to je datiran u rujnu '12. 26 ažurira. Zadana konfiguracija Wordpress Prije 3,6 ne spriječi to određene slike, koje bi mogle olakšavaju cross-site scripting napada. Tako brzo priča, nakon što smo radili s - pa sam bio, u ljetnim mjesecima, radeći staž. I mi smo radili s vrstom kao velika kreditna kartica tvrtke. I oni se oslanjaju na nešto što se zove - Ja ne znam da li ste vi ikada igrao s proizvod zove Joomla. Joomla je proizvod koji se koristi za Kontrola - vrsta slična Wordpress, koriste za izgradnju web stranice. Tako su imali svoju web stranicu radeći na Joomla. To je zapravo kreditna kartica tvrtka u Kolumbiji. Odvest ću te na njihovu Web stranice vrlo brzo. Dakle, oni koriste Joomla. A oni nisu izmijenjena Joomla za najnoviji dodatak. I tako, kada smo bili uzimanje pogledati njihov broj, bili smo u mogućnosti da se zapravo ići u svom kodu i kradu sve podatke o kreditnoj kartici koji su imali, svi brojevi kreditnih kartica, imena, adrese. A to je bio samo - i njihov broj je savršeno u redu. Oni su imali veliki broj. To je bilo sve sigurnosti. Provjerili su sve baze podataka. Oni su sigurni cross-site skriptiranje je u redu. No, oni koriste nešto što nije bilo izmijenjena, da nije bio siguran. I, tako da ih je doveo do - pa vi momci su svakako će koristiti i druge ljudi kod, tuđe okvire izgraditi vaše web stranice. Pobrinite se da su oni sigurno, jer ponekad je ne, onaj koji pogriješi. Ali netko drugi napravi grešku, a onda vam pasti zbog toga. Lozinke i PII. Dakle lozinke. OK. Idemo pogledati lozinke vrlo brzo. OK. Molim vas recite mi da je svatko koristi sigurno - Nadam se svima ovdje koristi sigurne lozinke. Ja sam samo pustiti da u kao pretpostavka. Dakle, vi ovo definitivno ide na spremanje lozinki za vaše web stranice. Ti ćeš napraviti nešto slično Prijava ili nešto slično. Ono što je važno je da se ne pohraniti lozinki u običan tekst. To je izuzetno važno. Vi ne želite pohraniti lozinku u običan tekst. A svakako ne stvarno želite da ga pohraniti u jednom smjeru mljeveno meso. Dakle, ono što jedan način hash je da kada se generirati riječ, kada se stavi ovo Riječ u hash funkcije, to će generirati vratiti nekakav zagonetan poruka ili grobni set ključeva. Pokazat ću vam jedan primjer. Idem hash Oni riječi password1. Dakle MD5 hash će me vratiti nekakav čudan informacija. Problem je u tome što ljudi vani koji vole ići na web stranicama imaju već shvatili vrsta svih MD5 hashes. Ono što su učinili je da sjedne na svoje računala, a oni svaki raspršen jedna je moguće riječ vani dok su dobili svojevrsni što je ovo. Ako mi je gledati ovo gore - Samo sam zgrabio ovu mljeveno meso. Ako sam dobiti ovaj hašiš iz - ako idem na web stranicu, a ne mogu naći to hash jer sam doći do baze podataka, te sam ga gledati, netko Već ga shvatio za mene. Da. Dakle, ljudi sjede, a sve što MD5 mljeveno meso koje ste stavili u, oni će vratiti k vama nešto da je riječ. Ako sam hash ni riječi, kao što su - Ne znam - trees2. Ja ne želim biti razočaran po mom Google pretraživanja. Tu je, trees2. Dakle, puno web još uvijek koriste MD5 hash. Oni kažu, oh, to je sigurno. Nećemo pohranjivanja u običan tekst. Mi imamo taj MD5 hash. A sve što morate učiniti je jednostavno Google broj. Ja čak ne moraju osobno izračunati. Ja samo mogu ga Google, a netko Već je to učinio za mene. Evo hrpa njih. Evo hrpa lozinke. Dakle, definitivno ne koriste MD5 hash, jer sve što morate to je Google to. Dakle, ono što ne želite koristiti umjesto? OK. Nešto što se zove soljenje. Dakle, ono što je soljenje - vi, dečki, sjećam se kad smo bili govorimo o random u - Nisam siguran što pset je bilo - je to pset postoji ili četiri? Razgovarali smo o pronalaženju iglu u plastu sijena. I u pset, on je rekao da bi mogao zapravo shvatiti što slučajni generira, jer je netko već vodio slučajni milijun puta i samo vrsta formirana što oni stvaraju. Što želite učiniti je staviti u neki ulaz. Dakle, to je ono što soljenje vrsta je. Oni su već shvatili što soljenja vraća za svaki posao. Dakle, što se je soljenje stavite u soli. Možete staviti u određenom riječi. I to će hash tu riječ ovisno Na što ste stavili ovamo. Dakle, ako sam hash password jedan s ovim rečenica, to će hash drugačije, ako sam hash password1 s drugom rečenicom. To na neki način daje negdje početi za izračunavanje sažetka za početak. Tako da je puno teže izračunati, ali ti Još uvijek mogu računati, a posebno ako koristite loš sol. Ljudi su već i smislili zajedničke soli i shvatio ono da je to. Slučajne soli su mnogo bolje, ali najbolji način je da koristite nešto što se zove kripta. A što kripta omogućuje ne - tako da ove funkcije su već izgrađen za vas. Mnogi ljudi zaboravljaju da, ili oni zaboravljaju da ih koriste. Ali, ako sam pogledati kripti PHP, kriptu Već vraća hash string za mene. I to je zapravo to soli mnogo puta i sasjecka to mnogo puta. Dakle, mi ne moramo to učiniti. Dakle, sve što morate učiniti je poslati ga u kripti. I to će stvoriti veliki mljeveno meso bez ti brige o soli ili bilo što. Zato, ako ste bili na sol to, imate zapamtiti što sol koju koristi jer ako ne, ne možete dobiti svoj Lozinka natrag bez soli koje ste koristili. OK. I također osobno identificirati informacije. Dakle socijalno osiguranje, kreditne kartice - to je prilično očito. No, ponekad ljudi zaborave na način da Radovi se, koliko informacija možete učiniti zapravo morati naći neki jednu osobu? Netko je studiju o ovaj put natrag. I to je bilo kao, ako imate Puno ime i prezime, ne mogu naći netko da je lako. No, što ako imate puno ime i njihov datum rođenja? Je li to dovoljno da se identificiraju netko posebno? Što ako imate svoje ime i Ulica koja žive na? Je li to dovoljno da se naći netko? I to kad su u pitanje, što je osobne informacije, i što bi trebao brinuti o ne davanje daleko? Ako vam dati osobni prepoznatljive informacije koje vam netko daje, što bi potencijalno mogao završiti na sudu. A mi definitivno ne želim to. Dakle, kada ste stavljajući svoje web stranice out, a vi ste stvarno cool Dizajn, nadamo se da je napravio strašan konačni projekt. Bilo koju vrst želite stavi ga vani. Vi želite biti sigurni da je ono što koje uzimate od korisnika, ako je to osobne informacije, što želite biti sigurni da ste se stvarno oprezni s njim. Ubrizgavanje Shell. OK. Shell ubrizgavanja omogućuje da ga uljez dobili pristup svoje stvarne zapovjedne linije na vašem poslužitelju. I tako je u stanju pokrenuti kod da se ne može kontrolirati. Uzmimo primjer za to lijepi niz ovdje. Ako idemo u web stranicu opet, ja sam ide na izlet kod injekcije. Dakle, što to čini se - to je također ono što smo bili gleda na prije. Puštamo korisniku staviti u bilo on želi, a to će se ispisati što god želite. Zato ću staviti poziv. Što to znači - počet će nadovezivanjem. Tako da će me pustiti pokrenuti bez obzira na Naredbe osobe prije i moje naredbe. I ja sam trčanje naredbu sustava. I ova zadnja žica - sjetite ono što sam razgovarao s vama o tome, dok imate za kodiranje da u postupku URL. Ako sam pokrenuti ovaj sada - Pokazat ću vam ovamo - vidjet ćete da sam završio se izvodi naredbu. To je zapravo stvarna poslužitelja da je moja web stranica se izvodi. Dakle, mi ne želimo da se, jer ja mogu pokrenuti - ovaj server nije moj. Dakle, ja ne želim zabrljati njegov sestra, Marcus poslužitelja. No, možete pokrenuti više naredbi da su opasni. I potencijalno, mogli izbrisati datoteke, ukloniti imenike. Ja mogu ukloniti određene imenik ukoliko Htjela sam, ali ne želim to učiniti Marcusu. On je dobar dečko. On neka mi posuditi svoj server. Zato ću ga pustiti off na dobra. Dakle, ono što ne želite koristiti - ne znamo želite koristiti eval ili sustava. Vrednuje ili sustav omogućuje nam da bi ove sustav poziva. Procjenu njem znači. Sustav znači ono što sam trčao. To je pokrenuti nešto u sustavu. Ali možemo odmetnik te stvari u PHP, tako da ih ne koristite. I upload datoteka. Htjela sam napraviti strašan Stvar s upload datoteka. No, kao što sam ti rekao dečki, moj dosje upload stvar ne radi. Ako mi je da uploadate upravo sada - ako su i da uploadate, i to je slika - imate upload stvar to je slika. To je u redu. Ništa se ne događa. Ali, ako imate prijenos datoteka, za Primjerice, i korisnik zapravo slike PHP datoteka ili EXE datoteku ili nešto kao što je to, onda ste mogli potencijalno imate problem. To je radio prije. Nažalost, za mene, to je Ne radi više. Ako sam, primjerice, postavite ju, ja sam ne dobiva dozvolu za prijenos file s obzirom na poslužitelju nije bilo moje. Dakle, čovjek je stvarno pametna. Dakle, mi ne želimo - Ja ću vam pokazati dečki - OK, to su neke stvarno cool alate. Tako su ti - ići u - ako vi imate Firefox - nadamo se da napraviti. Ima dvije dodaci nazivaju SQL ubrizgati Ja i Cross-Site Script Me. Oni otvaraju kao malo stranu barovi na strani. I ako bih ići na CS60 primjerice - pa što je to ipak izgleda za sve oblike koji - nadam se, neću dobiti u nevolji za to. Ali u redu. Evo pin sustav. Dakle, kada sam početi u potrazi za rupama u Sustav, prva stvar koju sam učiniti je otvoriti ovaj prekrasan mali alat na strani. I ja ću testirati oblike s auto napada. I tako što to čini se da će se polako otvaraju hrpu preglednicima. Evo hrpa preglednicima. I to pokušava svaku kombinaciju cross-Site Scripting da je po mogućnosti, ako vidiš na strani. I to će mi dati rezultat onakav kakav je odgovor. Sve prođe. Očito, svi oni prolaze. Mislim, oni su jako pametni ljudi tamo gore. No, kada bih pokrenuti - Ja sam imao prije puta kad sam pokrenuti ovaj Na završnoj studentske projekte. Ja jednostavno pokrenuti SQL ubrizgati me s sve različite napade. I to pokušava SQL uvelo ovaj pin poslužitelja. Dakle, ako mi se pomaknite prema dolje, za Na primjer, on kaže - to je dobro, ako se ne vrati. Tako da testira neke određene vrijednosti. I poslužitelj je vratio kod koji je bio negativan. Uklonite privremeno. To je dobro. Ona pokušava sve te testove. Tako da je jednostavno mogao pokrenuti - Volio bih da mogu pronaći web pravi brzo da bi me pustili - Možda CS50 trgovine. Wow, ovo će uzeti put predug. Ja ću prvi test ne završi dobro. Dakle, to je karton. Dakle, to su tri stvari. Ovi alati su besplatni. Možete ih preuzeti i pokrenuti ih na Vaše web stranice, a to će vam reći ako imate Cross-Site Scripting, ako imate SQL, ako imate nešto slično. Ja sam nekako zabrljati gore. Ono što je važno - U redu, tako da nikad ne vjeruj korisniku. Što god se korisnik ulazi s vama, učinit jeste li ga dezinficirati, što ga očistiti, provjerite za prave stvari, da ti daje ono što vam je želim da ti daju. Uvijek se ažurirati na ono okviri da ste zapravo koriste. Ako koristite nešto poput bootstrap - Znam da dečki idu za korištenje početno dizanje, jer on će otići preko toga uskoro u razredu - i Wordpress ili nešto slično, inače bi to moglo biti sjeckan. A onda ne znam. Vi ste samo trčanje vaše web stranice. I to je potpuno siguran. A ti ići dolje. Pa ja sam u ribolov stvarno rano. No, želim zahvaliti Pentest Labs. Ja ću vam pokazati dečki nešto zove Pentest Labs. Ako ti dečki su stvarno zainteresirani za ono sigurnost stvarno je, tu je web stranica pod nazivom Pentest Labs, ako ti dečki idu na njega upravo sada. Oh, dobro, nije to to. Samo ću to raditi ovako. Google mi kaže odgovor. OK. I to uči koristiti vas - tako da kaže, naučili web prodor testiranje na pravi način. To vas uči - nadam se, da ste etički osoba. No, to vas uči kako možete pogledati Kako možete dobiti unutar web stranice. A ako vas naučiti kako možete dobiti unutar web stranice, možete naučiti kako zaštitili sebe od dobivanja unutar web stranice. Dopustite mi da povećavanje, jer možda ti dečki se ne gleda na to pravo. Od SQL injection shell, pa nekako kako ja mogu dobiti iz SQL ubrizgavanja shell. I preuzeti li ovaj virtualni stroj. I virtualni stroj već dolazi s web stranice koje ste ide to probati. Možete preuzeti ovaj PDF. A to će vam pokazati redak po redak ono što morate učiniti, ono što provjeriti. To je ono što zapravo Napadač ne da se unutar web stranice. A neke od tih stvari je komplicirano. Volio bih da mogu ići preko više stvari s vama. Ali sam brinuti da ti dečki nisu stvarno - to je ono što sam otišao s ti dečki, web testovi za ispitivanje penetracije. Stvarno ne znam što SQL je i što - Carl Jackson je seminar je strašan kao dobro. Vi dečki ne znaju vrsta o čemu se ovdje radi. Ali ako idete na ovoj web stranici, a vi skinuti ove tutoriale i to PDF, možete pogledati kakve ono područje sigurnosti uistinu u penetracije, vidjeti koliko možete dobiti unutar web stranice i zaštititi se od njega. Dakle, ako sam napraviti super brzi pregled, to će se spriječiti Cross-Site Scripting. Želite htmlspecialchars koristiti svaki kada korisnik ulaza nešto. Spriječiti SQL injection. Ako to učinite, vi ste već bolje nego Harvard je kad su se probio. I bi li vaše lozinke nisu u običan tekst. Pobrinite se da to nije samo jedan od načina mljeveno meso ih, ali da koristite kriptu, PHP funkcija koja Pokazala sam ti dečki. Na taj način, što bi trebalo biti dobro. Isto tako, ako se vaši prijatelji vam, trčanje SQL me ubrizgati na svojim web stranicama. Trčanje cross-site scripting na svojim web stranicama. I vidjet ćete puno ovih web stranica imaju tonu ranjivosti. To je nevjerojatno koliko ljudi zaboravljaju dezinficirati svoje baze podataka ili napraviti sigurni što unosom osobe Nije script code. OK. Nekako sam završio jako rano. Ali, ako bilo tko ima bilo kakvih pitanja o ništa, možete me ubiti pitanje. Da. Idite, idite. PUBLIKA: Samo želim pitati, Možete li nam objasniti kako datoteku upload točno radi. LUCIANO Arango: Da. Pa neka mi vam pokazati datoteku upload vrlo brzo. Dakle upload datoteka - Problem pamet prijenos datoteka sada je to - Idem otvoriti kod tako da dečki vidi kod iza kulisa. I to je upload. Evo broj za učitavač. Pokušavamo ići u ovu katalog ovamo. I mi pokušavamo, nakon što unosimo file, isset file - pa kad je podnijeti u datotekama, te slike, a zatim nastojimo ga premjestiti ovdje. Mi zgrabite datoteku ovamo. Metoda POST, tipa, slika, datoteka. I šaljemo ovu sliku. I onda kad smo ga dobili, tako da jednom sliku ima sliku, pokušavamo ga poslati za ovaj direktorij. Problem je u tome što web stranice nije ostavljajući me u ovaj direktorij, jer ne želim da se vratim. To me ne želi ići - Moram ići - pa evo upload. Evo slike. Moram ići, pa sve do na početku i staviti ga u njemu, a zatim idi i stavi ga u telefonskom imeniku. Dakle, ako sam bio pokrenut prozor terminala, i ja sam htjela da se premjestiti datoteku - [Nečujan] Možete ga vidjeti. Ako sam htjela premjestiti datoteku, imam staviti naziv datoteke, a zatim potpuni put želim ga poslati. I onda poslužitelja nije ostavljajući me da se vratim. I tako to ne ostavljajući ja bi na tu datoteku. No, u pravilu - tako da je kod za učitali datoteku. Pa normalno ono što će se dogoditi je da Osoba ne provjere je li moj file završava. jpeg, pa sam bi željeli provjeriti. Dopustite mi da otvorite primjer previše jako brzi. OK. Ta je osoba u pravu - pa primjer dva provjerava ako preg_match - Ovdje je ovdje - kako bi bili sigurni da završava PHP, što je dobro. To je dobro. No, tu je pravi veliki Problem s ovim. To je dobro. No, kada bih staviti sliku pod nazivom myfavoritepicture.php.jpeg, mogao bih još uvijek potencijalno riješiti jpeg i pokrenuti it.k To PHP je opasno. Vi ne želite da osoba bude u mogućnosti pokrenuti kod na svoju web stranicu. Ali onda. Jpeg omogućuje da prođe. Ideja je ono što stvarno želite raditi ne uzeti datoteke, A. No, u redu, što se vi stvarno želite učiniti je da provjerite da čitaš po cijelom svijetu. I nema ništa. PHP u njega. Nema. Php u cijeli naziv datoteke. PUBLIKA: Ali vi mogli stavi. jpeg na kraju. Poslužitelji dalje izvoditi kod. LUCIANO Arango: Ne, to neće izvoditi na početku. Morate se vratiti i pokušati vidjeti ako možete - Ivanković: Pa moramo - OK, samo još jedan set koji uključuje - LUCIANO Arango: Da. Ivanković: U redu. LUCIANO Arango: Da. OK. Bilo koja druga pitanja? OK. Ja ću ostaviti ovo gore i sortiranje od pokušati vidjeti ako dečki mogu - one druge su malo više komplicirano, jer oni zahtijevaju puno više poznavanje SQL nego samo s početkom poznavanje web SQL je i ono JavaScript je. Ali ja ću pokušati zadržati ovu gore, i nadamo se da će dečki naučili o tome i pokušati zaviriti u što možete učiniti i koliko primjeri možete dobiti putem. Bilo tko imati bilo koji drugi Pitanja o tome? Samo naprijed. Da, pucati, pucati. Da, ići naprijed. Samo naprijed. Ivanković: U redu. Tako sam čuo o tome Magic Izreke se ne osigura dovoljno. LUCIANO Arango: Koja - Magic citati? Publika: Da. Dakle dodaje - pa kad god ulaz nešto, to se uvijek dodaje citati. LUCIANO Arango: Da. Da. OK. Ivanković: I onda sam ipak da je radio, ali onda sam ga tražili gore. A on je rekao da nije dobro. Ali nisam siguran zašto. LUCIANO Arango: Da. Ivanković: Ne koristite Magic citati, jer to nije sigurno. LUCIANO Arango: OK. Dakle Magic Quotes je prilikom umetanja SQL i to već dodaje ponudu za vas. PUBLIKA: On uvijek dodaje citati oko toga što ste stavili u. LUCIANO Arango: Da. Dakle, problem s tim je da - Ja ću pogledati - PUBLIKA: Kakav je to stjecanje SQL? Ili valjda bi to moglo biti kao citat odabir. LUCIANO Arango: Da, trebate dobri citati za SQL. Ivanković: Ne, ali poslužitelj to radi za vas. LUCIANO Arango: Ove male citati upravo ovdje, ovi mali citati? Publika: Da. LUCIANO Arango: Da. Problem je u tome što možete komentirati se posljednja - U redu, tako da ono što mogu učiniti jest da mogu komentirati out - pa neka je pogledati - neka mi otvoriti text edit datoteku. Dopustite mi samo urediti ovo ovdje izravno. OK. Može li vidjeli jasno? Ono što mogu učiniti je da mogu komentirati iz posljednjeg. To će komentirati iz posljednjeg. I onda ću staviti jednu ovdje, stavio sve zlonamjerne stvari ovdje. Dakle, korisnik je zapravo unosa, zar ne? Korisnik ne unos stvari, zar ne? To je ono što ću ulaz kao osoba pokušava ući. Ja ću staviti u - to je jedan navodni znak. To je samo iskrivljena pogreškom. I što se onda kod je učiniti - Oprosti, ja ću uzeti ovo. Ono što je kod učiniti je to će dodati prva Navodnici ovdje. I to će dodati posljednja navodnik kao dobro. I to je također će dodati Posljednji, posljednja navodnika. Ali ja sam komentirajući ove citat obilježava se, tako da se ne odvijaju. I ja sam položenog citat obilježiti ovamo. Razumijete li? Jeste li se izgubili? Ja mogu komentirati posljednju ponudu Mark, i brinuti se o Prvi znak citat. Ivanković: I samo završiti prvi. LUCIANO Arango: Da. I samo završiti prvi. Da, to je točno. To je ono što ja mogu učiniti. Da. Bilo koja druga pitanja kao što je to? To je veliko pitanje. No, da, možda. Nadam se, da će dečki napraviti svojevrsni više smisla kada studija SQL i takve stvari. No, budite sigurni da - držati tih alata u sat. Nažalost, ovi alati ovamo. Ovi alati su super. Ako itko ima bilo kakvih pitanja, možete mi e-mail. Ovo je moj e-mail normalno. I ovo je moj rad e, koji je kad sam raditi na moru. U redu, hvala. Hvala, dečki. Vi ste dobro ide. Ne moraš ostati ovdje. Ne pozdravilo. To je malo čudno. OK, hvala, dečki.