>> LUCIANO Arango: OK, chlapci.
Volám sa Luciano Arango.
Som vo druháku v Adams House.
A budeme hovoriť o Web Security aktívna obrana.
Tak som pracovať pre Úrad pre informácie Bezpečnosť v mori.
A v lete, som na stáži na SeguraTec, ktorá bola informácia
bezpečnostná firma, ktorá slúžila pre Bank of Columbia.
Je to najmä tam, kde som sa dozvedel, čo som sa doteraz naučili.
>> A tak niektorí z materiálu, ktorý sme ísť na dnes, nemáme
naozaj hovoril v triede.
Ale čoskoro.
To bude ako SQL, JavaScript.
A my sme naozaj preč nad ním.
Tak som použiť triedenie letu cez to, a možno neviete, niektoré veci.
Ale čoskoro sa naučíte to.
A to bude všetko dávať zmysel.
Tiež ďalšia vec -
zostať etický.
Niektoré z vecí, ktoré sa naučíte, budete použiť v non-etické spôsoby.
>> Ak je to tvoje, určite vyskúšajte.
Určite motivovať ľudí vyskúšať svoje vlastné servery, skúste
deje vo vnútri nich.
Uvidíme, či im môžete preniknúť, ak môžete získať v nich.
Ale niekto iný to.
Policajti nemajú naozaj rád vtipy a celá, dáme to tu.
Boli sme si pohrávate.
Oni sa naozaj hnevá.
>> Takže zamierte na tejto webovej stránke.
Mám ju otvoril tu.
Jedná sa o webové stránky, a to má veľa príkladov.
Čo sa stane, je, že prvý príklad je druh bude oveľa jednoduchšie
ako posledný príklad v tom zmysle, , Že prvý príklad
je úplne neistá.
A posledná je niečo, čo normálny Web Security človek urobí.
Ale stále môžete triediť ze sa okolo toho.
A budeme sa zameraním na jednu a dva príklady jedna a dve.
>> OK.
Začnime s cross-site scripting.
JavaScript je prevádzkovaná na Prehliadač klienta.
Je to programovací jazyk, ktorý používate bežať na prehliadači klienta tak,
nemusíte aktualizovať webové stránky a vrátiť sa späť na server.
Máte to beží.
Napríklad, Facebook, nemáte znovu načítať webovej stránky pre nový štatút
Aktualizácie prísť.
Je to pomocou JavaScriptu k vytvoreniu všetky tieto veci.
Takže môžeme aplikovať škodlivý JavaScript na internetových stránkach.
A takto, keď sme poslať odkaz na niekto, mohli by sme nejako poslať ju
niektoré z kódu, ktorý chceme.
>> K dispozícii je perzistentná a non-perzistentné JavaScript -
perzistentné a non-perzistentné cross-site písať, mám na mysli.
A s tým rozdielom, že perzistentné je JavaScript, ktorý bude
uložené na internetových stránkach.
A non-perzistentné budú JavaScript že sa vlastne len náhodou raz.
Takže poďme sa pozrieť na príklad naozaj rýchlo.
>> OK.
Takže tento web, jednoduchý, tu nič nedeje.
A budeme sa snažiť, aby vložiť nejaký JavaScript.
Tak ako začneme písať JavaScript sa začneme začiatku skriptu.
A my ho zatvorte so skriptom.
Sme jednoducho bude dať správu -
Ja vám ukážem, -
upozornenia.
Alert je funkcia, ktorá JavaScript používa na zobrazenie niečoho.
Takže skúsme to naozaj rýchlo.
Ja idem, upozornenia ahoj.
No, zabudol som dať -
OK.
Tak to je jednoduché.
>> Kladieme JavaScript na webové stránky, a to prišiel.
A tak nejako stane len na našich webových stránkach, že jo?
Takže to vyzerá, že to nie je problém, nie?
Myslím tým, ako by ste mohli použiť to zlomyseľne?
Takže tak, že hackeri robiť je to naozaj jednoduché.
Chystajú sa chytiť.
Môžu poslať odkaz na vás.
Ak pošlem odkaz na vás práve teraz, a otvorte ju, že to bude
povedať, ahoj, tým, že moje webové stránky sa hovorí, ahoj.
>> A tak keď som mal povedať niečo trochu múdrejší, keď som vytiahnuť
Funkcia JavaScript Aj druh už napísal -
ale keď sa pozriete na to, pôjdem nad ním, ako som to napísal.
Takže budeme nastaviť časový limit.
Budeme čakať na pár sekúnd.
V skutočnosti, budeme čakať, pokiaľ Sa nemýlim, päť sekúnd.
To ide ruka v milisekundách.
A čo budeme robiť, potom ich budeme bude varovať, že prihlásenie
Vypršal časový limit pre prihlásenie späť dovnútra
A budeme chcete zmeniť umiestnenie na iné miesto.
>> Takže keď som poslať tento web s niekým, oni bude
prechádzanie okolo, kľud.
Nič sa nedeje.
A za päť sekúnd, bude to povedať, vaše prihlásenie vypršal.
Prosím prihláste sa späť dovnútra
Po kliknutí na tlačidlo OK, idem do vziať ich na iné webové stránky.
Možno predpokladať, že internetové stránky sa deje na byť podobné webové stránky, ktoré
boli predtým.
A oni sa chystáte prihlásiť svojho Prihlasovacie údaje do svojich webových stránkach miesto
ich webové stránky.
>> A tak môžem poslať ľuďom e-mail pomocou tohto odkazu.
Ja hovorím, oh, tu je odkaz.
To je bankou, napríklad.
Ja hovorím, tu, choďte na tento odkaz.
A keď sa im to poslať, sú bude prechádzanie okolo.
Môžem počkať 15 sekúnd, 20 sekúnd a potom vyskočí, že musíte prihlásiť späť
prihlásiť späť.
Vy to môžete skúsiť s oveľa viac vecí.
Je to zložité, pretože vy Nevidel JavaScript, takže si mohol
neviem, niektoré funkcie.
Ale všetko, čo musíte urobiť, je začať s písmom, končí scenára.
A vy ste mohli dať čokoľvek v stredu.
>> Alert je funkcia, počkajte.
Umiestnenie okna sa dostanete na nové miesto.
Ale môžete tak urobiť oveľa viac.
A tak predstava je, že Vezmeme to preč.
Ak idem na príklade dvoch, a ja dal v rovnakom kódu, je to
nebude fungovať.
Tak to je všetko, čo tlačíte, pretože čo tento web pôvodne
robí sa, ak som dal tu niečo, to bude tlačiť to tu.
Takže to nie je nič z tlače.
Tento príklad je vlastne kontrola aby ste zistili, či skript je tam.
Tak jo, choďte do toho.
Opýtaj sa ma.
>> DIVÁKOV: Nie je odoslanie GET alebo POST požiadavke?
>> LUCIANO Arango: Jo. sú odoslaní požiadavky GET.
>> DIVÁKOV: Je?
>> LUCIANO Arango: Jo.
Tiež prehliadače používajú žiadosti o príspevok.
Ale ja sa snažím ukázať, požiadavky GET takže môžeme vidieť, čo je
v skutočnosti deje.
A tak keď sa pozrieme na tomto kódu - tak to nefunguje.
A ak sa pozrieme na tento kód, to bude mať napríklad dve.
Čo tento človek robí, človek na starosti tohto prehliadača -
otvoriť, OK -
nahradí slovo skript.
To je PHP, ktorý vy by mohli videli trochu ešte.
>> Je to len výmenou Slovo skript s názvom.
Takže sa však, keď idem do toho a len dať do -
keď som chytiť môj kód znova, a ja idem na to zmeniť len trochu.
Namiesto toho skriptu, budem meniť je pre skript s veľkým R. A
budeme vidieť, či to funguje.
Takže to nebolo vytlačiť, čo je dobré znamenie.
A dúfajme, že v ďalších dvoch sekúnd, to bude pop-up.
>> Váš prihlásenia vypršal.
OK.
To je v poriadku.
Takže kontrola skript by mohol nemusí nutne fungovať.
Osoba -
to môže tiež kontrolovať skriptu veľkými písmenami, Skript malá, str prípad
porovnať, uistite sa, že sú rovnaké.
Ale hacker môže ešte robiť druh, čo sme v Vigenère keď sme sa presťahovali
späť pár znakov, pohnúť dopredu.
A to môže prísť na to, ako dať skript späť tam, takže je možné aplikovať
že skript.
>> Takže to, čo chcete používať je špeciálne znaky na
chrániť vaše webové stránky.
A čo to robí sa to robí Uistite sa, že to, čo ste vložili do -
napríklad kurzy alebo tento väčšie ako alebo menšia ako -
sa nahradí niečím , Že nebude -
dovoľte mi priblížiť tu -
aktuálne ampersand.
Nahradia tie špeciálne HTML znaky, ktoré uvidíme, keď budeme
hovorí o -
oh, to bude trvať ma späť do -
Tieto znaky priamo tu.
>> To značí, že sa niečo sa blíži.
Pre HTML, týmto začiatok držiakom nám hovorí, že niečo
Súvisiace HTML sa blíži.
A chceme sa zbaviť toho.
Nechceme, aby HTML do website.k Nechceme, aby užívateľ bude
schopný dať niečo svoje webové stránky ktoré môžu mať vplyv na ich webové stránky, rovnako ako
skript alebo HTML, alebo niečo také.
Čo je dôležité, je to, že vám dezinfikovať vstup užívateľa.
>> Takže užívatelia môžu vstupných veľa vecí.
Ten môžete zadať veľa vecí vyskúšať prinútiť váš prehliadač do stále
spustenie tohto kódu skriptu.
Čo chcete urobiť, je nielen hľadať pre scenár, ale pozrite sa na všetko
ktorý by mohol byť nebezpečný.
A špeciálne znaky budú robiť, že pre vás, takže nemusíte
sa starať o to.
Ale nesnažte sa robiť sami druh s vlastným kódom.
Je každý jasno XSS?
>> OK.
Poďme na SQL injection.
Takže SQL injection je pravdepodobne číslo jedna zraniteľnosť
v rôznych webových stránkach.
Myslím, že je dobrý príklad -
Len som sa skúmať najďalej pre túto vec.
A našiel som tento skvelý článok, kde Videl som, že Harvard bol porušený,
bol hacknut.
A ja som si hovoril, no, ako by to?
Harvard je to najúžasnejšie, najviac zabezpečiť vysokú školu vôbec.
Je to tak?
No, pre porušenie servery, hackeri používajú
Technika tzv SQL injection.
>> Tak toto sa deje na každodennej báze.
Ľudia zabúdajú vziať do úvahy pre SQL injection.
Harvard robí.
Myslím, že tu sa píše, Princeton, Stanford, Cornell.
Tak ako sme sa - tak čo je to SQL vstrekovanie, ktorý prináša všetky tieto
Ľudia dole?
OK.
Takže SQL je programovací jazyk, ktorý používame pre prístup k databázam.
To, čo robíme, je vyberáme -
tak čo to číta práve teraz, je vybrať všetko od stola.
>> SQL, zmení sa do týchto databáz ktoré majú stoly plné informácií.
Takže vybrať všetko od užívateľov kde meno je užívateľské meno.
Je to tak?
Dosť jednoduché.
Myšlienka SQL injection je, že sme vložiť nejaký škodlivý kód, ktorý by
trik server do chodu niečo iný ako to, čo
Pôvodne bol spustený.
Takže povedzme, že pre užívateľské meno, dáme alebo 1 rovná 1.
Takže sme dali alebo 1 rovná 1.
Ako to bude čítať teraz bude vybrať od užívateľov, všetko od
užívatelia - to je všetko -
kde meno je užívateľské meno, ale užívateľské meno alebo 1 rovná 1.
>> Takže názov je nič alebo 1 rovná 1.
1 sa rovná 1, je vždy pravda.
Takže to bude vždy vrátiť informácie od užívateľa.
OK.
Nepotrebujeme mať správne užívateľské meno.
Môžeme len niečo, čo chceme, a vráti informácie
ktoré potrebujeme.
Pozrime sa na ďalší príklad.
>> Ak sme sa vybrať všetko od užívateľa, kde meno je DROP TABLE užívateľov -
Tak čo si myslíte, že to bude robiť, ak som dal do mena
ako používatelia DROP TABLE?
Každý, kto má nápad?
Áno.
>> DIVÁKOV: Bude to povedať je výpis všetkých tabuliek.
>> LUCIANO Arango: Bude to, aby nám povedali vypísať všetko, čo na webových stránkach,
všetko v databáze.
A čo ľudia používajú to na - tak Chystám sa vám ukázať chlapci.
Vyradil som pád tabuľky pretože som ťa nechcela
chlapci tam svoje tabuľky.
Poďme sa na to pozrieť.
Tak to proste ťahá nahor informácie k určitej osobe.
Tak ako môžeme vedieť, či je to ovplyvnená SQL injection.
Budeme kontrolovať naozaj rýchlo či môžeme dať niečo -
dovoľte mi, aby som skopírujte tento kód.
Chystám sa ísť cez neho na sekundu.
Chystám sa dať koreň a 1 sa rovná 1.
>> Toto právo je tu, v tomto znak percenta 23 -
čo to vlastne je, keď som pozrite sa tu na -
spôsob, HTML berie v číslach, ak pozrite sa na, keď som dal v priestore
tu - keby som priestore niečo tu, zmení sa na 2 percentá.
Rozumiete mi to tu keď som dal v priestore?
Spôsob, akým to funguje tak, že môžete len Poslať hodnoty ASCII pomocou HTML.
Nahrádza tak, napríklad, priestor s 20 percentami.
Neviem, či ste už skôr vidieť, že.
>> Nahrádza hashtag s 23 percentami.
Potrebujeme hashtag na konci alebo vyhlásenie, takže môžeme povedať,
databázy nezabudnite ju komentovať von Tento posledný bodkočiarku na konci.
Chceme, aby to myslieť.
Chceme len, aby to bežať všetko , Že máme dopredu a
komentár, že von.
Poďme sa na to pozrieť.
>> Takže ak by som mal dať niečo zle - povedzme napríklad, dal som 2 rovná
1, to mi nedáva nič.
Keď som dal v 1 sa rovná 1, a to robí vrátiť niečo mi to hovorí, že
To je náchylné k SQL injection.
Teraz viem, že bez ohľadu na Dal som za to -
a napríklad DROP TABUĽKY alebo niečo také
bude určite fungovať.
Viem, že je náchylné na SQL injection pretože viem, že
pod kapotou, je to nechať me to 1 sa rovná 1 vec.
OK?
>> A ak sa pozrieme na tieto iné tie, číslo dva a číslo tri, je to
robiť trochu viac kontroly pod
kapucňa, čo to je.
Takže niekto umožní pokles niečo, alebo ešte neskúsil?
Myslíte si chlapci nejako dostať ešte SQL?
Pretože viem, že vy nie Videl to ešte, takže je to trochu
mätúce pre vás.
Poďme sa pozrieť.
Takže, čo je to spôsob, ako zabrániť SQLite?
OK.
Takže je to naozaj dôležité, pretože vám chlapci určite chcieť, aby sa zabránilo
to vo vašich webových stránkach.
>> Ak nie, všetci vaši priatelia budú robiť si žarty z vás, keď sa zrušia všetky
tabuliek.
Takže myšlienka je, že oprava SQL určitým spôsobom, zatiaľ čo budete odpovedať
čo používateľ zadá sa určitý reťazec.
Takže ako to funguje, je vám pripraviť databázu.
Môžete zvoliť názov, farbu a kalórií z databázy s názvom ovocia.
A potom, kde kalórií je nižšia ako, a dáme otáznik tam
hovorí, ideme na vstupe niečo, čo v sekunde.
>> A farba zodpovedá, a kladieme otázku značka hovorí, že budeme
Vstup niečo sekundu rovnako.
OK?
A potom sme ju spustiť, uvedenie v 150 a červenej.
A to bude kontrolovať, aby sa Uistite sa, že títo dvaja -
Toto pole bude kontrolovať, že sa jedná dva ar celé číslo a
že sa jedná o reťazec.
Potom ideme, a my prines všetci, dáme ho do červenej.
To znamená, že načítanie všetkých.
To znamená, že sme vlastne spustiť SQL vyhlásenie a dal ju späť v červenej farbe.
Tu sme sa urobiť to isté, ale urobiť to isté pre žltý.
A prines všetko.
>> A týmto spôsobom, sa zabráni, aby užívateľ aby bola schopná vstup niečo
to nie je to, čo je uvedené, reťazec alebo celé číslo, napríklad.
Predtým som hovoril o spoliehať na ostatných.
Keď vy začať svoj projekt, ste určite bude používať
natiahnutie alebo niečo podobné.
Už ste chlapci niekedy používa Wordpress?
Pravdepodobne použili vy Wordpress s najväčšou pravdepodobnosťou.
Takže problém s použitím iných ľudí veci -
Ja som jednoducho ísť do Google naozaj rýchlo Wordpress zraniteľnosť.
>> Ak som sa vytiahnuť to až teraz -
Doslova som urobil dve sekundy Google.
Môžeme vidieť, že Wordpress -
to je datovaný v septembri '12.
26 je aktualizovaný.
Predvolené konfigurácie Wordpress pred 3.6 nebráni to
niektoré obrázky, ktoré by mohli uľahčujú
cross-site scripting útoky.
Tak rýchly príbeh, raz sme pracovali s - tak som bol v lete, pracuje
stáž.
A my sme pracovali s druhom ako spoločnosť veľký kreditnej karty.
>> A oni sa spoliehajú na niečo, čo nazýva -
Ja neviem, či niekedy hrali chlapci sa produkt s názvom Joomla.
Joomla je produkt, ktorý sa používa pre Riadenie - trochu podobné
Wordpress, ktorý sa používa na vytvorenie webovej stránky.
Takže oni mali ich webové stránky pracuje na systéme Joomla.
Jedná sa vlastne o platobných kartách spoločnosť v Kolumbii.
Vezmem vás k ich Webové stránky naozaj rýchlo.
>> Takže použiť Joomla.
A oni nie sú aktualizované Joomla k najnovším prírastkom.
A tak keď sme sa podrobnejšie pozrieme na ich kód, sme boli schopní skutočne
ísť v ich kóde a ukradnúť všetky Informácie o kreditnej karty, ktoré mali,
všetky čísla kreditných kariet, mená, adresy.
A to bol len -
a ich kód bol úplne v poriadku.
Mali veľkú kód.
Bolo to všetko zabezpečenia.
Sú kontrolované všetky databázy.
Urobili, že cross-site skriptovanie v poriadku.
>> Ale oni používali niečo, čo nebolo aktualizované, aby nebolo bezpečné.
A tak, aby viedli k - takže vy sa určite použiť iné
kód, rámcov ľudí iných ľudí vybudovať svoje webové stránky.
Uistite sa, že sú bezpečnejšie, pretože niekedy to nie si ty, ten, ktorý
urobí chybu.
Ale niekto urobí chybu, a potom padajú kvôli tomu.
>> Heslá a PII.
Takže hesla.
OK.
Poďme sa pozrieť na heslá naozaj rýchlo.
OK.
Prosím, povedzte mi, že každý používa bezpečné -
Dúfam, že všetci tu používa bezpečné heslá.
Len som nechal, že v ako predpoklad.
Takže vy sa určite ukladanie hesiel pre vaše webové stránky.
Budeš robiť niečo ako login alebo niečo také.
Čo je dôležité je, že nebude ukladať heslá vo formáte obyčajného textu.
To je nesmierne dôležité.
Vy nechcete uložiť heslo vo formáte obyčajného textu.
>> A určite to nie je naozaj chcete uložiť ho do jednosmernej hash.
Takže to, čo jeden spôsob, hash je, že keď generovať slovo, keď dal tento
Slovo do funkcie hash, že bude generovať späť nejaký mystický
správa alebo mystický sada kľúčov.
Ukážem vám príklad.
Chystám sa hash, že slovo password1.
Takže md5 hash sa ma vrátiť nejaký divný informácií.
>> Problém je v tom, že ľudia tam vonku že chcel ísť do webovej stránky majú
už prišiel na to nejako všetkých MD5 hash.
To, čo urobil, je, že si sadol na svoje počítača, a oni hash každý
jediné možné slovo tam, kým dostali trochu o tom, čo to je.
Ak by som mal hľadať to hore -
Len som vzal tento hash.
Ak by som si to hash z -
keď pôjdem do webovej stránky, a ja si Tento hash, pretože som si na
databázy, a ja sa to, niekto už na to prišiel za mnou.
>> Jo.
Takže ľudia sa posadil, a čo md5 hash, ktoré ste vložili do, idú do
späť k vám niečo , Že je slovo.
Keby som hash ďalšie slovo, rovnako ako -
Neviem -
trees2.
Ja nechcem byť sklamaný podľa môjho vyhľadávania Google.
Tu to je, trees2.
Takže mnoho internetových stránok naďalej používať MD5 hash.
Hovorí sa, ach, je to bezpečné.
Nie sme ukladanie vo formáte obyčajného textu.
Máme túto MD5 hash.
A všetko, čo musíte urobiť, je len Google číslo.
>> Nemám ani spočítať sám.
Môžem len Google, a niekto už to urobil za mňa.
Tu je banda z nich.
Tu je banda hesla.
Takže rozhodne nepoužívajte md5 hash, pretože všetko, čo musíte
urobiť, je Google to.
Tak čo chcete namiesto toho použiť?
OK.
Niečo, čo nazýva solenie.
Takže to, čo solenie je -
Myslíte si, chlapci Pamätám si, keď sme boli hovorí o náhodné -
Nie som si istý, čo pset to bolo -
to bolo pset tam, alebo štyri?
>> Rozprávali sme si o hľadaní ihly v kope sena.
A v pset, povedal, že by ste mohli vlastne zistiť, čo náhodne
generuje preto, že niekto už bežal náhodné miliónkrát a len
druh tvorí to, čo vytvárajú.
Čo chcete urobiť, je dať do vstupu.
Takže to je to, čo solenie druh je.
Už prišiel na to, čo solenie sa vracia pre každú prácu.
>> Takže to, čo robí, je solenie môžete dať do soli.
Môžete dať v určitom slova.
A to bude hash slovo v závislosti na čo si dať sem.
Takže keď som hash jedného hesla s tým veta, že to bude hash
inak, keď som hash password1 s inou vetou.
Je to trochu dáva niekde na začiatok pre zatrieďovanie začať.
Takže je to oveľa ťažšie pre výpočet, ale môže ešte počítať to, a to najmä
Ak používate zlý soľ.
>> Ľudia už tiež prišiel na to, bežné soli a prišiel na to,
čo to je.
Náhodné soli sú oveľa lepšie, ale najlepší spôsob, ako ich použiť
niečo ako krypta.
A čo krypta umožňuje to - takže tieto funkcie sú
už postavený pre vás.
Mnoho ľudí zabúda, že, alebo Zabúdajú na to použiť.
Ale keď sa pozriem do crypt PHP, krypta už vracia hash reťazec pre mňa.
A to vlastne soli to mnohokrát a hash to mnohokrát.
>> Takže nemusíme to robiť.
Takže všetko, čo musíte urobiť, je Poslať ho do krypty.
A to bude vytvoriť skvelý hash bez ste sa museli starať o soli
alebo tak niečo.
Pretože ak ste boli na soľ je máte mať na pamäti to, čo soľ, ktorú ste použili
pretože ak nie, môžete sa dostať vaše heslo späť, bez toho, aby
soľ, ktoré ste použili.
OK.
>> A tiež osobné identifikovateľné informácie.
Takže sociálneho zabezpečenia, kreditná karta - to je celkom zrejmé.
Ale niekedy ľudia zabúdajú, ako to práca je, koľko informácií sa vám
skutočne potrebujú nájsť nejakú jednu osobu?
Niekto urobil štúdiu o táto cesta späť.
A bolo to ako, keď máte meno, priezvisko, nemôžete nájsť
niekto, že ľahko.
Ale čo keď máte plné meno a ich dátum narodenia?
Je to dosť na identifikáciu niekto konkrétne?
>> Čo keď máte svoje meno a ulice, ktoré žijú na?
Je to dosť nájsť niekoho?
A to je, keď sa pýtajú, čo je osobné identifikovateľné informácie, a
čo by ste mali robiť starosti nie dať preč?
Ak máte dať preč osobné identifikovateľných informácie, ktoré vám niekto dáva,
by ste mohli dostať žalovaný.
A my rozhodne nechceme.
>> Takže, keď ste uvedenie svoje webové stránky von, a ste naozaj v pohode
dizajn, dúfajme, že ste sa úžasné konečný projekt.
Každý si tak nejako chcete dať to tam.
Chcete, aby sa ubezpečil, že všetko, čo Užívate od užívateľa, ak je to
osobné identifikovateľné údaje, môžete chcete, aby sa uistili, že ste bol naozaj
opatrne s ním.
>> Shell vstrekovanie.
OK.
Vstrekovanie Shell umožňuje votrelec získať prístup k vašej aktuálnej príkazového riadku
na vašom serveri.
A tak je schopný spustiť kód že nemôžete ovládať.
Zoberme si príklad tohto krásna string tu.
Ak by sme ísť na webové stránky znova, ja som ísť do kódu injekciu.
Takže, čo to robí, je -
to je tiež to, čo sme boli pri pohľade na pred.
Necháme užívateľovi dať v čo chce, a bude tlačiť
čo chcete.
>> Tak idem dať hovor.
Čo to však je -
začne zřetězením.
Tak to bude, dajte mi spustiť bez ohľadu na Príkaz spustený osoby
pred a môj príkaz.
A ja spustením príkazu systému.
A tieto posledné reťazce sú - nezabudnite čo Hovoril som s vami o,
vzhľadom k tomu, budete musieť kódovať že v metóde URL.
Mám-li spustiť to teraz -
Ukážem ti tu -
uvidíte, že som skončil up spustením príkazu.
>> Jedná sa vlastne o skutočnej servera že môj web beží na.
Takže nechceme, aby pretože môžem bežať -
Tento server nie je moja.
Takže nechcem pokaziť jeho sestra, server, Marcus.
Ale môžete spustiť viac príkazov že sú nebezpečné.
A prípadne, môžete odstrániť súbory, odstrániť adresáre.
Môžem odstrániť určitý adresár, ak Chcel som, ale nechcem
k tomu, že s Marcusom.
Je to milý chlapík.
Nechal mi požičať svoj server.
Takže budem ho nechať off na dobrý.
>> Takže to, čo nechceme používať - ​​my nie chcete použiť eval alebo systému.
Eval alebo systém nám umožňuje aby táto systémové volania.
Eval prostriedky zhodnotiť.
Systém znamená, že to, čo som bežal.
Je to beh niečo v systéme.
Ale môžeme postaviť mimo zákon tieto veci PHP tak, že nebudeme používať.
A nahranie súboru.
Chcel som robiť úžasné vec s upload.
Ale ako hovoril som ti chalani, môj súbor Nahrávanie vec nefunguje.
Ak by som mal nahrať súbor práve teraz -
ak by som mal nahrať súbor, a je to obraz -
Máte nahrať vec to je obraz.
To je v poriadku.
Nič sa nedeje.
>> Ale ak máte súbor nahrať, pre príklad, a užívateľ skutočne obrázky
súbor PHP alebo súbor exe alebo niečo takto, potom by ste mohli potenciálne
majú problém.
Táto pracoval predtým.
Bohužiaľ pre mňa, je to nefunguje.
Keby som napríklad nahrať tento súbor, ja som nedostanú povolenie k nahrať
súboru vzhľadom k serveru že nie je moja.
Takže ten chlap je naozaj šikovný.
>> Takže nechceme, aby -
Chystám sa ukázať vám chlapci -
OK, to sú niektoré naozaj cool nástroje.
Tak to -
ísť do - keď vy máte Firefox - dúfajme, že áno.
K dispozícii sú dva doplnky tzv SQL Inject Ja a Cross-Site Script Me.
Otvárajú sa tak trochu bokom pruhy na boku.
A ak by som mal ísť na CS60 napríklad -
takže to, čo robí, je, že vyzerá pre všetky formy, ktoré -
dúfajme, že nebudem mať v průšvih za to.
>> Ale OK.
Tu je systémový kód PIN.
Takže keď som sa začať hľadať diery v systém, prvá vec, ktorú robím, je
otvoriť tento krásny malý Nástroj na boku.
A budem testovať formulára s auto útoky.
A tak to, čo to robí, je, že sa pomaly otvoriť veľa prehliadačov.
Tu je banda prehliadačov.
A to sa snažia každú kombináciu z cross-site scripting
, Že možno je, ak vidíte na boku.
>> A to mi dá výsledok trochu o tom, čo je odpoveď.
Všetky prejsť.
Je zrejmé, že všetci prejsť.
Myslím, že sú naozaj šikovný ľudia tam hore.
Ale ak by som mal bežať -
Mal som mnohokrát predtým, keď som spustení tohto Na záverečných prác študentov.
Proste som spustiť SQL Aplikujte Mňa všetky rôzne útoky.
A to sa snažia SQL inject Tento pin servera.
Takže keď sme sa posunúť dole, pre Napríklad hovorí, že -
to je dobré, keď sa vráti.
>> Tak to skúša nejaké určité hodnoty.
A server vrátil kód, ktorý je negatívny.
Dočasne odstrániť.
To je dobré.
To sa snaží všetky tieto testy.
Takže môžete jednoducho spustiť -
Prial by som si nájsť webové stránky skutočný rýchlo, že by ma nechal -
Možno obchod CS50.
>> Wow, to bude trvať príliš dlho.
Nechám prvý test nedokončil pravdu.
Takže je to sťažovať.
Tak to sú tri veci.
Tieto nástroje sú zadarmo.
Môžete si ich stiahnuť a spustiť na vaše webové stránky, a to vám povedia, či
Máte cross-site scripting, Ak máte SQL, ak máte
niečo ako.
Ja som trochu poplietol.
>> Čo je dôležité -
OK, takže nikdy dôverovať užívateľa.
Bez ohľadu na užívateľské vstupy na vás, aby sa Naozaj to dezinfikuje, to vyčistiť,
môžete skontrolovať správne veci, že to dáva vám to, čo
Chcem ho dať.
Vždy bude aktualizovaný o tom, čo rámca že ste vlastne používate.
Ak používate niečo ako bootstrap -
Viem, že vy sa chystáte použiť zavedený preto, že to pôjde
cez to čoskoro v triede -
a Wordpress, alebo niečo také, za normálnych okolností by to mohlo byť hacknut.
>> A potom nemusíte ani vedieť.
Ste práve beží vaše webové stránky.
A to je úplne bezpečný.
A idete dole.
Takže som lovia veľmi skoro.
Ale chcem poďakovať Pentest Labs.
Chystám sa ukázať, vy niečo tzv Pentest Labs.
Ak vy ste naozaj záujem čo bezpečnostné naozaj je, tam je
webové stránky s názvom Pentest Labs, ak vy choďte do toho hneď.
Oh, dobre, že to nie je ono.
Idem na to bežať takto.
Google mi hovorí, že odpoveď.
>> OK.
A to učí využívať vás - tak to hovorí, učiť sa webové prenikaniu
testovanie na správnu cestu.
Učí vás -
dúfajme, že ste etický človek.
Ale to vás naučí, ako sa môžete pozrieť na ako sa môžete dostať dovnútra webových stránkach.
A ak sa naučíte, ako sa môžete dostať dovnútra webové stránky, sa môžete dozvedieť, ako sa
chrániť pred stále vnútri webovej stránky.
Dovoľte mi priblížiť, pretože možno vy nie sú pri pohľade na tohto práva.
>> Od SQL injection shell, takže trochu, ako by som mohol dostať z SQL
injekcie na shell.
A môžete stiahnuť tento virtuálny stroj.
A virtuálny stroj už prichádza sa na webových stránkach, že ste
Pokúsim sa to.
Môžete stiahnuť vo formáte PDF.
A to vám ukáže riadok po riadku, čo čo musíte urobiť, čo skontrolovať.
To je to, čo útočník v skutočnosti robí sa dostať do webovej stránky.
>> A niektoré z týchto vecí je zložité.
Želám si, aby som mohol ísť na viac čo s vami.
Ale obávam sa, že vy nie naozaj -
To je to, čo som prešiel s vy, webové testy
pre penetračné testy.
Naozaj neviem, čo SQL je a čo -
Carl Jackson seminár Je úžasné, ako dobre.
Vy neviete, triedenie o tom, čo to je.
Ale keď idete na týchto stránkach, a vy stiahnuť tieto výučbové programy a tie
PDF, môžete sa pozrieť na druhu čo oblasť bezpečnosti naozaj
v penetračných testov, ako môžete sa vnútri webovej stránky a ochrana
si z neho.
>> Takže keď urobím super rýchly prehľad, to bude zabrániť cross-site scripting.
Ak chcete špeciálne znaky používať každý keď používateľ vstupy niečo.
Zabrániť SQL injection.
Ak to urobíte, ste už lepšie ako Harvard bol
Keď sa dostali k porušeniu.
A uistite sa, že vaše heslá nie sú vo formáte obyčajného textu.
Uistite sa, že nemáte len jeden spôsob, ako hash je ale použiť kryptu, PHP
funkcie, ktoré som vám ukázal chalani.
Tak, mali by ste byť dobre.
>> Tiež, ak vaši priatelia vám, spustite SQL Aplikujte ma na svojich internetových stránkach.
Spustite cross-site scripting na svojich internetových stránkach.
A uvidíte mnoho z týchto internetových stránok majú veľa slabých miest.
Je to neuveriteľné, ako veľa ľudí zabudnúť dezinfikovať svoje databázy alebo aby
istý, čo zadaním osoby nie je kód skriptu.
OK.
Tak nejako som skončil veľmi skoro.
Ale ak má niekto nejaké otázky týkajúce sa niečo, môžete mi strieľať otázku.
Jo.
Choď, choď.
>> DIVÁKOV: Chcem sa len opýtať, Môžete vysvetliť, ako sa súbor
nahrať presne funguje.
>> LUCIANO Arango: Jo.
Takže dovoľte mi ukázať vám súbor nahrať naozaj rýchlo.
Takže upload -
Problém vtip o nahranie súboru práve teraz je, že -
Idem otvoriť kód, takže si chlapci pozri kód v zákulisí.
A to je nahrať.
Tu je kód pre súbor nahral.
>> Snažíme sa ísť do toho adresár sem.
A snažíme sa, akonáhle sa vstup súbor, isset súbor - takže keď je
súbor v spise, že obraz, potom snažíme sa tu pohybovať.
Sme chytiť súbor sem.
Táto metóda je POST, typ, obrázok, súbor.
A my odoslaním tohto súboru.
A potom, akonáhle dostaneme, takže akonáhle súbor má obraz, sa snažíme odoslať
do tohto adresára.
>> Problém je v tom, že webová stránka nie je nechal ma ísť do tohto adresára,
preto, že nechce, aby som sa vrátila.
Nechce, aby som išiel -
Musím ísť - tak tu je nahrať.
Tu je fotografia.
Musím ísť celú cestu späť do začiatok a dať to tam a potom
ísť a dať ho do adresára.
Takže keď som bežal okno terminálu, a chcel som sa presunúť súbor -
[Nepočuteľný]
Môžete ho vidieť.
Keby som chcel presunúť súbor, mám vložiť názov súboru a potom
kompletné cesta a chcem ju poslať.
>> A potom server nie je Nechať ma ísť späť.
A tak to nenechám mi dostať do tohto súboru.
Ale za normálnych okolností -
takže je tu kód nahranie súboru.
Tak normálne, čo sa stane je, že osoba nie je kontrolovať, či má súbor
končí. jpeg, takže som bude chcieť skontrolovať.
Dovoľte mi otvoriť príklad taky naozaj rýchlo.
>> OK.
Táto osoba právo -
takže príklad dvoch kontroluje ak preg_match -
tu je to tu -
Uistite sa, že končí PHP, čo je dobré.
To je dobré.
Ale je tu naozaj veľký Problém s týmto.
To je dobré.
Ale keby som si mal dať súbor s názvom myfavoritepicture.php.jpeg, mohol by som
stále potenciálne zbaviť jpeg a spustiť it.k to PHP je nebezpečná.
Nechcete, aby osoba, ktorá má byť schopná spustiť kód na vaše webové stránky.
>> Ale potom. Jpeg nechá ho prejsť.
Myšlienka je to, čo naozaj chcete robiť Nie je sa súbory, A., ale OK, čo
naozaj chcete urobiť, je zabezpečiť, aby čítate po celom svete.
A nie je nič. Php v ňom.
Nie je. Php vo Celý názov súboru.
>> DIVÁKOV: Ale vy ste mohli dať. jpeg na konci.
Servery stále spustiť kód.
>> LUCIANO Arango: Nie, to nebude beží na začiatku.
Musíte sa vrátiť a skúsiť zistiť, či môžete -
>> DIVÁKOV: Takže musíme -
OK, len ďalší set, ktorý zahŕňa -
>> LUCIANO Arango: Jo.
>> DIVÁKOV: OK.
>> LUCIANO Arango: Jo.
OK.
Nejaké ďalšie otázky?
OK.
Chystám sa opustiť to a triedenie zo sa snažia zistiť, či vy môžete -
tie ostatné sú trochu viac zložité, pretože vyžadujú veľa
viac znalosť SQL, než len začiatok znalosť webových SQL je a
čo JavaScript je.
Ale budem sa snažiť, aby to hore, a dúfajme, že vy sa dozviete,
o tom a snaží sa nahliadnuť na čo môžete urobiť a koľko príkladov
môžete dostať cez.
>> Každý, kto má akýkoľvek iný otázky o tom?
Len do toho.
Jo, strieľať, strieľať.
Jo, choďte do toho.
Len do toho.
>> DIVÁKOV: OK.
Počul som o tom, ako magic quotes nie sú dostatočne bezpečné.
>> LUCIANO Arango: Co -
Magic quotes?
>> DIVÁKOV: Jo.
Tak to pridáva - takže zakaždým, keď vstup niečo, je to vždy pridá úvodzovky.
>> LUCIANO Arango: Jo.
Jo.
OK.
>> DIVÁKOV: A potom som si myslel, že pracoval, ale potom som hľadal ju.
A povedal, že to nie je dobré.
Ale nie som si istý prečo.
>> LUCIANO Arango: Jo.
>> DIVÁKOV: Nepoužívajte magic quotes, pretože to nie je bezpečné.
>> LUCIANO Arango: OK.
Takže magic quotes je, keď vložíte SQL a to už dodáva citát pre vás.
>> DIVÁKOV: Je vždy pridá úvodzovky okolo, čo ste vložili dovnútra
>> LUCIANO Arango: Jo.
Preto je problém s tým, že -
Budem sa pozrieť na -
>> DIVÁKOV: Ako to získať SQL?
Alebo Myslím, že by to mohlo byť ako citácie vybrať.
>> LUCIANO Arango: Jo, čo potrebujete dobré citácie pre SQL.
>> DIVÁKOV: Nie, ale server to urobí za vás.
>> LUCIANO Arango: Tieto malé citácie tu, tieto malé úvodzovky?
>> DIVÁKOV: Jo.
>> LUCIANO Arango: Jo.
Problém je v tom, že môžete komentár z poslednej -
OK, takže to, čo môžem urobiť, je, že som si komentár out - takže sa poďme pozrieť na - dovoľte mi, aby som
otvoriť pre úpravy textu súboru.
Dovoľte mi stačí upraviť tento priamo priamo tu.
OK.
Môžete vy vidieť, že jasne?
Čo môžem urobiť, je, že som si komentár z posledného.
To bude komentár mimo ten posledný.
A potom som si dal jeden sem, dať všetky škodlivé veci tu.
>> Takže používateľ je skutočne zadávanie, že jo?
Užívateľ nie je zadanie veci, že jo?
To je to, čo budem vstup ako človek sa snaží dostať dovnútra.
Chystám sa dať do -
to je jedna úvodzovky.
Je to len zakrútený omylom.
A potom to, čo kód je robiť -
Ospravedlňujem sa, idem sa na to.
Aký kód je robiť, je to bude pridávať prvý
úvodzovky tu.
A bude to pridať posledná úvodzovky rovnako.
>> A je to tiež bude pridávať posledný posledný úvodzovky.
Ale ja som komentoval tieto cenovú ponuku označí sa tak, že nie sú v rozpore.
A ja končím túto ponuku označiť sem.
Chápete?
Stratil ste sa?
Nemôžem komentovať poslednú ponuku značka, a postarať sa o
Prvý úvodzovky.
>> DIVÁKOV: A práve úprava prvý z nich.
>> LUCIANO Arango: Jo.
A práve dokončil prvý.
Jo, to je pravda.
To je to, čo sa dá robiť.
Jo.
Akékoľvek ďalšie otázky, ako je to?
To je veľká otázka.
No, áno, možno.
Dúfajme, že vy sa trochu, aby väčší zmysel, keď budete študovať SQL a
podobné veci.
Ale uistite sa, že -
držať týchto nástrojov v hodinkách.
Ospravedlňujeme sa, ale tieto nástroje viac ako tu.
Tieto nástroje sú skvelé.
Ak má niekto nejaké otázky, môžete mi tiež e-mailom.
To je môj normálny e-mail.
A toto je môj pracovný e-mail, ktorý je, keď pracujem na mori.
>> OK, vďaka.
Vďaka, chlapci.
Si dobré ísť.
Nemusíte zostať tu.
Nepoužívajte tlieskať.
To je divné.
OK, vďaka, chlapi.