>> Luciano Arango: OK, knaboj.
Mia nomo estas Luciano Arango.
Mi estas duan en Adams Domo.
Kaj ni iras por paroli pri retejo sekureco aktiva defendo.
Do mi laboras por la Oficejo de Informo Sekureco en maroj.
Kaj super la somero, mi internigita ĉe SeguraTec, kiu estis informo
sekureco kompanio kiu servis cxar la Banko de Columbia.
Tio estas plejparte kie mi lernis kion mi lernis ĝis nun.
>> Kaj do kelkaj el la materialo kiun ni estas tuj transiru hodiaŭ, ni havas ne
vere raportis en klaso.
Sed ni baldaux.
Ĝi tuj estos kiel SQL, JavaScript.
Kaj ni ne vere iris trans ĝin.
Do mi povas ordigi de flugo tra ĝi, kaj eble vi ne konas iujn aferojn.
Sed baldaŭ, vi lernos ĝin.
Kaj gxi donos cxiujn sencon.
Ankaŭ alia afero -
resti etikaj.
Kelkaj el la aferoj ke vi lernas, vi povus uzi en ne-etika konduto.
>> Se ĝi estas via, definitive provu.
Mi definitive motivi you guys provi viajn proprajn servilojn, provu
iras ene de ili.
Vidu se ili povas penetri ilin, se vi povas ricevi ene de ili.
Sed ne al iu ajn alia.
Policanoj ne vere ŝatas la ŝercoj kaj la tuton, ni metas ĉi tie.
Ni estis rompado ĉirkaŭe.
Ili ricevas vere koleros.
>> Do estrus super al ĉi tiu retejo.
Mi havas ĝin malfermis ĝuste ĉi tie.
Ĉi tiu estas paĝaro, kaj ĝi havas faskon da ekzemploj.
Kio okazas estas ke la unua ekzemplo estas ia tuj estos multe pli facile
ol la lasta ekzemplo en senco ke la unua ekzemplo
estas tute necerta.
Kaj la lasta estas speco de kia normala ttt sekureco persono farus.
Sed vi povas ankoraŭ speco de akiri ĉirkaŭ tiu.
Kaj ni tuj enfokusigi sur unu Kaj du, ekzemploj unu kaj du.
>> OK.
Ni komencu per kruc-ejo scripting.
La JavaScript estas kuri sur la kliento retumilo.
Ĝi estas programlingvo, kiun vi uzos kuri sur la kliento retumilo tiom
Vi ne devas ĝisdatigi la retejon kaj reiri al la servilo.
Vi havas ĝin kuri.
Ekzemple, Facebook, vi ne havas reŝargi la retejo por nova statuso
ĝisdatigojn veni supren.
Oni uzas JavaScript por generi cxiuj tiuj aferoj.
Do ni povas injekti malican JavaScript en la retejoj.
Kaj tiu vojo, kiam ni sendos ligon al iu, ni povus ia sendu ĝin per
kelkaj el la kodo kiun ni deziras.
>> Tie estas konstanta kaj ne-persista Javascript -
persista kaj ne-persista kruco-ejo skripta, mi volas diri.
Kaj la diferenco estante tiu persista estas JavaScript kiu estos
savita en la paĝo.
Kaj ne-persista estos JavaScript ke efektive nur okazi iam.
Do ni rigardu ekzemplon reala rapida.
>> OK.
Do ĉi tiu TTT-ejo, simpla, nenio okazas cxi tie.
Kaj ni tuj provi enŝovu iun JavaScript.
Do la vojon ni komencas skribi JavaScript estas ni komencu per la komenco skripto.
Kaj ni fermas ĝin per skripto.
Ni simple tuj meti mesaĝon -
Mi montros al vi -
garde.
Garde estas funkcio kiu JavaScript uzu por montri ion.
Do ni provu ĝin reala rapida.
Mi tuj iros, garde saluton.
Nu, mi forgesis meti -
OK.
Do tio estas simpla.
>> Ni metis Ĝavaskripton en retejo, kaj ĝi elkreskis.
Kaj gxi ian nur okazas sur nia retejo, ĉu ne?
Do ĝi ŝajnas kiel ĝi ne estas problemo, ĉu ne?
Mi volas diri, kiamaniere vi povis uzi ĉi malice?
Do la formo kiu hackers fari tio estas vere simpla.
Ili tuj kaptu ĝin.
Ili povas sendi tiun ĉi ligon al vi.
Se mi sendos tiun ĉi ligilon al vi ĝuste nun, kaj malferminte ĝin, ŝi tuj
diri, saluton, dirante, ke mia retejo Estas diras al vi saluton.
>> Kaj tial, se mi dirus ion iom inteligenta, se mi tiri supren
Javascript funkcion mi specon de la jam skribis -
sed se vi rigardas ĝin, mi iros super ĝi, antaŭ ol mi skribis ĝin.
Do ni iras, por kontrauxmeti tempolimo.
Ni tuj atendi paro sekundoj.
Fakte, ni tuj por atendi, se Mi ne eraris, kvin sekundoj.
Ĉi tio iras en milisekundoj.
Kaj poste, kion ni faros estas ni tuj alarmus ke la ensaluto
ekster la datlimo, por ensaluti re-ensalutu
Kaj ni tuj ŝanĝos la situo al malsama situo.
>> Do, se mi sendas tiun retejon por iu, ili tuj estos
foliumantaj ĉirkaŭe, trankvila.
Nenio okazas.
Kaj en kvin sekundoj, ĝi okazas diri, via salutnomo ekster la datlimo.
Bonvolu ensaluti re-ensalutu
Iam oni klaku OK, mi tuj prenu ilin al alia retpaĝaro.
Supozeble, la retejo tuj esti simila al la retejo kiu
ili estis en antaŭe.
Kaj ili tuj ensaluti iliaj akreditaĵojn en mian retejon anstataŭ
ilia paĝaro.
>> Kaj tial mi povas sendi al homoj la retposxtu per ĉi tiu ligilo.
Mi diros, ho, jen ligilo.
Tio ĉi estas banko, ekzemple.
Mi diras, tien, iru en tiun ligilon.
Kaj unufoje ili sendu gxin, ili estas tuj estos foliumantaj ĉirkaŭe.
Mi povas atendi dum 15 sekundoj 20 sekundoj, kaj tiam pop ke bonvolu ensaluti reen en
subskribi dorson.
Vi infanoj povas provi ĝin kun multe pli da aĵoj.
Ĝi estas komplika, ĉar vi infanoj ne vidis JavaScript, do vi eble
Ne scias iujn funkciojn.
Sed ĉiuj vi devas fari, estas komenco per skripto, fini kun skripto.
Kaj vi povus meti ion en la mezo.
>> Garde estas funkcio, atendu.
Fenestro situo prenas vin al nova loko.
Sed vi povas fari tiel multe pli.
Kaj tial la ideo estas ke ni prenu, ke ekstere.
Se mi iras al ekzemple du, kaj mi meti en tiu sama kodo, ĝi estas
ne tuj funkcias.
Do ĝi estas presanta ĉio ĉar kion ĉi retejo origine
faras estas, se mi metos ion ĉi tie, gxi devos printi ĝin ĉi tie.
Do ĝi ne estas presi ion eliri.
Ĉi tiu ekzemplo estas reale kontrolanta Por vidi, cxu skripto estas tie.
Do jes, iru antaŭen.
Petu min.
>> Spektantaro: Ĉu ne sendi oni ricevas aŭ sendi peton?
>> Luciano Arango: Jes. ili estas sendante get peton.
>> Spektantaro: ĝi estas?
>> Luciano Arango: Jes.
Ankaŭ legiloj uzas post petoj.
Sed mi provas montri get petoj tiel ke ni povu vidi kio estas
reale okazas.
Kaj do, se ni rigardas tiun kodo - Do ĝi ne funkcias plu.
Kaj se ni rigardu tiun kodon, ĝi tuj estos en ekzemplo du.
Kio ĉi persono estas faranta, la persono zorge de ĉi retumilo -
malfermi, OK -
anstataŭas la vorto libreto.
Ĉi tio estas PHP, kiuj vi uloj multobligita vidis iom de ankoraŭ.
>> Li simple anstataŭante la vorto skripton kun nomo.
Do tamen, se mi iras antaŭen kaj ĝuste meti en -
se mi ekpreni mian kodo denove, kaj mi iros modifi gxin nur iomete.
Anstataŭ skribo, mi tuj ŝanĝos ĝin Script kun majuskla R. Kaj
ni iras al vidi se tiun kodon funkcias.
Do tio ne presi ĝin, kio estas bona signo.
Kaj espereble en du pli sekundoj, ĝi tuj pop up.
>> Via salutnomo ekster la datlimo.
OK.
Ne gravas.
Do kontrolanta por skripto multobligita Ne nepre funkcios.
La persono -
Ĝi povas ankaŭ kontroli skripto majuskle, skribo minuskla, str kazo
kompari, certigu ke ili estas la samaj.
Sed la hacker povas ankoraŭ fari ian kio ni faris en Vigenère kiam ni translokiĝis
reen paron karakteroj, movi antaŭen.
Kaj tio povas diveni kiel meti skripton reen en tie do ĝi povas injekti
tiun skripton.
>> Do, kion vi volas uzi Estas htmlspecialchars al
protekti vian retejon.
Kaj kion tio faras estas tio faras certas ke tio, kion vi metis en -
ekzemple, citaĵoj aŭ tiun pli granda ol aŭ malpli ol -
estas anstataŭigita per io ke ne estos -
lasu min zomi tie -
la efektiva ampersand.
Ĝi anstataŭigos tiujn specialajn HTML karakterojn, ke ni vidos kiam ni estas
parolante pri -
Ho, tiu tuj revenigas min, por -
tiujn karakterojn ĝuste ĉi tie.
>> Tio signifas, ke io venas.
Por HTML, ke komencante krampo diras ni, ke io
HTML-rilatajn venas.
Kaj ni volas liveri de tiu.
Ni ne volas meti la HTML enen website.k Ni ne volas, ke la uzulo estu
kapabla meti ion en sia retejo kiu povas tuŝi lian retejon, kiel
skripto aŭ HTML aŭ iu simila.
Kio gravas estas, ke vi sanitize la uzulo enigon.
>> Do la uzantoj rajtas enigo multaj aĵoj.
Li povas enigo faskon da ŝtofo por provi trompi via retumilo en ankoraŭ
kurante ĉi skripton kodo.
Kion vi volas fari, estas ne nur rigardu por skripton, sed serĉi ĉiun
kiu povus esti malica.
Kaj htmlspecialchars faros tion por vi, tiel vi ne devas
zorgi pri tio.
Sed ne provu fari por vi mem ia per viaj propraj kodo.
Ĉu ĉiuj klara je XSS?
>> OK.
Ni iru al SQL injekto.
Do SQL injekto estas probable la numero unu vundebleco
en diversaj retejoj.
Mi volas diri, bona ekzemplo -
Ĵus mi esploranta malproksima pro cxi tiu afero.
Kaj mi trovis ĉi awesome artikolon, kie Mi vidis, ke la Harvard estis rompita,
Estis piratita.
Kaj mi scivolis, bone, kiom ili farus tion?
Harvard estas la plej terura, plej sekurigi universitato eterne.
Ĝuste?
Nu, por rompi la serviloj, la hackers uzis
tekniko nomata SQL injekto.
>> Do tio okazas en unu tago al tago bazo.
Homoj forgesos preni konton por SQL injekto.
Harvard faras.
Mi pensas ĝi diras ĉi tie, Princeton, Stanford, Cornell.
Do kiel ni faras - do kion estas ĉi SQL injekto kiuj kondukas ĉiuj tiuj
popolo malsupreniras?
OK.
Do SQL estas programlingvo, kiu ni uzas por aliri datumbazoj.
Kion ni faras estas ni elektu -
do kion ĉi legas ĝuste nun estas unuaranga ĉion de la tablo.
>> SQL, ĝi ŝanĝas en tiujn datumbazoj kiuj havas tabloj plenaj de informoj.
Do elektu ĉion de uzantoj kie la nomo estas uzantnomon.
Ĝuste?
Simplaj sufiĉas.
La ideo de SQL injekto estas ke ni enŝovu iun malican kodo kiu volas
trompi la servilo en kurante ion malsama ol kio
origine ĝi kuras.
Do diru al uzantonomo, ni metas en aŭ 1 estas 1.
Do ni metas en aŭ 1 estas 1.
La maniero ĝi legos nun estos unuaranga de la uzantoj, ĉiu el
uzantoj - tio ĉi estas ĉio -
kie nomo estas salutnomo, sed uzantonomo estas aŭ 1 estas 1.
>> Do nomo estas nenio aŭ 1 estas 1.
1 egalas 1 estas ĉiam vera.
Do tiu ĉiam revenas informoj de la uzantoj.
OK.
Ni ne bezonas havi la korekta uzantnomon.
Ni povas nur havi ion, ke ni volas, kaj gxi reiros informoj
ke ni bezonas.
Ni rigardu alian ekzemplon.
>> Se ni elektas ĉion de uzanto, kie nomo estas DROP TABLE uzantoj -
do kion vi opinias ĉi volo faru se mi metas en la uzantnomon
kiel DROP TABLE uzantoj?
Iu ajn havas ideon?
Jes.
>> Spektantaro: Ĝi tuj diros ĝin renversi ĉiuj tabloj.
>> Luciano Arango: Ĝi tuj informi nin por renversi ĉion en la paĝaro,
ĉio en la datumbazo.
Kaj kion homoj uzas tion por - tia Mi montros al vi knaboj.
Mi malaktivigita delasante la tabloj ĉar mi ne volis vin
knaboj faligi miajn tabelojn.
Ni rigardu ĉi.
Do tiu simple iras ĝis la informoj por certa persono.
Do kiel ni scias, ĉu tio estas afekciita per SQL injekto.
Ni tuj kontroli realajn rapida se ni povas meti ion -
lasu min kopii tiun kodon.
Mi tuj iros super gxi en sekundo.
Mi tuj metos radikon kaj 1 estas 1.
>> Tiu rajto tie ĉi procento signo 23 -
kio ĝi vere estas, se mi aspektas ĝuste ĉi tie ĉe -
la vojo HTML prenas en nombroj, se vi rigardu, kiam Mi metos en spaco
tie - se mi spaco ion ĉi tie, ĝi ŝanĝas ĝin al procentoj 2.
Ĉu vi knaboj vidas tiun ĉi tie kiam mi metis en spaco?
La funkcimaniero estas ke vi povas nur sendu Askio valoroj tra HTML.
Do ĝi anstataŭas, ekzemple, spaco kun procento 20.
Mi ne scias se vi infanoj vidis, ke antaŭe.
>> Ĝi anstataŭas etiketon kun procento 23.
Ni bezonas etiketon ĉe la fino de aŭ deklaro tiel ke ni povas diri la
datumbaza forgesi komenti ekstere ĉi lastaj punktokomo ĉe la fino.
Ni volas, ke ĝi ne pensi pri tio.
Ni nur volas kuri ĉio ke ni devas anticipe kaj
diri, ke el.
Ni rigardu ĝin.
>> Do se mi estus meti iun malbone - diru ekzemple, mi metis 2 egaluloj
1, ĝi ne donas al mi nenion.
Kiam mi metis en 1 egalas 1, kaj tio faras revenu ion, ĉi diras al mi ke
tio estas vundebla an SQL injekto.
Mi nun scias, ke kion ajn Mi metos poste ĉi -
kaj ekzemple, DROP TABLES aŭ io simila
definitive labori.
Mi scias ke estas vundebla al SQL injekto ĉar mi scias, ke
sub la kapuĉo, ĝi estas lasanta mi faros la 1 egalas 1 afero.
OK?
>> Kaj se ni rigardas tiujn aliajn ones, numero du kaj numero tri, ĝi estas
tuj fari iomete pli de kontrolanta sub la
kapuĉo el kio ĝi estas.
Do cxiu ebligi la guto io tamen aŭ provis?
Ĉu vi guys ia get SQL ankoraŭ?
Ĉar mi scias, vi uloj kiuj ne havas vidis ankoraŭ, do ĝi estas speco de
konfuzante por vi guys.
Ni rigardu.
Do kio estas la vojo por preventi SQLI?
OK.
Do tiu estas vere grava, ĉar vi knaboj definitive volas malhelpi
tio en viaj retejoj.
>> Se ne, cxiuj viaj amikoj tuj moki vin kiam ili falas ĉiu
via tabeloj.
Do la ideo estas ke vi rebonigi la SQL en certa maniero, dum kiu vi kongruas
kion la uzanto enigas per certan ĉenon.
Do la maniero ĉi verkoj estas vi pretigi la datumbazon.
Vi elektu nomon, koloro, kaj kalorioj de datumbazo nomata frukto.
Kaj tiam kie kalorioj estas malpli ol, kaj ni metos demandosignon tie
dirante ni tuj enigo io en unu sekundo.
>> Kaj koloro egaluloj, kaj ni metu demandon markon dirante ni tuj
enigo io en dua tiel.
OK?
Kaj tiam ni faros ĝin, metante en 150 kaj ruĝa.
Kaj tion kontrolos fari certas, ke tiuj du -
tiu tabelo estos kontroli, ke tiuj du estas entjero kaj
ke tio estas ĉeno.
Tiam ni iru, kaj ni elirigu ĉiuj, ni metis ĝin en ruĝa.
Tio signifas ke ni elirigu por cxiuj.
Ĝi signifas, ke ni reale ekzekuti la SQL deklaron kaj remetis ĝin en ruĝa.
Tie ĉi ni faros la saman, sed ni fari la saman por flava.
Kaj ni elirigu por cxiuj.
>> Kaj en ĉi tiu maniero, ni malhelpi la uzanto de povi enigi ion
kiu ne estas, kion ni specifita, ŝnuro aŭ entjero, ekzemple.
Mi parolis antaŭe pri dependi aliaj.
Kiam vi uloj komenci vian projekton, vi estas plej definitive tuj uzi
startigi aŭ io simila.
Ĉu vi uloj iam uzis Wordpress?
Probable vi uloj uzintaj Wordpress plej verŝajna.
Do la problemo pri uzi fremdajn aferojn -
Mi simple iras al Google reala rapida Wordpress vundebleco.
>> Se mi tiri ĉi supren ĝuste nun -
Mi laŭvorte faris du dua Google.
Ni povas vidi ke Wordpress -
tio estas datita kiel Septembro '12.
26 estas ĝisdatigita.
La defaŭlta agordo de Wordpress antaŭ 3,6 ne malhelpi tiujn
certaj alŝutoj, kiu potenco plifaciligi
kruco-ejo skripta atakoj.
Do rapida rakonto, iam ni laboris kun - do mi trovis, en somero, laborante kun
internulejo.
Kaj ni laboris kun ia kiel granda kreditkarto kompanio.
>> Kaj ili fidi iun nomita -
Mi ne scias se vi uloj iam ludis kun produkto nomita Joomla.
Joomla estas produkto kiu estas uzata por kontrolo - speco de simila al
Wordpress, uzata por konstrui retejojn.
Do ili devis ilia retejo laborante en Joomla.
Tiu estas fakte kreditkarton kompanio en Kolombio.
Mi prenos vin al sia retejo reala rapida.
>> Do ili uzis Joomla.
Kaj ili ne estis ĝisdatigita Joomla al la plej nova aldono.
Kaj do, kiam ni prenis rigardu sian kodon, ni povis reale
iru en siaj kodo kaj sxtelus ĉiuj kreditkarto informo kiun ili havis,
ĉiuj kreditkarto nombroj, la nomoj, la adresoj.
Kaj tio estis ĝuste -
kaj ilia kodo estis perfekte bone.
Ili havis grandajn kodo.
Ĉio estis sekureco.
Ili kontrolis ĉiuj datumbazoj.
Ili certigis kruco-ejo skripta fartis bone.
>> Sed ili uzas iun kiu ne estis ĝisdatigita, ke ne estis sekura.
Kaj do, kiu kondukis ilin - do you guys estas definitive tuj uzi aliajn
popola kodo, fremda kadrojn por konstrui retpagxon.
Certiĝu ke ili estas sekuraj cxar foje ĝi ne estas vi, kiu
eraras.
Sed iu alia eraras, kaj tiam vi falos pro tio.
>> Pasvortoj kaj pii.
Do pasvortojn.
OK.
Ni rigardu pasvortoj reala rapida.
OK.
Bonvolu diri al mi, ke ĉiuj Uzas sekura -
Mi esperas ke ĉiuj ĉi tie Uzas sekura pasvortojn.
Mi simple lasi ke en tiom supozo.
Do vi uloj estas definitive tuj stoki pasvortojn por via TTT-ejojn.
Vi iras fari ion kiel havas salutnomon aŭ io kiel tio.
Kio gravas estas ne stoki pasvortojn en plata teksto.
Ĉi tio estas ege grava.
Vi ne volas butika pasvorto en plata teksto.
>> Kaj vi certe ne vere volas stoki ĝin en unu maniero hash.
Do kio estas unu maniero hash estas ke kiam vi generi vorto, kiam vi metis ĉi
vorto en krada funkcio, gxi generi reen ia kamufla
mesaĝo aŭ kamufla aro de ŝlosiloj.
Mi montros al vi ekzemplon.
Mi iras al hash ili vorto password1.
Do md5 hash tuj revenos al mi ia stranga informo.
>> La problemo estas ke homoj tie ekstere kiuj ŝatus iri en retejoj havas
jam eltrovis speco de ĉiuj md5 hashes.
Kion ili estas ili eksidis sur siaj komputiloj, kaj ili hashed ĉiu
solan eblan vorton el tie, gxis ili havas specon de kio tio estas.
Se mi estus rigardi ĉi supren -
Mi ĵus kaptis ĉi hash.
Se mi ricevas tiun hash de -
se mi iros en retejo, kaj mi trovas ĉi hash ĉar mi alvenas al la
datumbazoj, kaj mi rigardas ĝin, iu Jam figured it out por mi.
>> Jes.
Do popolo sidigxis, kaj kio ajn md5 hash ke vi metu en, ili tuj
revenu al vi ion ke estas vorto.
Se mi hash alia vorto, kiel -
Mi ne scias -
trees2.
Mi ne volas esti seniluziigita per mia Google searches.
Tie ĝi estas, trees2.
Do multe da retejoj ankoraŭ uzi md5 hash.
Ili diros, ho, ĝi estas sekura.
Ni ne stokante en plata teksto.
Ni havas ĉi md5 hash.
Kaj kion mi devas fari estas simple Google la nombro.
>> Mi eĉ ne devos komputi mem.
Mi povas nur Guglas ĝin, kaj iu jam faris gxin por mi.
Jen faskon da ili.
Jen aro da pasvortoj.
Do certe ne uzu md5 hash, ĉar ĉiuj devas
do estas Google ĝin.
Do kion vi volas uzi anstataŭ?
OK.
Io nomata Saladero.
Do kio Saladero estas -
ĉu vi uloj memoras kiam ni estis parolas pri hazardo en -
Mi ne certas kion pset estis -
gxi estis pset tie aŭ kvar?
>> Ni parolis pri trovi la kudrilo en la fojnamaso.
Kaj en la pset, ŝi diris, ke vi povus efektive eltrovi kia hazardo
generas pro ies jam kuris hazarda miliono tempoj kaj nur
speco de formis kio generas.
Kion vi volas fari estas meti en enigo.
Do, tio estas kion Saladero speco de estas.
Ili jam eltrovis kion Saladero revenas por ĉiu laboro.
>> Do kio Saladero faras estas vi metis en la salo.
Vi metis en certa vorto.
Kaj gxi donos hash tiu vorto depende sur kio vi metu en ĉi tie.
Do se mi hash pasvorton unu kun tiu frazo, ĝi tuj hash
malsame se mi hash password1 kun malsama frazo.
Ĝi ia donas gxin ie al komenci la kradanta komenci.
Do ĝi estas multe pli malfacila al komputi, sed vi povas ankoraŭ kalkuli ĝin, speciale
se vi uzas malbonan salo.
>> Homoj jam ankaŭ eltrovis komuna saloj kaj eltrovis
kion tio ĝi estas.
Hazarda saloj estas multe pli bone, sed la plej bona metodo estas uzi
iu nomita kripto.
Kaj kion kripto permesas vin cxu - tiom tiuj funkcioj estas
jam konstruis por vi.
Multaj homoj forgesas ke, aŭ Ili forgesas uzi ĝin.
Sed se mi rigardas supren kripto PHP, kripto jam redonas hash kordo por mi.
Kaj ĝi efektive saloj gxin multajn fojojn kaj hashes gxin multfoje.
>> Do ni ne devas fari tion.
Do ĉiuj devas fari estas sendu ĝin en kripto.
Kaj tio kreos grandan hash sen vi devi zorgi pri salo
aŭ nenion.
Ĉar se vi estus al salo, vi havas memori kion salo vi uzis
ĉar se ne, vi ne povas alveni vian pasvorto reen sen la
salo, kiun vi uzas.
OK.
>> Kaj ankaŭ personaj identigebla informoj.
Do socia sekureco, kreditkarto - ke estas sufiĉe evidenta.
Sed kelkfoje homoj forgesas la vojo verkoj estas, kiom da informoj vi
vere bezonas trovi iun personon?
Iu faris studon pri tiu vojo reen.
Gxi estis kiel, se vi havas plena nomo, vi ne povas trovi
iu kiu facile.
Sed kion se vi havas plenan nomon kaj ilia dato de naskiĝo?
Ĉu tio sufiĉas por identigi iu specife?
>> Kio, se vi havas lian nomon, kaj la strato adreso, kiun ili vivas sur la?
Ĉu tio sufiĉas por trovi iun?
Kaj tio estas kiam ili demandas, kio estas personaj identigebla informo, kaj
kion vi devus maltrankviligi Ne donaci?
Se vi donaci persona identigebla informon, ke iu donas al vi,
vi povus potenciale get demandado.
Kaj ni definitive ne deziras tion.
>> Do kiam vi metante vian retejon ekstere, kaj vi vere malvarmeta
dezajno, espereble vi faris imponega fina projekto.
Ajna vi ian volas metu ŝin tie.
Vi volas certigi, ke kio ajn vi prenas el la uzanton, se estas
personaj identigebla informojn, vi volas certigi ke vi estas vere
zorgu pri ĝi.
>> Konko injekto.
OK.
Konko injekto permesas la entrudulo al akiri aliron al via reala komandlinia
en via servilo.
Kaj tial ĝi estas kapabla kuri kodo ke vi ne povas kontroli.
Ni prenu ekzemplon de ĉi tio bela kordo ĝuste ĉi tie.
Se ni iras en la retejo denove, mi estas tuj iru en kodo injekto.
Do kio estas tiu faras, estas -
ĝi estas ankaŭ, kion ni estis rigardas antaŭe.
Ni lasi la uzanton metis en kio ajn Li volas, kaj gxi estos presi
kion ajn vi volas.
>> Do mi tuj metis alvokon.
Kion tio faras estas -
Ĝi komencos per concatenando.
Do estos mi kuros ajn ordonu al la persono kurado
antaŭe kaj mia komando.
Kaj mi kurante sistemon komando.
Kaj ĉi tiuj lastaj kordoj estas - memori kion mi parolis al vi uloj pri,
dum vi devas kodi ĝin en URL metodo.
Se mi kuros ĉi nun -
Mi montros al vi trans cxi tie -
vi vidos, ke mi finiĝis supren ruli ordonon.
>> Tiu estas fakte la efektiva servilo ke mia retejo kuras plu.
Do ni ne volas, ke, ĉar mi povas kuri -
tiu servilo ne estas mia.
Do mi ne volas salato siajn fratino, Marcus La servilo.
Sed vi povas kuri pli komandoj ke estas danĝera.
Kaj potenciale, vi povus forviŝi dosieroj, forigi dosierujoj.
Mi povas forigi certan dosierujon se Mi volis, sed mi ne volas
por fari tion al Marcus.
Li estas afablulo.
Li lasis min pruntepreni sian servanton.
Do mi iros al li ekstere sur la bona.
>> Do kion ni ne volas uzi - ni ne volas uzi eval aŭ sistemo.
Eval aŭ sistemo permesas nin fari tiujn sistemo alvokoj.
Eval rimedoj taksi.
Sistemo signifas kion mi kuris.
Ĝi kuras ion en la sistemo.
Sed ni povas malpermesi tion en PHP por ke ni ne uzas ilin.
Kaj dosieron upload.
Mi tuj faros imponega aferon kun la arkivo upload.
Sed kiel mi diris al vi, infanoj, mia dosiero upload afero ne funkcias.
Se mi estus por alŝuti dosieron ĝuste nun -
se mi estus por alŝuti dosieron, kaj estas bildo -
vi havas upload afero tio estas foto.
Tio estas bone.
Nenio okazas.
>> Sed se vi havas alŝuta dosiero, por Ekzemple, kaj la uzanto reale alŝutoj
oni PHP-dosiero aŭ exe dosiero aŭ iu tiel, tiam vi povus potenciale
havas problemon.
Ĉi laboris antaŭe.
Bedaŭrinde por mi, ĝi estas ne funkcias plu.
Se mi, ekzemple, alŝuti tiun dosieron, mi estas ne ricevas permeson por alŝuti
la dosiero pro la servilo Ne estante mia.
Do la ulo estas vere inteligenta.
>> Do ni ne volas -
Mi montros al vi uloj -
OK, jen estas kelkaj vere malvarmeta iloj.
Do tiuj -
iru en - se vi uloj havas Firefox - espereble vi faru.
Ekzistas du add-ons nomata SQL injekti Me and Cross-Site Script Min.
Ili malfermas kiel iom flanko trinkejojn sur la flanko.
Kaj se mi iros al CS60 ekzemple -
do kion faras estas ĝi aspektas por cxiuj formoj ke -
mi esperas, mi ne ricevos en problemoj pro tio.
>> Sed okej.
Jen la pinglo sistemo.
Do kiam mi komencos serĉi truojn en la sistemo, la unua afero, kiun mi faras estas
malfermu tiun belegan iom ilo je la flanko.
Kaj mi iros por testi formoj per auto atakoj.
Kaj do, kion tiu faras, estas gxi malrapide malfermi faskon de retumiloj.
Jen faskon de retumiloj.
Kaj gxi provas ĉiun solan kombinaĵo el kruco-ejo skripta
ke eble estas, se vi vidas sur la flanko.
>> Kaj gxi donos al mi rezulton speco de tio, kion la respondo estas.
Ĉio pasas.
Evidente, ili cxiuj farigxis.
Mi volas diri, ke ili estas vere inteligentaj homoj tie supre.
Sed se mi estus kuri -
Mi havis fojoj antaŭ kiam mi kuros ĉi sur studentoj 'fina projektoj.
Mi simple kuri SQL injekti Min per ĉiuj malsamaj atakoj.
Kaj ĝi estas provi SQL injekti ĉi pinglo servilo.
Do, se ni rulumu malsupren por Ekzemple, ĝi diras -
tiu estas bona, se ĝi revenas.
>> Do ĝi provis iuj certaj valoroj.
Kaj la servilo revenis kodo kiu estis negativa.
Forigi provizore.
Tio estas bona.
Ĝi provas cxiujn tiujn provojn.
Do vi simple povus funkcii -
Mi deziras, ke mi povis trovi retejon reala rapida kiu lasus min -
eble la CS50 vendejo.
>> Wow, tiu tuj prenu vojon tro longe.
Mi lasu la unua provo ne finas dekstre.
Do ĝi estas plendis.
Do tiuj estas tri aĵoj.
Ĉi tiuj iloj estas liberaj.
Vi povas elŝuti ilin kaj ruli ilin sur via TTT-ejo, kaj gxi diros al vi, se
vi havas kruco-ejo skripta, se vi havas SQL, se vi havas
io simile.
Mi ia rompado.
>> Kio gravas -
OK, do neniam fidu la uzanto.
Kio ajn estas la uzanto enigas al vi, faru certe vi sanitize ĝin, vi purigi ĝin,
vi kontroli la veron, ke ĝi estas doni al vi, kion vi
volas ke li donu al vi.
Ĉiam estos ĝisdatigita je kio kadrojn ke vi efektive uzas.
Se vi uzas iun kiel bootstrap -
Mi konas vin knaboj tuj uzi startigi ĉar li tuj iri
super ĉi poste en klaso -
kaj Wordpress aŭ io kiel tio, normale tio povus esti piratita.
>> Kaj tiam vi eĉ ne scias.
Vi simple kurante via retejo.
Kaj ĝi estas tute sekura.
Kaj vi iros malsupren.
Do mi fisxkapti vere frue.
Sed mi volas danki Pentest Labs.
Mi montros al vi uloj ion vokis Pentest Labs.
Se vi uloj estas vere interesita en kio sekureco vere estas, tie estas
retejo nomata Pentest Labs, se you guys iri al ĝi ĝuste nun.
Ho, bone, tio ne estas tio.
Mi simple tuj kuri ĝin kiel ĉi tio.
Google diras al mi la respondon.
>> OK.
Kaj instruas uzas vin - tial ĝi diras, lerni ttt penetrado
provante la gxusta vojo.
Ĝi instruas al vi -
espereble, vi estas etika persono.
Sed ĝi instruas al vi, kiel vi povas rigardi kiel vi povas akiri interne retpaĝaroj.
Kaj se vi lernas kiel vi povas akiri interne retpaĝoj, vi povas lerni kiel
protekti vin de atingi interne retpaĝaroj.
Lasu min zomi ĉar eble vi uloj ne rigardante tiun rajton.
>> El la SQL injekton por bombardi, tiel speco de kiel mi povas preni de SQL
injekton al ŝelo.
Kaj vi elŝuti ĉi virtuala maŝino.
Kaj la virtuala maŝino jam venas kun la retejo kiun vi estas
tuj provos ĝin plu.
Vi elŝuti ĉi PDF.
Kaj tio montros al vi linion por linio kia vi devas fari, kion vi kontrolu.
Jen kia atakanto efektive faras por ricevi ene de retejo.
>> Kaj iuj el ĉi ŝtofo estas komplika.
Mi deziras, ke mi povus iri super pli aferojn kun vi uloj.
Sed mi timas ke vi uloj havas ne vere -
ĉi tiu estas kion mi transiris kun you guys, retejo testoj
por penetrado testado.
Ne vere scias kion SQL estas kaj kio -
Carl Jackson seminario is awesome tiel.
Vi infanoj ne scias specon de kio tio estas.
Sed se vi iros al tiu paĝo, kaj vi elŝuti tiujn lernilojn kaj tiuj
PDFs, vi povas tuj iri ĉe ian kia la areo de sekureco vere faras
en penetrado testado, vidi kiel vi povas get interne retejojn kaj protekti
mem el ĝi.
>> Do, se mi faros super rapidan superrigardon, tio estos malhelpi kruco-ejo scripting.
Vi volas uzi htmlspecialchars ĉiu tempo la uzulo enigas ion.
Malhelpi SQL injekto.
Se vi faros tion, vi jam pli bone fartas ol Harvard estis
Kiam ili atingis rompis.
Kaj certigi vian pasvortoj ne estas en plata teksto.
Certiĝu vi faras ne nur unu vojo hash ilin sed ke vi uzas kripto, la PHP-
funkcio, kiun mi montris al vi knaboj.
Tiel, vi devus esti bona.
>> Ankaŭ, se viaj amikoj lasu vin, kuri SQL injekti Min sur siaj retejoj.
Kuru kruco-ejo skripta sur siaj retejoj.
Kaj vi vidos multajn el tiuj retejoj havi ton de prospektivo.
Estas nekredeble, kiom multe da homoj forgesas al sanitize siaj datumbazoj aŭ fari
certas kion la persono inputting ne estas skripto kodo.
OK.
Mi ia finiĝis vere frue.
Sed se iu havas demandojn pri ion ajn, vi povas pafi al mi demandon.
Jes.
Iru, iru.
>> Spektantaro: Mi nur volas demandi, ĉu vi povas klarigi kiel la dosiero
alŝutu ekzakte verkoj.
>> Luciano Arango: Jes.
Mi do montros al vi la dosieron alŝutu reala rapida.
Do la dosiero upload -
la problemo konvinkigxi la dosiero alŝuto nun estas, ke -
Mi tuj malfermu la kodo tiom you guys vidas la kodon malantaŭ la scenoj.
Kaj oni alŝutu.
Jen la kodo por la dosiero uploader.
>> Ni provas iri en tiun dosierujo super tie.
Kaj ni provas, iam ni enigo la dosiero, isset dosiero - do kiam ekzistas
dosiero en dosieroj, tiu bildo, tiam ni provas movi ĝin tien.
Ni havigu la dosiero super tie.
La metodo estas POST, tipo, bildo, dosiero.
Kaj ni sendas tiun dosieron.
Kaj poste iam ni atingos ĝin, do unufoje dosieron havas bildon, ni provas sendi ĝin
al tiu ĉi dosierujo.
>> La problemo estas ke la retejo ne estas lasi min iri al tiu dosierujo,
ĉar ne volis min iri reen.
Ĝi ne volas, ke mi iru -
Mi devas iri - Do jen alŝutu.
Jen bildoj.
Mi devas iri la tutan vojon reen al la komencante kaj metis gxin en tie kaj tiam
iru, kaj metis gxin en la dosierujo.
Do se mi kuris terminalo fenestro, kaj mi volis movi dosieron -
[Inaudibles]
povas vidi ĝin.
Se mi volas kopii dosieron, mi devas meti la dosiernomon kaj tiam la
kompleta vojo mi deziras sendi ĝin al.
>> Kaj tiam la servilo ne estas lasante min iri reen.
Kaj tiel ĝi ne estas lasanta min forpreni tiun dosieron.
Sed normale -
do tie estas kodo por alŝuti dosieron.
Do normale ke pasos estas ke la persono ne estas kontrolanta ĉu mia dosieron
finiĝas per. jpg, do mi volus kontroli.
Permesu al mi malfermi ekzemplo tro reala rapida.
>> OK.
Tiu persono dekstre -
tiel ekzemple du estas kontrolanta se preg_match -
tie ĝi estas ĉi tie -
por certiĝi, ke finiĝas per PHP, kiu estas bona.
Tio estas bona.
Sed estas vera granda problemon kun tiu.
Tio estas bona.
Sed se mi estus meti dosieron nomatan myfavoritepicture.php.jpeg, mi povis
ankoraŭ potenciale forigi la jpeg kaj kuri it.k Tio PHP La danĝera.
Vi ne volas la persono por povi kuri kodon en vian retejon.
>> Sed tiam. Jpeg lasas pasi.
La ideo estas kion vi vere volas fari ne prenu dosierojn, A. Sed, bone, kion
vi vere volas fari estas certiĝi ke vi legis la tutan mondon.
Kaj tie estas nenio. Php en ĝi.
Tie estas neniu. Php en la tutan dosiernomon.
>> Spektantaro: Sed kion vi povis meti. jpeg je la fino.
La serviloj ankoraux kuras la kodon.
>> Luciano Arango: Ne, tio ne volas kuri en la komenco.
Vi devos iri reen kaj provi Por vidi, cxu vi povas -
>> Spektantaro: Do ​​ni devas -
OK, simple alia aro kiu engaĝas -
>> Luciano Arango: Jes.
>> Spektantaro: okej.
>> Luciano Arango: Jes.
OK.
Ajna alia demandojn?
OK.
Mi tuj forlasi ĉi tien kaj ordigi de provi vidi se vi uloj povas -
la aliaj aĵoj estas iomete pli komplika, ĉar ili postulas multe
pli kono de SQL ol nur la komencante kono de ttt SQL estas kaj
kio JavaScript estas.
Sed mi provos teni ĉi supre, kaj espereble vi infanoj lernos
pri tio kaj provas preni peek ĉe kion vi povas fari kaj kiom da ekzemploj
vi povas ricevi tra.
>> Iu havas aliajn demandojn pri ĝi?
Antaŭen.
Yeah, pafi, pafu.
Jes, iru antaŭen.
Antaŭen.
>> Spektantaro: okej.
Do mi aŭdis pri kiel Magia Quotes ili ne atingas sufiĉan.
>> Luciano Arango: Kion -
Magia Quotes
>> Spektantaro: Jes.
Do ĝi aldonas - do ĉiam vi enigo ion, ŝi ĉiam aldonas citilojn.
>> Luciano Arango: Jes.
Jes.
OK.
>> Spektantaro: Kaj tiam mi kvankam ke laboris, sed tiam mi serĉis ĝin.
Kaj gxi diris ke estas ne bona.
Sed mi ne certas kial.
>> Luciano Arango: Jes.
>> Spektantaro: Ne uzu Magia Quotes, ĉar ĝi ne estas sekura.
>> Luciano Arango: okej.
Do Magia Quotes estas kiam vi enmetas SQL kaj gxi jam aldonas la kurzon por vi.
>> Spektantaro: Ĝi ĉiam aldonas citilojn ĉirkaŭ kio ajn vi enmetita tien
>> Luciano Arango: Jes.
Do la problemo kun tio estas, ke -
Mi rigardu -
>> Spektantaro: Kiel tio akiri la SQL aserto?
Aŭ mi supozas gxi povus esti kiel citaĵo elektu.
>> Luciano Arango: Jes, vi bezonos bonaj citaĵoj la SQL.
>> Spektantaro: Ne, sed la servilo faras ĝin por vi.
>> Luciano Arango: Tiuj malgrandaj citaĵoj ĝuste ĉi tie, ĉi tiuj malgranduloj citiloj?
>> Spektantaro: Jes.
>> Luciano Arango: Jes.
La problemo estas ke vi povas diri la lastan -
OK, do, kion mi povas fari, estas mi povas diri ekster - do ni rigardu - lasu min
malfermi tekston redaktu dosiero.
Lasu min nur redakti ĉi dekstra tien rekte.
OK.
Ĉu vi uloj vidi ke klare?
Kion mi povas fari, estas mi povas diri el la lasta.
Tio comment el la lasta.
Kaj tiam mi metos ĉi tie, meti ĉiuj malicajn aferojn tie.
>> Do la uzanto estas reale inputting, right?
La uzanto ne inputting tion, ĉu ne?
Ĉi tio estas kion mi tuj enigi kiel la persono provante atingi ene.
Mi tuj metos en -
tio estas unu citaĵo markon.
Estas nur squiggly por eraro.
Kaj tiam kion la kodo estas tuj fari -
bedaŭras, mi tuj prenos ĉi eksteren.
Kion la kodo estas tuj fari estas ĝi tuj aldoni la unuan
Comillas tie.
Kaj ĝi tuj aldoni la lastan Citilo tiel.
>> Kaj ĝi estas ankaŭ tuj aldoni la lasta, lasta citilo.
Sed mi diras tiujn citaĵo markas, do ili ne kuras.
Kaj mi fini ĉi citaĵo markas super tie.
Ĉu vi komprenas?
Ĉu vi perdis?
Mi povas diri la lastan citaĵon markon kaj prizorgi la
unua citilo.
>> Spektantaro: Kaj ĝuste finitaj la unua.
>> Luciano Arango: Jes.
Kaj ĝuste fini la unuan.
Jes, tio pravas.
Tio estas kion mi povas fari.
Jes.
Ajna alia demandojn tiel?
Tio estas bonega demando.
Ne, jes, eble.
Mi esperas, vi uloj faros ian fari pli sentita kiam vi studas SQL kaj
aferojn tiel.
Sed certigi vin -
subteni tiujn ilojn en horloĝo.
Pardonu, tiuj iloj super tie.
Tiuj iloj estas granda.
Se iu havas ajnajn demandojn, vi ankaŭ povas retmesaĝi al mi.
Ĉi tio estas mia normala retpoŝto.
Kaj ĉi tiu estas mia laboro retpoŝto, kiun estas kiam mi laboras ĉe maroj.
>> OK, dankon.
Dankon, knaboj.
Vi estas bona por iri.
Vi ne devas resti ĉi tie.
Ne aplaŭdas.
Tio estas stranga.
OK, dankon, knaboj.