>> Luciano ARANGO: OK, kutid.
Minu nimi on Luciano Arango.
Ma olen üliõpilane Adams House.
Ja me räägime veebi turvalisus aktiivne kaitse.
Nii ma töötan Office of Information Turvalisus merel.
Ja suvel ma interneeritud SeguraTec, mis oli teave
turvafirma, mis oli Panga of Columbia.
See on enamasti, kus ma õppisin mida ma olen õppinud nii kaugele.
>> Ja nii mõned materjal, mis me oleme lähen üle täna, et me ei ole
tegelikult rääkisime klassis.
Aga me varsti.
See saab olema nagu SQL, JavaScript.
Ja me ei ole tõesti läinud üle.
Nii et ma võib järjestada lennu läbi ja sa ei pruugi teada mõningaid asju.
Kuid varsti saate teada seda.
Ja siis see kõik on mõtet.
Ka teine ​​asi -
jääda eetiline.
Mõned asjad, mida sa õpid, siis võib kasutada mitte-eetiline viisil.
>> Kui see on sinu oma, kindlasti proovida.
Ma kindlasti motiveerib teid proovida oma servereid, proovige
läheb sees.
Vaadake, kas saate tungida nende kui saad sees.
Aga mitte keegi teine.
Cops tõesti ei meeldi naljad ja Üldiselt me ​​paneme selle siia.
Olime jamamist.
Nad saavad tõesti vihane.
>> Nii pea üle sellel veebilehel.
Mul on see avatud siin.
See on veebileht, ja see on hunnik näiteid.
Mis juhtub on see, et esimene näide on omamoodi kavatse olla palju lihtsam
kui viimane näide selles mõttes et esimese näite
on täiesti ebakindel.
Ja viimane on omamoodi mida tavaline web turvalisuse inimene teeks.
Aga sa võid veel omamoodi ja hakkaja, et.
Ja me ei kavatse keskenduda ühele ja kaks, näited üks ja kaks.
>> OK.
Alustame murdskriptimise.
JavaScript juhitakse kliendi brauser.
See on programmeerimiskeel, mida saate kasutada käivitada kliendi brauser,
sa ei pea uuendada veebilehel ja minna tagasi serverisse.
Sa pead seda näitama.
Näiteks, Facebook, et sa ei pea taaslaadida kodulehel uus staatus
uuendused tulla.
Seda kasutades JavaScript genereerida kõik need asjad.
Nii saame süstida pahatahtlik JavaScript arvesse veebilehed.
Ja nii, kui me saata lingi keegi, võiksime omamoodi saadab selle koos
mõned koodi, mida me tahame.
>> Seal on püsiv ja mittepüsiva JavaScript -
püsiv ja mittepüsiva cross-site skriptid, ma mõtlen.
Ja selle erinevusega, et püsiv on JavaScript, mis on
salvestatud kodulehel.
Ja mittepüsiva on JavaScript et tegelikult lihtsalt juhtub üks kord.
Nii vaatame näiteks päris kiire.
>> OK.
Nii et see veebileht, lihtne, midagi ei juhtu siin.
Ja me ei kavatse proovida lisada mõned JavaScript.
Niisiis, kuidas me hakake JavaScript on me alustame algusest script.
Ja me lõpetame selle skripti.
Me lihtsalt paneme sõnum -
Ma näitan sulle -
tähelepanelik.
Alert on funktsioon, JavaScript kasutab näidata midagi.
Seega proovime kiirelt.
Ma lähen, tähelepanelik tere.
Noh, ma unustasin panna -
OK.
Nii et lihtne.
>> Panime JavaScript veebilehel, ja see tuli.
Ja see omamoodi juhtub ainult meie kodulehel, eks?
Nii tundub, et see ei ole probleem, eks?
Ma mõtlen, kuidas sa võisid kasutada seda pahatahtlikult?
Niisiis, kuidas häkkerid teha see on tõesti lihtne.
Nad hakkavad seda haarata.
Nad võivad saata see link teile.
Kui ma saadan selle link teile kohe, ja avate selle üles, siis läheb
öelda, tere öelda, et mu veebilehte ütleb teile tere.
>> Ja nii, kui ma midagi öelda natuke targemaks, kui ma tõmba
JavaScript funktsioon I liiki juba kirjutasin -
aga kui te vaatate, siis ma lähen üle enne, kui ma kirjutasin selle.
Nii et me seada timeout.
Me ootame paar sekundit.
Tegelikult me ​​ei kavatse oodata, kui Ma ei eksi, viis sekundit.
See läheb millisekundites.
Ja siis see, mida me teeme, on meil läheb hoiatada, et login
aegunud sisse tagasi sisse
Ja me asukohta muuta teise asukohta.
>> Nii et kui ma saadan selle veebilehekülje, et keegi, nad ei kavatse olla
vaatab ringi, rahulik.
Midagi ei juhtu.
Ja viis sekundit, siis läheb öelda oma login aegunud.
Palun logi uuesti sisse
Kui nad klõpsake OK, ma lähen võtma neid teisele veebilehele.
Võib eeldada, et veebilehel läheb olema sarnane veebileht,
nad olid varem.
Ja nad ei kavatse siseneda oma Volituste oma kodulehel asemel
oma veebilehel.
>> Ja nii ma ei saa saata inimesi Post selle lingi.
Ma ütlen, oh, siin on link.
See on pank, näiteks.
Ma ütlen, siin, minge seda linki.
Ja kui nad saadavad need, nad kavatse lugemas ümber.
Ma ei oota 15 sekundit, 20 sekundit ning seejärel ilmub see palun uuesti sisse
logige uuesti sisse.
Te võite seda palju rohkem asju.
See on keeruline, kuna te ei ole näinud JavaScript, nii et võite
ei tea, mõned ülesanded.
Aga kõik, mida pead tegema, on algus koos script, lõpeb skripti.
Ja sa võiksid panna midagi aasta keskel.
>> Alert on funktsioon, oodake.
Window asukoha vie uude asukohta.
Aga sa saad teha palju enamat.
Ja mõte on see, et Kui me võtame ära.
Kui ma lähen näiteks kaks, ja ma panna selle sama koodi, on
ei hakka tööle.
Nii, et see printimiseks kõik läbi, sest Mis sellel veebilehel algselt
kas on siis, kui ma panen siin midagi, see saab välja printida siit.
Nii et see ei prindi midagi välja.
See näide on tegelikult kontrollimiseks näha, kui script on olemas.
Nii et jah, edasi minna.
Küsi minult.
>> Publik: ei saada saada või postitada taotlust?
>> Luciano ARANGO: Jah. nad saatmise get taotluse.
>> Publik: On või?
>> Luciano ARANGO: Jah.
Ka brauserid kasutavad post taotleb.
Aga ma üritan näidata GET nõudmised nii et me saame näha, mis on
tegelikult toimub.
Ja kui me vaatame seda koodi - nii see ei toimi enam.
Ja kui me vaatleme seda koodi, see saab olema näiteks kaks.
Mida see inimene teeb, inimene eest see brauser -
avama, OK -
asendab sõna script.
See on PHP, mis te võiks näinud natuke veel.
>> Ta lihtsalt asendades sõna skripti nimi.
Nii aga kui ma edasi minna ja lihtsalt panna -
kui ma krabama minu kood uuesti ja ma lähen seda muuta natuke.
Selle asemel, et script, ma lähen muuta seda skripti kapitali R.
me näha, kas see kood töötab.
Nii et see ei prindi see välja, mis on hea märk.
Ja loodetavasti kaks sekundit, see läheb avanes.
>> Sinu sisselogimine aegus.
OK.
Kõik on korras.
Nii kontrollides skript pruugi töötada.
Isik -
seda saab vaadata ka script suurtäht, script väiketähed, str puhul
võrrelda, siis veenduge, et nad on sama.
Aga häkker saab ikka omamoodi mida tegime Vigenere kui kolisime
tagasi paar märki, edasi liikuda.
Ja see võib aru saada, kuidas panna script sinna tagasi, et ta saaks süstida
et script.
>> Nii et mida sa tahad kasutada on htmlspecialchars et
kaitsta oma veebilehel.
Ja mida see teeb, on see teeb kindel, et mida sa panna -
Näiteks noteeringud või selle suurem või väiksem -
asendatakse millegi mis ei ole -
las ma suumida siin -
tegelik ampersand.
See asendab need erilised HTML märgid, mida me näeme, kui me
räägime -
oh, see läheb võtab mind tagasi -
need tegelased siin.
>> Need tähendada, et midagi on tulemas.
HTML, mis algavad sulg ütleb meile, et midagi
HTML seotud on tulemas.
Ja me tahame vabaneda sellest.
Me ei taha panna HTML arvesse website.k Me ei taha kasutajal olema
võimalik panna midagi oma veebilehel mis võivad mõjutada nende veebilehel, nagu
skripti või HTML või midagi sellist.
Tähtis on, et te Puhas kasutaja sisend.
>> Nii saavad kasutajad sisestada palju asju.
Ta saab sisestada hunnik asju proovida trikk oma veebilehitsejate veel
Selle skripti koodi.
Mida sa tahad teha, on mitte lihtsalt vaadata script, kuid otsida kõik
mis võiks olla pahatahtlik.
Ja htmlspecialchars teen seda teile, et te ei pea
muretsema selle.
Aga ärge proovige seda ise omamoodi koos oma koodi.
Kas kõik selge XSS?
>> OK.
Lähme SQL süst.
Nii SQL süst on ilmselt number üks haavatavus
eri veebisaite.
Ma mõtlen, et hea näide -
Ma lihtsalt uurides kaugemal Selle asja.
Ja ma leidsin selle awesome artiklis, kus Ma nägin, et Harvard oli rikutud,
oli häkkinud.
Ja ma mõtlesin, et, noh, Kuidas nad seda teevad?
Harvard on kõige vinge, kõige tagada ülikooli kunagi.
Eks ole?
Noh, rikkuda serverid häkkerid kasutada
tehnikat nimega SQL süst.
>> Nii et see juhtub igapäevaselt.
Inimesed unustavad, et võtta arvesse SQL süst.
Harvard teeb.
Ma arvan, et siin on kirjas, Princeton, Stanford, Cornell.
Niisiis, kuidas me - nii see, mis on see SQL süst, mis toob kõik need
inimesed maha?
OK.
Nii SQL on programmeerimiskeel, mis me kasutame juurdepääsu andmebaasidele.
Mis me teeme, on meil valida -
nii et mida see loeb praegu on valida kõik laualt.
>> SQL, muutuks nende andmebaaside mis on lauad täis informatsiooni.
Seepärast vali kõik kasutajad kus nimi on kasutajanimi.
Eks ole?
Antud piisa.
Idee SQL süst on see, et me lisada mõned pahatahtlikku koodi, mis oleks
trikk serveri töötab midagi erinev kui see, mida ta
algselt oli töökorras.
Ütleme kasutajanime, panime või 1 võrdub 1.
Nii me panna või 1 võrdub 1.
Kuidas ta loeb nüüd saab valida Kasutajate kõike
kasutajad - see on kõik -
kus nimi on kasutajanimi, aga kasutajanimi on või 1 võrdub 1.
>> Nii nimi on midagi või 1 võrdub 1.
1 võrdub 1 on alati tõene.
Nii et see alati tagasi teave alates nähtavad.
OK.
Me ei pea olema õige kasutajanime.
Me saame lihtsalt midagi, mida me tahame, ja siis pöördutakse informatsiooni
mida me vajame.
Vaatame veel üks näide.
>> Kui meil on valida kõike kasutajale kus nimi on DROP TABLE kasutajatele -
nii et mida sa arvad, et see tahe kui ma panna kasutajanime
kui DROP TABLE kasutajatele?
Igaüks on aimu?
Jah.
>> Publik: See ei ütle see prügimäele kõik tabelid.
>> Luciano ARANGO: See läheb meile öelda, prügila kõike veebilehel
kõik andmebaasis.
Ja mida inimesed kasutavad seda - nii Ma näitan teile poisid.
Ma keelasin kukutades tabelid sest ma ei taha, et sa
kutid tilk minu tabelid.
Võtame pilk see.
Nii see lihtsalt tõmbab teave teatud isik.
Niisiis, kuidas me teame, kui see on mõjutatud SQL süst.
Me läheme, et kontrollida kiirelt kui me ei pane midagi -
andke mulle kopeerida selle koodi.
Ma lähen üle teine.
Ma lähen üles root ja 1 võrdub 1.
>> See siin, see protsendimärk 23 -
mida ta tegelikult on, kui ma vaata siinsamas -
kuidas HTML võtab numbreid kui sa vaatleme kui panin ruumi
siin - kui ma ruumi midagi siin, muudab see protsenti 2.
Kas te näete seda siin kui panin ruumi?
Kuidas see toimib on see, et sa ei saa ainult Kirjuta ASCII väärtused kaudu HTML.
Niisiis, mida see asendab, näiteks ruumi protsenti 20.
Ma ei tea, kas te olen näinud, et enne.
>> See asendab hashtag koos protsenti 23.
Vajame hashtag lõpus või kinnitus, et saaksime öelda
andmebaasis unustada kommenteerida välja see viimane semikoolon lõpus.
Me tahame, et ei mõtle sellele.
Me lihtsalt tahame seda käivitada kõik et meil on eelnevalt ja
märkusi selle välja.
Võtame pilk see.
>> Nii, kui ma panna midagi valesti - Ütleme näiteks, panin 2 võrdsete
1, et see ei anna mulle midagi.
Kui panin 1 võrdub 1, ja see ei tagasi midagi, see ütleb mulle, et
see on haavatav SQL süst.
Nüüd ma tean, et ükskõik Panin pärast seda -
ja näiteks, tilk TABELID või midagi sellist
kindlasti töö.
Ma tean, et see on tundlikud SQL süst sest ma tean, et
all kapuuts, see laseb mina 1 võrdub 1 asi.
OK?
>> Ja kui me vaatame neid teisi ones, number kaks ja number kolm, see on
teeme natuke rohkem kontrollimise all
hood, mis see on.
Nii et igaüks võimaldada drop midagi veel või proovinud?
Kas te omamoodi saada SQL veel?
Sest ma tean, et te pole näinud seda veel, et see on selline
segadusse teid.
Võtame vaata.
Mis on viis vältida SQLi?
OK.
Nii et see on tõesti oluline, sest sa poisid kindlasti tahame vältida
seda oma veebilehtedel.
>> Kui ei, kõik oma sõbrad hakkavad narrida kui nad langevad kõik
oma tabeleid.
Nii et idee on see, et teil remont SQL teatud viisil, et sobitada
mida kasutaja sisendite teatud string.
Niisiis, kuidas see toimib on teil valmistada andmebaasi.
Saad valida nime, värvi ja kaloreid alates andmebaasi kutsus vilja.
Ja seejärel, kui kaloreid on väiksem ja paneme küsimärk seal
öeldes me sisend midagi teist.
>> Ja värv on võrdne, ja me paneme küsimus märk öeldes me
input midagi teine ​​samuti.
OK?
Ja siis me käivitada, pannes 150 ja punane.
Ja see kontrollib teha kindel, et need kaks -
see massiiv kontrollima, et need kaks on täisarv ja
et see on string.
Siis läheme ja me tõmmata kõik me pane see punane.
See tähendab, et me tõmbad kõik.
See tähendab, et me tegelikult ellu SQL avaldus ja pannakse see tagasi punane.
Siin me teha sama, kuid me teha sama kollane.
Ja me tõmbad kõik.
>> Ja sel viisil, me vältida kasutaja olema võimeline sisendi midagi
see ei ole see, mida me kindlaks, string või täisarv, näiteks.
Ma rääkisin varem, tuginedes teistele.
Kui te hakkate oma projekti, et sa oled kindlasti ei kavatse kasutada
bootstrap või midagi sarnast.
Kas te olete kunagi kasutada Wordpress?
Tõenäoliselt te olete kasutanud Wordpress kõige tõenäolisem.
Niisiis probleem kasutades teiste inimeste asju -
Ma lihtsalt lähen Google reaalne kiire Wordpress haavatavust.
>> Kui ma tõmmake see üles kohe -
Ma sõna otseses mõttes tegin kaks teist Google.
Me näeme, et Wordpress -
see on dateeritud September '12.
26 on ajakohastatud.
Default konfiguratsiooni Wordpress enne 3,6 ei takista nende
teatud lisatud, mis võib lihtsam
piiriülese saidi skriptimine rünnakuid.
Nii kiire lugu, kui me töötasime - nii et ma olin, suvel töö
internatuuri.
Ja me töötame koos omamoodi nagu suur krediitkaardi firma.
>> Ja nad tugineda midagi, mida nimetatakse -
Ma ei tea, kas te olete kunagi mänginud koos toote nimega Joomla.
Joomla on toode, mida kasutatakse kontroll - omamoodi sarnane
Wordpress, kasutada ehitada veebilehed.
Nii et nad olid oma veebilehel töötab Joomla.
See on tegelikult krediitkaardi Ettevõte Kolumbias.
Ma viin teid oma kodulehel reaalne kiire.
>> Nii nad kasutada Joomla.
Ja nad ei ole uuendatud Joomla et viimane täiendus.
Ja kui me olime võttes pilk oma koodi, suutsime tegelikult
mine sisse oma koodi ja varastavad kõik krediitkaardi andmeid, et neil,
kõik krediitkaardi numbrid, nimesid, aadresse.
Ja see oli lihtsalt -
ja kood oli täiesti korras.
Neil oli suur kood.
See kõik oli turvalisus.
Nad kontrollinud kõiki andmebaase.
Nad tegid kindlaks, cross-site skriptimine oli fine.
>> Aga nad kasutada midagi, mis ei olnud ajakohastada, et ei olnud turvaline.
Ja nii, et viis nad - nii, et te kindlasti läheb kasutada muid
Inimeste kood, teiste inimeste raamistikud ehitada oma veebilehel.
Veenduge, et nad on turvaline, sest mõnikord see ei ole sina, see,
eksib.
Aga keegi teeb vea, ja siis kukuks selle tõttu.
>> Paroolid ja PII.
Nii paroole.
OK.
Võtame pilk paroolid päris kiire.
OK.
Palun öelge, et igaüks turvalist -
Ma loodan, et igaüks siin turvalist paroole.
Ma lihtsalt ei jaksa seda nii oletus.
Nii et te olete kindlasti läheb salvestada paroole oma veebilehtedel.
Sa lähed, et teha midagi Logi sisse või midagi sellist.
Oluline on see, et ei salvesta paroolid lihttekstina.
See on väga oluline.
Sa ei taha, et salvestada UUS lihttekstina.
>> Ja sa kindlasti ei taha säilitada seda ühesuunaline räsi.
Mis siis ühesuunaline hash on see, et kui sa genereerida sõna, kui sa paned selle
sõna võtta räsifunktsiooni, siis Loo Tagasi mingisugune segasena
sõnum või segasena komplekti võtmeid.
Ma näitan sulle ühe näite.
Ma lähen hash nad sõna password1.
Nii md5 Hash läheb tagasi mind mingi imelik teavet.
>> Probleem on selles, et inimesed seal et nagu minema veebilehed on
juba arvasin sort kõik md5 hashes.
Mida nad tegid on nad istusid oma arvutid ja nad räsitud iga
ühe võimaliku sõna seal kuni nad said omamoodi, mis see on.
Kui ma peaksin otsima selle üles -
Ma haarasin selle räsi.
Kui ma selle hash alates -
kui ma minema veebilehel, ja ma leida see hash, sest ma saan
andmebaasid, ja ma ootan seda kuni keegi juba arvasin seda minu jaoks.
>> Jah.
Nii et inimesed istusid, ja mis iganes md5 hash et paned, nad ei kavatse
tagasi sulle midagi mis on sõna.
Kui ma hash üks sõna, nagu -
Ma ei tea -
trees2.
Ma ei taha olla pettunud minu Google otsingud.
Siin see on, trees2.
Nii palju veebilehed siiski kasutada md5 hash.
Nad ütlevad, oh, see on turvaline.
Me ei salvestamiseks lihttekstina.
Meil on see md5 hash.
Ja kõik, mida ma pean tegema, on lihtsalt Google number.
>> Ma isegi ei pea arvutama ise.
Võin lihtsalt Google seda ja keegi juba tegi seda minu eest.
Siin on hunnik neid.
Siin on hunnik paroole.
Seega kindlasti ei kasuta md5 hash, sest kõik mida sa pead
tegema, on Google seda.
Nii et mida sa tahad kasutada selle asemel?
OK.
Midagi kutsus soolamine.
Mis siis soolamine on -
te poisid mäletan, kui me olime räägi juhuslikult -
Ma ei ole kindel, mida pset see oli -
oli see pset seal või neli?
>> Me rääkisime leida nõel heinakuhjas.
Ja pset, ta ütles, et sa võiksid tegelikult aru saada, mis juhuslikult
genereerib, sest keegi on juba jooksis juhuslik miljon korda ja lihtsalt
omamoodi moodustunud, mida nad tekitavad.
Mida sa tahad teha, on panna sisendkäibemaksu.
Nii see on, mida soolamine justkui on.
Nad juba arvasin, mida soolamine tagastab iga töö.
>> Mis siis soolamine teeb, on paned soola.
Paned teatud sõna.
Ja see hash et sõna sõltuvalt mida sa panna siin.
Nii et kui ma räsi parool üks selle lause, see läheb räsi
teisiti, kui ma hash password1 erineva lause.
See omamoodi annab see kuhugi alustatakse segamist alustada.
Nii et see on palju raskem välja arvutada, kuid sa võib ikkagi arvutama seda, eriti
kui te kasutate halb sool.
>> Inimesed on juba ka välja mõelnud ühine soolad ja arvasin,
mis see on.
Random soolad on palju parem, kuid parim viis on kasutada
midagi, mida nimetatakse krüpt.
Ja mis krüpt saate ei - nii need funktsioonid on
juba ehitatud teid.
Paljud inimesed unustada, või nad unustavad seda kasutada.
Aga kui ma otsida krüpt PHP, crypt juba tagasi hash string mind.
Ja see tegelikult soolad mitu korda ja hashes see mitu korda.
>> Nii et me ei pea seda tegema.
Nii et kõik mida sa pead tegema, on Kirjuta see krüpt.
Ja see loob hea hash ilma sa muretsema sool
või midagi.
Sest kui sa olid sool, tuleb Teil meeles pidada, mida te soola kasutada
sest kui ei, sa ei saa oma UUS tagasi ilma
sool, mida kasutasite.
OK.
>> Ja ka isiku tuvastamise teavet.
Nii sotsiaalkindlustus, krediitkaardi - see on päris selge.
Aga mõnikord inimesed unustada, kuidas ta tööd on, kui palju infot sa
tegelikult on vaja leida mõned üks inimene?
Keegi tegi uuringu kohta seda teed tagasi.
Ja see oli nagu, kui teil on täielik nimi, sa ei leia
keegi, et lihtsalt.
Aga mis siis, kui teil on täielik nimetus ja oma sünnikuupäev?
Kas see on piisav, et teha kindlaks keegi konkreetselt?
>> Mida teha, kui teil on oma nime ja aadress, et nad elavad?
Kas see on piisav, et leida keegi?
Ja siis nad küsimus, mis on isiku tuvastamise andmed ja
milline peaks te muretsema ei anna ära?
Kui sa annad ära isiku tuvastamise info, et keegi annab sulle,
te võiks saada kaevata.
Ja me kindlasti ei taha seda.
>> Nii et kui sa oled pannes oma kodulehel läbi, ja sul on väga lahe
disain, loodetavasti tegite awesome lõplik projekt.
Kõik saab nagu soovite pane see seal.
Sa tahad teha kindel, et mis tahes te võtate kasutaja, kui see on
isiku tuvastamise andmed, siis tahad teha kindel, et sa oled tegelikult
ettevaatlik.
>> Shell süsti.
OK.
Shell süsti võimaldab sissetungija pääse oma tegeliku käsurea
Teie server.
Ja nii ta on võimeline sõitma kood et te ei suuda kontrollida.
Võtame näiteks selle ilus string siin.
Kui me minna veebilehte uuesti, ma olen lähe koodi süsti.
Niisiis, mida see teeb, on -
see on ka see, mida me Vaadates enne.
Me laseme alla panna mida iganes ta tahab, ja siis välja printida
mida iganes sa tahad.
>> Nii et ma panen kõne.
Mis see on -
see hakkab liitmisel.
Nii ta laseb minul teha mida iganes käsu isiku pooleli
enne ja minu käsk.
Ja Ma töötab süsteem käsk.
Ja need viimase stringid on - mäletan mida ma rääkisin teiega umbes,
et teil kodeerida see URL meetodit.
Kui ma saan seda nüüd -
Ma näitan sulle, siin -
te näete, et ma lõpetasin kuni töötab käsk.
>> See on tegelikult tegelik server et minu veebileht töötab.
Nii et me ei taha, et sest ma saan käivitada -
see server ei ole minu oma.
Nii et ma ei taha segi ajama oma õde, Marcus serverisse.
Aga sa võid joosta rohkem käske mis on ohtlikud.
Ja potentsiaalselt võid kustutada faile, eemaldage katalooge.
Võin eemaldada teatud kataloogi kui Ma tahtsin, aga ma ei taha
seda tegema, et Marcus.
Ta on tore poiss.
Ta laena mulle oma server.
Nii et ma lasen tal off kohta hea.
>> Niisiis, mida me ei taha kasutada - me ei soovite kasutada eval või süsteem.
Eval või süsteem võimaldab meil teha neid süsteem kõned.
Eval abil hinnata.
Süsteem tähendab ma jooksin.
See kestab midagi süsteemis.
Aga me ei saa keelustada need asjad PHP, nii et me ei kasuta neid.
Ja file upload.
Ma kavatsesin seda awesome asi file upload.
Aga nagu ma ütlesin teile, mu fail upload asi ei tööta.
Kui ma üles laadida fail kohe -
kui ma üles laadida faili, ja see pilt -
sul upload asi mis on pilt.
See on hea.
Midagi ei juhtu.
>> Aga kui sul on upload fail, Näiteks, kui kasutaja tegelikult lisatud
PHP fail või exe fail või midagi niimoodi, siis võiks
on probleem.
See töötas varem.
Kahjuks minu jaoks, see on ei tööta enam.
Kui ma näiteks seda faili üles laadida, ma olen ei saada luba saata
fail tõttu server ei ole minu oma.
Nii et see mees on tõesti tark.
>> Nii et me ei taha -
Ma lähen näitan sulle, poisid -
OK, need on mõned lahedaid tööriistu.
Nii et need -
minna - kui te poisid on Firefox - loodetavasti sa teed.
Seal on kaks lisandmoodulid, mida nimetatakse SQL süstitakse Mina ja Cross-Site Script mind.
Nad avavad nii vähe side külgedel.
Ja kui ma minema CS60 näiteks -
nii et mida ta teeb on see välja kõigi vormide -
Loodetavasti ei saa hädas selle eest.
>> Aga OK.
Siin on pin süsteem.
Nii et kui ma hakkate otsima augud süsteem, esimene asi, mida ma ei
avada see ilus väike tööriist küljel.
Ja ma katsetada vormid auto rünnakuid.
Ja mis see teeb, on see aeglaselt avada kamp brauseritega.
Siin on hunnik brauseritega.
Ja ta üritab iga kombinatsioon piiriülese saidi skriptimine
et võib-olla on, kui näed küljel.
>> Ja see annab mulle tulemus sort, mis on vastus.
Kõik möödub.
Ilmselt nad kõik läbi.
Ma mõtlen, nad on väga targad inimesed seal.
Aga kui ma joosta -
Mul on olnud kordi, enne kui ma saan seda õpilaste lõplik projekte.
Ma lihtsalt käivitada SQL süstitakse Mind kõik eri rünnakuid.
Ja ta üritab SQL süstida see pin server.
Nii et kui me kerige jaoks Näiteks öeldakse -
see on hea, kui ta naaseb.
>> Seega katsetatud mõned teatud väärtusi.
Ja server tagasi koodi, mis oli negatiivne.
Eemalda ajutiselt.
See on hea.
Ta püüab kõiki neid teste.
Nii võid lihtsalt käivitada -
Ma soovin, et võiks leida veebilehel reaalne kiire, et ei lase mul -
võibolla CS50 poest.
>> Wow, see läheb võtab liiga kaua aega.
Ma lasen esimese katse ei lõpeta parem.
Nii et see kaevates.
Nii et need on kolm asja.
Need vahendid on tasuta.
Võite alla laadida ja käivitada neid oma veebilehel, ja see ütleb teile, kui
teil on piiriülese saidi skriptimine kui teil on SQL, kui teil on
midagi sarnased.
Ma mingi jama.
>> Mis on oluline -
OK, nii et kunagi usalda kasutaja.
Ükskõik kasutaja sisendite teile teha kindel, et puhasta seda, siis puhastage see
saad kontrollida õigeid asju, et see annab sulle, mida sa
tahan, et ta annab sulle.
Alati tuleb ajakohastada mida raamistikud et sa tegelikult kasutades.
Kui te kasutate midagi bootstrap -
Ma tean, et te ei kavatse kasutada bootstrap sest ta läheb minema
üle selle varsti klassi -
ja Wordpress või midagi sellist, tavaliselt see võib häkkinud.
>> Ja siis sa isegi ei tea.
Sa oled lihtsalt töötab oma veebilehel.
Ja see on täiesti turvaline.
Ja sa minna.
Nii et ma olen kalastamise tõesti varakult.
Aga ma tahan tänada Pentest Labs.
Ma lähen näitan teile midagi nimetatakse Pentest Labs.
Kui te olete tõesti huvitatud mida turvalisuse tegelikult on, seal on
kodulehel nimetatakse Pentest Labs kui te minna just nüüd.
Noh, see pole see.
Ma lihtsalt kasutada seda niimoodi.
Google ütleb mulle vastuse.
>> OK.
Ja see õpetab sind kasutada - nii see ütleb, õppida web tungimist
katsetamine õige tee.
See õpetab teile -
Loodetavasti oled eetiline inimene.
Aga see õpetab teile, kuidas saate vaadata kuidas saad sees veebilehed.
Ja kui sa õpid, kuidas sa saad sees veebisaite, saate teada, kuidas
kaitsta ennast saada sees veebilehed.
Las ma suumida, sest äkki te ei vaata seda õigust.
>> Alates SQL süst kest, nii et omamoodi, kuidas ma saan SQL
süsti laduma.
Ja alla laadida selles virtuaalne masin.
Ja virtuaalne masin juba on koos kodulehel, et sa oled
kavatsen proovida seda.
Sa alla laadida selle PDF.
Ja see näitab rida-realt, mida mida sa pead tegema, mida vaadata.
See on see, mida ründaja tegelikult ei saada sees veebilehel.
>> Ja mõned see kraam on keeruline.
Ma soovin, et ma võiks minna üle rohkem asju teiega.
Aga ma kardan, et te ei ole tõesti -
see on see, mida ma läksin üle koos kutid, web testid
jaoks Inventar.
Tõesti ei tea, mis SQL ja milleks -
Carl Jacksoni seminar on fantastiline samuti.
Te ei tea, sort mis see on.
Aga kui sa lähed sellele leheküljele, ja sa laadida need õpetused ja need
PDF, võite võtta pilk sorti mida turvalisuse valdkonnas tõepoolest
Inventar, saad teada, kuidas saada sees veebilehed ja kaitsta
ise seda.
>> Nii et kui ma teen super kiire ülevaate, siis see tuleb takistada murdskriptimise.
Te soovite kasutada htmlspecialchars iga kord, kui kasutaja sisendite midagi.
Vältida SQL süst.
Kui te seda teete, et sa oled juba parem kui oli Harvardi
kui nad said rikutud.
Ja veenduge, et paroolid ei ole teksti.
Veenduge, et te mitte ainult ühesuunaline räsi neid aga, et te kasutate krüpt, PHP
funktsioon, mis ma näitasin kutid.
Nii, siis peaks olema hea.
>> Samuti, kui teie sõbrad teile, käivitada SQL Süsti mind oma veebilehtedel.
Run murdskriptimise oma veebilehtedel.
Ja te näete, palju need veebilehed on ton kohti.
See on uskumatu, kui palju inimesi unustada Puhas oma andmebaase või teha
kindel, mida selle isiku andmed sisestanud ei ole script koodi.
OK.
Ma justkui lõppes väga vara.
Aga kui kellelgi on küsimusi midagi, mida saab tulistada mind küsimus.
Jah.
Mine, mine.
>> Publik: Ma tahan küsida, Kas oskate selgitada, kuidas faili
upload täpselt töötab.
>> Luciano ARANGO: Jah.
Nii et lubage mul teile näidata pilti laadige reaalne kiire.
Nii file upload -
probleem vaimukus file upload praegu on see, et -
Ma lähen, et avada kood nii kutid vaata kood kulisside taga.
Ja see on upload.
Siin on kood faili üleslaadija.
>> Me püüame minna seda Kataloog siia.
Ja me üritame, kui me sisestada fail, isset faili - nii siis, kui on
faili failides, et pilt, siis püüame liikuda siin.
Meil haarata fail siia.
Meetod on POST, tüüp, pildi faili.
Ja me saadame selle faili.
Ja siis, kui me seda saada, nii et üks fail on pilt, me üritame saata
sellesse kataloogi.
>> Probleemiks on, et veebileht ei ole lased mul minna sellesse kataloogi,
sest ta ei taha, et ma tagasi minna.
Ta ei taha, et mind minema -
Ma pean minema - et siin on laadida.
Siin on pildid.
Ma pean minema kogu tee tagasi alustades ja pane see sinna ja siis
mine ja pane see kataloog.
Nii et kui ma jooksin terminali aknas ja ma tahtsin liikuda fail -
[Kuuldamatu]
näen seda.
Kui ma tahtsin liikuda faili, mul on panna faili nimi ja seejärel
terve tee ma tahan saata see.
>> Ja siis server ei ole lased mul minna.
Ja nii see ei lase ma saan selle faili.
Aga tavaliselt -
nii seal on kood laadige fail.
Nii tavaliselt juhtub see, et inimene pole kontrollida, kas minu fail
lõpeb. jpeg, et ma tahaks vaadata.
Lubage mul avada näiteks liiga kiirelt.
>> OK.
Selle isiku õigus -
nii näiteks kaks kontrollib kui preg_match -
siin see on siin -
veenduda, et lõppeb PHP, mis on hea.
See on hea.
Aga seal on päris suur Probleem selles.
See on hea.
Aga kui ma üles fail nimega myfavoritepicture.php.jpeg, suutsin
siiski potentsiaalselt vabaneda jpeg ja käivitada it.k See PHP on ohtlik.
Sa ei taha, et isikul oleks joosta kood oma veebilehel.
>> Aga siis. Jpeg laseb see läbi.
Mõte on see, mida sa tõesti tahad teha ei võta failid, A. Aga OK, mida
sa tõesti tahad teha, on tagada, et Lugedes üle kogu maailma.
Ja seal on midagi. Php ta.
Ei ole. PHP kogu faili nimi.
>> Publik: Aga sa võiksid panna. jpeg otsas.
Serverid siiski käivitada koodi.
>> Luciano ARANGO: Ei, see ei ole joosta alguses.
Sa pead minema tagasi ja proovige et näha, kui saate -
>> Publik: Nii et me peame -
OK, lihtsalt üks komplekt, mis hõlmab -
>> Luciano ARANGO: Jah.
>> Publik: OK.
>> Luciano ARANGO: Jah.
OK.
Muid küsimusi?
OK.
Ma jätan selle üles ja sorteeri ja proovida, et näha, kas te saate -
teised on veidi rohkem keeruline, kuna need vajavad palju
rohkem teadmisi SQL kui lihtsalt algab teadmisi web SQL ja
Mis on siis JavaScript välja.
Aga ma lähen, et proovida seda seisu hoida, ja loodetavasti kutid õpivad
sellest ja püüame heita pilgu mida saate teha ja kui palju näiteid
saad läbi.
>> Igaüks on mingeid muid küsimused selle kohta?
Lase käia.
Jah, tulistada, tulistada.
Jah, lase käia.
Lase käia.
>> Publik: OK.
Kuulsin, kuidas Magic Quotes pole piisavalt turvaline.
>> Luciano ARANGO: Mis -
Magic Quotes?
>> Publik: Jah.
Seega lisab - nii et kui sisend midagi, ta on alati lisab jutumärgid.
>> Luciano ARANGO: Jah.
Jah.
OK.
>> Publik: Ja siis ma küll, et töötas, aga siis ma otsisin ta üles.
Ja ta ütles, et see ei ole hea.
Aga ma ei ole kindel, miks.
>> Luciano ARANGO: Jah.
>> Publik: Ärge kasutage Magic Quotes, sest see ei ole turvaline.
>> Luciano ARANGO: OK.
Nii Magic Quotes on kui sisestate SQL ja see juba lisab quote teile.
>> Publik: Alati lisab jutumärgid ümber iganes paned sisse
>> Luciano ARANGO: Jah.
Niisiis probleemi sellega, et -
Ma võtan pilk -
>> Publik: Kuidas see omandada SQL?
Või ma arvan, et see võiks olla nagu quote valida.
>> Luciano ARANGO: Jah, sa pead hea hinnapakkumisi SQL.
>> Publik: Ei, aga server see sinu jaoks.
>> Luciano ARANGO: Need väikesed hinnapakkumisi siin on need veidi hinnapakkumisi?
>> Publik: Jah.
>> Luciano ARANGO: Jah.
Probleem on selles, et sa ei kommenteeri välja viimane -
OK, nii et mida ma saan teha, on võin kommenteerida out - Võtame pilk - las ma
avada teksti redigeerida faili.
Las ma muuta seda siin otse.
OK.
Kas te näete, et selgelt?
Mida ma saan teha, on võin kommenteerida välja viimane.
See kommenteeri välja viimane.
Ja siis ma panen ühe siia panna kõik pahatahtliku kraami.
>> Nii et kasutaja on tegelikult sisestanud, eks?
Kasutaja ei sisestanud asjad, eks?
See on see, mida ma lähen sisendit inimene üritavad sees.
Ma lähen panna -
see on üks jutumärk.
See on lihtsalt väändunud kogemata.
Ja mis siis kood ei kavatse seda teha -
sorry, ma lähen seda.
Mis koodi läheb vaja on see läheb lisada esimese
jutumärgid siin.
Ja see läheb lisada viimase jutumärk samuti.
>> Ja see on ka kavatse lisada viimane, viimane jutumärk.
Aga ma kommenteerides need tsitaat märgib ära, et nad ei tööta.
Ja ma viimistlus see tsitaat märgi siia.
Kas te saate aru?
Oled sa eksinud?
Ma ei kommenteeri viimane tsitaat mark ja hoolitseda
esimene jutumärk.
>> Publik: Ja just viimistlus esimene.
>> Luciano ARANGO: Jah.
Ja lihtsalt lõpetada esimene.
Jah, see on õige.
See on, mida teha saan.
Jah.
Muid küsimusi, nagu on?
See on hea küsimus.
Ei, jah, võib-olla.
Loodetavasti te kutid omamoodi teha mõttekam kui õpid SQL ja
asjad niimoodi.
Aga veenduge, et te -
hoida neid vahendeid käekella.
Sorry, et need vahendid on siin.
Need vahendid on suurepärane.
Kui kellelgi on küsimusi, saab ka emaili mulle.
See on minu tavaline email.
Ja see on minu töö e-posti, mis on siis, kui ma töötan merel.
>> OK, thanks.
Aitäh, poisid.
Sa oled hea minna.
Sa ei pea siin olema.
Ärge plaksutama.
See on imelik.
OK, tänud, poisid.