LUCIANO Arango: OK, kluci. Jmenuji se Luciano Arango. Jsem ve druháku v Adams House. A budeme mluvit o Web Security aktivní obrana. Tak jsem pracovat pro Úřad pro informace Bezpečnost v moři. A v létě, jsem na stáži na SeguraTec, která byla informace bezpečnostní firma, která sloužila pro Bank of Columbia. Je to zejména tam, kde jsem se dozvěděl, co jsem se doposud naučili. A tak někteří z materiálu, který jsme jít na dnes, nemáme opravdu mluvil ve třídě. Ale brzy. To bude jako SQL, JavaScript. A my jsme opravdu pryč nad ním. Tak jsem použít třídění letu přes to, a možná nevíte, některé věci. Ale brzy se naučíte to. A to bude všechno dávat smysl. Také další věc - zůstat etický. Některé z věcí, které se naučíte, budete použít v non-etické způsoby. Pokud je to tvoje, určitě vyzkoušejte. Určitě motivovat lidi vyzkoušet své vlastní servery, zkuste děje uvnitř nich. Uvidíme, jestli jim můžete proniknout, pokud můžete získat v nich. Ale někdo jiný to. Policajti nemají opravdu rád vtipy a celá, dáme to tady. Byli jsme si pohráváte. Oni se opravdu zlobí. Takže zamiřte na této webové stránce. Mám ji otevřel tady. Jedná se o webové stránky, a to má spoustu příkladů. Co se stane, je, že první příklad je druh bude mnohem jednodušší než poslední příklad v tom smyslu, , že první příklad je zcela nejistá. A poslední je něco, co normální Web Security člověk udělá. Ale stále můžete třídit ze se kolem toho. A budeme se zaměřením na jednu a dva příklady jedna a dvě. OK. Začněme s cross-site scripting. JavaScript je provozována na Prohlížeč klienta. Je to programovací jazyk, který používáte běžet na prohlížeči klienta tak, nemusíte aktualizovat webové stránky a vrátit se zpět na server. Máte to běží. Například, Facebook, nemáte znovu načíst webové stránky pro nový statut Aktualizace přijít. Je to pomocí JavaScriptu k vytvoření všechny tyto věci. Takže můžeme aplikovat škodlivý JavaScript na internetových stránkách. A takhle, když jsme poslat odkaz na někdo, mohli bychom nějak poslat ji některé z kódu, který chceme. K dispozici je perzistentní a non-perzistentní JavaScript - perzistentní a non-perzistentní cross-site psát, mám na mysli. A s tím rozdílem, že perzistentní je JavaScript, který bude uloženy na internetových stránkách. A non-perzistentní budou JavaScript že se vlastně jen náhodou jednou. Takže pojďme se podívat na příklad opravdu rychle. OK. Takže tento web, jednoduchý, tady nic neděje. A budeme se snažit, aby vložit nějaký JavaScript. Tak jak začneme psát JavaScript se začneme začátku skriptu. A my ho zavřete se skriptem. Jsme prostě bude dát zprávu - Já vám ukážu, - upozornění. Alert je funkce, která JavaScript používá k zobrazení něčeho. Takže zkusme to opravdu rychle. Já jdu, upozornění ahoj. No, zapomněl jsem dát - OK. Tak to je jednoduché. Klademe JavaScript na webové stránky, a to přišel. A tak nějak stane jen na našich webových stránkách, že jo? Takže to vypadá, že to není problém, ne? Myslím tím, jak byste mohli použít to zlomyslně? Takže tak, že hackeři dělat je to opravdu jednoduché. Chystají se chytit. Mohou poslat odkaz na vás. Pokud pošlu odkaz na vás právě teď, a otevřete ji, že to bude říci, ahoj, tím, že mé webové stránky se říká, ahoj. A tak když jsem měl říct něco trochu chytřejší, když jsem vytáhnout Funkce JavaScript I druh již napsal - ale když se podíváte na to, půjdu nad ním, než jsem to napsal. Takže budeme nastavit časový limit. Budeme čekat na pár vteřin. Ve skutečnosti, budeme čekat, pokud Se nepletu, pět sekund. To jde ruku v milisekundách. A co budeme dělat, pak je budeme bude varovat, že přihlášení Vypršel časový limit pro přihlášení zpět dovnitř A budeme-li změnit umístění na jiné místo. Takže když jsem poslat tento web s někým, oni bude procházení kolem, klid. Nic se neděje. A za pět sekund, bude to říci, vaše přihlášení vypršel. Prosím přihlašte se zpět dovnitř Po klepnutí na tlačítko OK, jdu do vzít je na jiné webové stránky. Lze předpokládat, že internetové stránky se děje na být podobné webové stránky, které byli předtím. A oni se chystáte přihlásit svého Přihlašovací údaje do svých webových stránkách místo jejich webové stránky. A tak mohu poslat lidem e-mail pomocí tohoto odkazu. Já říkám, oh, tady je odkaz. To je bankou, například. Já říkám, tady, jděte na tento odkaz. A když se jim to poslat, jsou bude procházení kolem. Můžu počkat 15 sekund, 20 sekund a pak vyskočí, že přihlašte zpět přihlásit zpět. Vy to můžete zkusit s mnohem více věcí. Je to složité, protože vy Neviděl JavaScript, takže si mohl nevím, některé funkce. Ale vše, co musíte udělat, je začít s písmem, končí scénáře. A vy jste mohli dát cokoliv ve středu. Alert je funkce, počkejte. Umístění okna se dostanete na nové místo. Ale můžete tak učinit mnohem více. A tak představa je, že Vezmeme to pryč. Pokud jdu na příkladu dvou, a já dal ve stejném kódu, je to nebude fungovat. Tak to je vše, co tisknete, protože co tento web původně dělá se, pokud jsem dal tady něco, to bude tisknout to tady. Takže to není nic z tisku. Tento příklad je vlastně kontrola abyste zjistili, zda skript je tam. Tak jo, jděte do toho. Zeptej se mě. DIVÁKŮ: Není odeslání GET nebo POST požadavku? LUCIANO Arango: Jo. jsou odeslání požadavku GET. DIVÁKŮ: Je? LUCIANO Arango: Jo. Také prohlížeče používají žádosti o příspěvek. Ale já se snažím ukázat, požadavky GET takže můžeme vidět, co je ve skutečnosti děje. A tak když se podíváme na tomto kódu - tak to nefunguje. A pokud se podíváme na tento kód, to bude mít například dvě. Co tento člověk dělá, člověk na starosti tohoto prohlížeče - otevřít, OK - nahradí slovo skript. To je PHP, který vy by mohly viděli trochu ještě. Je to jen výměnou Slovo skript s názvem. Takže se však, když jdu do toho a jen dát do - když jsem chytit můj kód znovu, a já jdu na to změnit jen trochu. Místo toho skriptu, budu měnit je pro skript s velkým R. A budeme vidět, jestli to funguje. Takže to nebylo vytisknout, což je dobré znamení. A doufejme, že v dalších dvou sekund, to bude pop-up. Váš přihlášení vypršel. OK. To je v pořádku. Takže kontrola skript by mohl nemusí nutně fungovat. Osoba - to může také kontrolovat skriptu velkými písmeny, Skript malá, str případ porovnat, ujistěte se, že jsou stejné. Ale hacker může ještě dělat druh, co jsme v Vigenère když jsme se přestěhovali zpět pár znaků, pohnout kupředu. A to může přijít na to, jak dát skript zpět tam, takže je lze aplikovat že skript. Takže to, co chcete používat je speciální znaky na chránit vaše webové stránky. A co to dělá se to dělá Ujistěte se, že to, co jste vložili do - například kurzy nebo tento větší než nebo menší než - se nahradí něčím , že nebude - dovolte mi přiblížit zde - aktuální ampersand. Nahradí ty speciální HTML znaky, které uvidíme, když budeme mluví o - oh, to bude trvat mě zpátky do - Tyto znaky přímo zde. To značí, že se něco se blíží. Pro HTML, tímto začátek držákem nám říká, že něco Související HTML se blíží. A chceme se zbavit toho. Nechceme, aby HTML do website.k Nechceme, aby uživatel bude schopen dát něco své webové stránky které mohou mít vliv na jejich webové stránky, stejně jako skript nebo HTML, nebo něco takového. Co je důležité, je to, že vám dezinfikovat vstup uživatele. Takže uživatelé mohou vstupních mnoho věcí. Ten můžete zadat spoustu věcí vyzkoušet přimět váš prohlížeč do stále spuštění tohoto kódu skriptu. Co chcete udělat, je nejen hledat pro scénář, ale podívejte se na všechno který by mohl být nebezpečný. A speciální znaky budou dělat, že pro vás, takže nemusíte se starat o to. Ale nesnažte se dělat sami druh s vlastním kódem. Je každý jasno XSS? OK. Pojďme na SQL injection. Takže SQL injection je pravděpodobně číslo jedna zranitelnost v různých webových stránkách. Myslím, že je dobrý příklad - Jen jsem se zkoumat nejdále pro tuto věc. A našel jsem tento skvělý článek, kde Viděl jsem, že Harvard byl porušen, byl hacknutý. A já jsem si říkal, no, jak by to? Harvard je to nejúžasnější, nejvíce zabezpečit vysokou školu vůbec. Je to tak? No, pro porušení servery, hackeři používají Technika tzv. SQL injection. Tak tohle se děje na každodenní bázi. Lidé zapomínají vzít v úvahu pro SQL injection. Harvard dělá. Myslím, že tady se píše, Princeton, Stanford, Cornell. Tak jak jsme se - tak co je to SQL vstřikování, který přináší všechny tyto Lidé dolů? OK. Takže SQL je programovací jazyk, který používáme pro přístup k databázím. To, co děláme, je vybíráme - tak co to čte právě teď, je vybrat vše od stolu. SQL, změní se do těchto databází které mají stoly plné informací. Takže vybrat vše od uživatelů kde jméno je uživatelské jméno. Je to tak? Dost jednoduché. Myšlenka SQL injection je, že jsme vložit nějaký škodlivý kód, který by trik server do chodu něco jiný než to, co Původně byl spuštěn. Takže řekněme, že pro uživatelské jméno, dáme nebo 1 rovná 1. Takže jsme dali nebo 1 rovná 1. Jak to bude číst teď bude vybrat od uživatelů, vše od uživatelé - to je vše - kde jméno je uživatelské jméno, ale uživatelské jméno nebo 1 rovná 1. Takže název je nic nebo 1 rovná 1. 1 se rovná 1, je vždy pravda. Takže to bude vždy vrátit informace od uživatele. OK. Nepotřebujeme mít správné uživatelské jméno. Můžeme jen něco, co chceme, a vrátí informace které potřebujeme. Podívejme se na další příklad. Pokud jsme se vybrat vše od uživatele, kde jméno je DROP TABLE uživatelů - Tak co si myslíte, že to bude dělat, pokud jsem dal do jména jako uživatelé DROP TABLE? Každý, kdo má nápad? Ano. DIVÁKŮ: Bude to říct je výpis všech tabulek. LUCIANO Arango: Bude to, aby nám řekli vypsat vše, co na webových stránkách, vše v databázi. A co lidé používají to na - tak Chystám se vám ukázat kluci. Vyřadil jsem pád tabulky protože jsem tě nechtěla kluci tam svoje tabulky. Pojďme se na to podívat. Tak to prostě táhne nahoru informace k určité osobě. Tak jak můžeme vědět, jestli je to ovlivněna SQL injection. Budeme kontrolovat opravdu rychle jestli můžeme dát něco - dovolte mi, abych zkopírujte tento kód. Chystám se jít přes něj na vteřinu. Chystám se dát kořen a 1 se rovná 1. Toto právo je zde, v tomto znak procenta 23 - co to vlastně je, když jsem podívejte se tady na - způsob, HTML bere v číslech, pokud podívejte se na, když jsem dal v prostoru tady - kdybych prostoru něco zde, změní se na 2 procenta. Rozumíte mi to tady když jsem dal v prostoru? Způsob, jakým to funguje tak, že můžete jen Poslat hodnoty ASCII pomocí HTML. Nahrazuje tak, například, prostor s 20 procenty. Nevím, jestli jste již dříve vidět, že. Nahrazuje hashtag s 23 procenty. Potřebujeme hashtag na konci nebo prohlášení, takže můžeme říci, databáze nezapomeňte ji komentovat ven Tento poslední středník na konci. Chceme, aby to myslet. Chceme jen, aby to běžet vše , že máme předem a komentář, že ven. Pojďme se na to podívat. Takže pokud bych měl dát něco špatně - řekněme například, dal jsem 2 rovná 1, to mi nedává nic. Když jsem dal v 1 se rovná 1, a to dělá vrátit něco mi to říká, že To je náchylné k SQL injection. Teď vím, že bez ohledu na Dal jsem za to - a například DROP TABULKY nebo něco takového bude určitě fungovat. Vím, že je náchylné k SQL injection protože vím, že pod kapotou, je to nechat me to 1 se rovná 1 věc. OK? A podíváme-li se na tyto jiné ty, číslo dvě a číslo tři, je to dělat trochu víc kontroly pod kapuce, co to je. Takže někdo umožní pokles něco, nebo ještě nezkusil? Myslíte si kluci nějak dostat ještě SQL? Protože vím, že vy ne Viděl to ještě, takže je to trochu matoucí pro vás. Pojďme se podívat. Takže, co je to způsob, jak zabránit SQLI? OK. Takže je to opravdu důležité, protože vám kluci určitě chtít, aby se zabránilo to ve vašich webových stránkách. Pokud ne, všichni vaši přátelé budou dělat si legraci z vás, když se zruší všechny tabulek. Takže myšlenka je, že oprava SQL určitým způsobem, zatímco budete odpovídat co uživatel zadá se určitý řetězec. Takže jak to funguje, je vám připravit databázi. Můžete zvolit název, barvu a kalorií z databáze s názvem ovoce. A pak, kde kalorií je nižší než, a dáme otazník tam říká, jdeme na vstupu něco, co ve vteřině. A barva odpovídá, a klademe otázku značka říká, že budeme Vstup něco vteřinu stejně. OK? A pak jsme ji spustit, uvedení v 150 a červené. A to bude kontrolovat, aby se Ujistěte se, že tito dva - Toto pole bude kontrolovat, že se jedná dva ar celé číslo a že se jedná o řetězec. Pak jdeme, a my přines všichni, dáme ho do červené. To znamená, že načtení všech. To znamená, že jsme vlastně spustit SQL prohlášení a dal ji zpět v červené barvě. Zde jsme se udělat to samé, ale udělat to samé pro žlutý. A přines všechno. A tímto způsobem, se zabrání, aby uživatel aby byla schopna vstup něco to není to, co je uvedeno, řetězec nebo celé číslo, například. Předtím jsem mluvil o spoléhat na ostatní. Když vy začít svůj projekt, jste určitě bude používat natažení nebo něco podobného. Už jste kluci někdy používá Wordpress? Pravděpodobně použili vy Wordpress s největší pravděpodobností. Takže problém s použitím jiných lidí věci - Já jsem prostě jít do Google opravdu rychle Wordpress zranitelnost. Pokud jsem se vytáhnout to až teď - Doslova jsem udělal dvě sekundy Google. Můžeme vidět, že Wordpress - to je datován v září '12. 26 je aktualizován. Výchozí konfigurace Wordpress před 3.6 nebrání to některé obrázky, které by mohly usnadňují cross-site scripting útoky. Tak rychlý příběh, jednou jsme pracovali s - tak jsem byl v létě, pracuje stáž. A my jsme pracovali s druhem jako společnost velký kreditní karty. A oni se spoléhají na něco, co nazývá - Já nevím, jestli někdy hráli kluci se produkt s názvem Joomla. Joomla je produkt, který se používá pro Řízení - trochu podobné Wordpress, který se používá k vytvoření webové stránky. Takže oni měli jejich webové stránky pracuje na systému Joomla. Jedná se vlastně o platebních kartách společnost v Kolumbii. Vezmu vás k jejich Webové stránky opravdu rychle. Takže použít Joomla. A oni nejsou aktualizovány Joomla k nejnovějším přírůstkem. A tak když jsme se podrobněji podíváme na jejich kód, jsme byli schopni skutečně jít v jejich kódu a ukrást všechny Informace o kreditní karty, které měli, všechna čísla kreditních karet, jména, adresy. A to byl jen - a jejich kód byl naprosto v pořádku. Měli velkou kód. Bylo to všechno zabezpečení. Jsou kontrolovány všechny databáze. Udělali, že cross-site skriptování v pořádku. Ale oni používali něco, co nebylo aktualizovány, aby nebylo bezpečné. A tak, aby vedly k - takže vy se určitě použít jiné kód, rámců lidí jiných lidí vybudovat své webové stránky. Ujistěte se, že jsou bezpečnější, protože někdy to nejsi ty, ten, který udělá chybu. Ale někdo udělá chybu, a pak padají kvůli tomu. Hesla a PII. Takže hesla. OK. Pojďme se podívat na hesla opravdu rychle. OK. Prosím, řekněte mi, že každý používá bezpečné - Doufám, že všichni zde používá bezpečná hesla. Jen jsem nechal, že v jako předpoklad. Takže vy se určitě ukládání hesel pro vaše webové stránky. Budeš dělat něco jako login nebo něco takového. Co je důležité je, že nebude ukládat hesla ve formátu prostého textu. To je nesmírně důležité. Vy nechcete uložit heslo ve formátu prostého textu. A určitě to není opravdu chcete uložit jej do jednosměrné hash. Takže to, co jeden způsob, hash je, že když generovat slovo, když dal tento Slovo do funkce hash, že bude generovat zpět nějaký mystický zpráva nebo mystický sada klíčů. Ukážu vám příklad. Chystám se hash, že slovo password1. Takže md5 hash se mě vrátit nějaký divný informací. Problém je v tom, že lidé tam venku že chtěl jít do webové stránky mají už přišel na to nějak všech MD5 hash. To, co udělal, je, že si sedl na své počítače, a oni hash každý jediné možné slovo tam, dokud dostali trochu o tom, co to je. Pokud bych měl hledat to nahoru - Jen jsem vzal tento hash. Pokud bych si to hash z - když půjdu do webové stránky, a já si Tento hash, protože jsem si na databáze, a já se to, někdo už na to přišel za mnou. Jo. Takže lidé se posadil, a co md5 hash, které jste vložili do, jdou do zpět k vám něco , že je slovo. Kdybych hash další slovo, stejně jako - Nevím - trees2. Já nechci být zklamaný podle mého vyhledávání Google. Tady to je, trees2. Takže mnoho internetových stránek nadále používat MD5 hash. Říká se, ach, je to bezpečné. Nejsme ukládání ve formátu prostého textu. Máme tuto MD5 hash. A vše, co musíte udělat, je jen Google číslo. Nemám ani spočítat sám. Mohu jen Google, a někdo už to udělal za mě. Zde je banda z nich. Zde je banda hesla. Takže rozhodně nepoužívejte md5 hash, protože vše, co musíte udělat, je Google to. Tak co chcete místo toho použít? OK. Něco, co nazývá solení. Takže to, co solení je - Myslíte si, kluci Pamatuji si, když jsme byli mluví o náhodné - Nejsem si jistý, co pset to bylo - to bylo pset tam, nebo čtyři? Povídali jsme si o hledání jehly v kupce sena. A v pset, řekl, že byste mohli vlastně zjistit, co náhodně generuje proto, že někdo už běžel náhodné miliónkrát a jen druh tvoří to, co vytvářejí. Co chcete udělat, je dát do vstupu. Takže to je to, co solení druh je. Už přišel na to, co solení se vrací pro každou práci. Takže to, co dělá, je solení můžete dát do soli. Můžete dát v určitém slova. A to bude hash slovo v závislosti na co si dát sem. Takže když jsem hash jednoho hesla s tím věta, že to bude hash jinak, když jsem hash password1 s jinou větou. Je to trochu dává někde na začátek pro zatřiďování začít. Takže je to mnohem těžší pro výpočet, ale může ještě počítat to, a to zejména Pokud používáte špatný sůl. Lidé již také přišel na to, běžné soli a přišel na to, co to je. Náhodné soli jsou mnohem lepší, ale nejlepší způsob, jak je použít něco jako krypta. A co krypta umožňuje to - takže tyto funkce jsou již postavený pro vás. Mnoho lidí zapomíná, že, nebo Zapomínají na to použít. Ale když se podívám do crypt PHP, krypta již vrací hash řetězec pro mě. A to vlastně soli to mnohokrát a hash to mnohokrát. Takže nemusíme to dělat. Takže vše, co musíte udělat, je Poslat ho do krypty. A to bude vytvořit skvělý hash bez byste se museli starat o soli nebo tak něco. Protože pokud jste byli na sůl je máte mít na paměti to, co sůl, kterou jste použili protože pokud ne, můžete se dostat vaše heslo zpět, aniž by sůl, které jste použili. OK. A také osobní identifikovatelné informace. Takže sociálního zabezpečení, kreditní karta - to je docela zřejmé. Ale někdy lidé zapomínají, jak to práce je, kolik informací se vám skutečně potřebují najít nějakou jednu osobu? Někdo udělal studii o tato cesta zpět. A bylo to jako, když máte jméno, příjmení, nemůžete najít někdo, že snadno. Ale co když máte plné jméno a jejich datum narození? Je to dost k identifikaci někdo konkrétně? Co když máte své jméno a ulice, která žijí na? Je to dost najít někoho? A to je, když se ptají, co je osobní identifikovatelné informace, a co byste měli dělat starosti ne dát pryč? Máte-li dát pryč osobní identifikovatelných informace, které vám někdo dává, byste mohli dostat žalován. A my rozhodně nechceme. Takže, když jste uvedení své webové stránky ven, a jste opravdu v pohodě design, doufejme, že jste se úžasné konečný projekt. Každý si tak nějak chcete dát to tam. Chcete, aby se ujistil, že vše, co Užíváte od uživatele, pokud je to osobní identifikovatelné údaje, můžete chcete, aby se ujistili, že jste byl opravdu opatrně s ním. Shell vstřikování. OK. Vstřikování Shell umožňuje vetřelec získat přístup k vaší aktuální příkazového řádku na vašem serveru. A tak je schopen spustit kód že nemůžete ovládat. Vezměme si příklad tohoto krásná string tady. Pokud bychom jít na webové stránky znovu, já jsem jít do kódu injekci. Takže, co to dělá, je - to je také to, co jsme byli při pohledu na před. Necháme uživateli dát v co chce, a bude tisknout co chcete. Tak jdu dát hovor. Co to však je - začne zřetězením. Tak to bude, dejte mi spustit bez ohledu na Příkaz spuštěný osoby před a můj příkaz. A já spuštěním příkazu systému. A tyto poslední řetězce jsou - nezapomeňte co Mluvil jsem s váma o, vzhledem k tomu, budete muset kódovat že v metodě URL. Mám-li spustit to teď - Ukážu ti sem - uvidíte, že jsem skončil up spuštěním příkazu. Jedná se vlastně o skutečné serveru že můj web běží na. Takže nechceme, aby protože můžu běžet - Tento server není moje. Takže nechci zkazit jeho sestra, server, Marcus. Ale můžete spustit více příkazů že jsou nebezpečné. A případně, můžete odstranit soubory, odstranit adresáře. Mohu odstranit určitý adresář, pokud Chtěl jsem, ale nechci k tomu, že s Marcusem. Je to milý chlapík. Nechal mi půjčit svůj server. Takže budu ho nechat off na dobrý. Takže to, co nechceme používat - my ne chcete použít eval nebo systému. Eval nebo systém nám umožňuje aby tato systémová volání. Eval prostředky zhodnotit. Systém znamená, že to, co jsem běžel. Je to běh něco v systému. Ale můžeme postavit mimo zákon tyto věci PHP tak, že nebudeme používat. A nahrání souboru. Chtěl jsem dělat úžasné věc s upload. Ale jak říkal jsem ti kluci, můj soubor Nahrávání věc nefunguje. Pokud bych měl nahrát soubor právě teď - pokud bych měl nahrát soubor, a je to obraz - Máte nahrát věc to je obraz. To je v pořádku. Nic se neděje. Ale pokud máte soubor nahrát, pro příklad, a uživatel skutečně obrázky soubor PHP nebo soubor exe nebo něco takhle, pak byste mohli potenciálně mají problém. Tato pracoval předtím. Bohužel pro mě, je to nefunguje. Kdybych například nahrát tento soubor, já jsem nedostanou povolení k nahrát souboru vzhledem k serveru že není moje. Takže ten chlap je opravdu chytrý. Takže nechceme, aby - Chystám se ukázat vám kluci - OK, to jsou některé opravdu cool nástroje. Tak to - jít do - jestliže vy máte Firefox - doufejme, že ano. K dispozici jsou dva doplňky tzv. SQL Inject Já a Cross-Site Script Me. Otevírají se tak trochu stranou pruhy na boku. A pokud bych měl jít na CS60 například - takže to, co dělá, je, že vypadá pro všechny formy, které - doufejme, že nebudu mít v průšvihu za to. Ale OK. Zde je systémový kód PIN. Takže když jsem se začít hledat díry v systém, první věc, kterou dělám, je otevřít tento krásný malý Nástroj na boku. A budu testovat formuláře s auto útoky. A tak to, co to dělá, je, že se pomalu otevřít spoustu prohlížečů. Zde je banda prohlížečů. A to se snaží každou kombinaci z cross-site scripting , že možná je, pokud vidíte na boku. A to mi dá výsledek trochu o tom, co je odpověď. Všechny projít. Je zřejmé, že všichni projít. Myslím, že jsou opravdu chytrý lidé tam nahoře. Ale pokud bych měl běžet - Měl jsem mnohokrát předtím, když jsem spuštění tohoto Na závěrečných prací studentů. Prostě jsem spustit SQL Aplikujte Mě všechny různé útoky. A to se snaží SQL inject Tento pin serveru. Takže když jsme se posunout dolů, pro Například říká, že - to je dobré, když se vrátí. Tak to zkouší nějaké určité hodnoty. A server vrátil kód, který je negativní. Dočasně odstranit. To je dobré. To se snaží všechny tyto testy. Takže můžete jednoduše spustit - Přál bych si najít webové stránky skutečný rychle, že by mě nechal - Možná obchod CS50. Wow, to bude trvat příliš dlouho. Nechám první test nedokončil pravdu. Takže je to stěžovat. Tak to jsou tři věci. Tyto nástroje jsou zdarma. Můžete si je stáhnout a spustit na vaše webové stránky, a to vám řeknou, jestli Máte cross-site scripting, Máte-li SQL, máte-li něco jako. Já jsem trochu popletl. Co je důležité - OK, takže nikdy důvěřovat uživatele. Bez ohledu na uživatelské vstupy na vás, aby se Opravdu to dezinfikuje, to vyčistit, můžete zkontrolovat správné věci, že to dává vám to, co Chci ho dát. Vždy bude aktualizován o tom, co rámce že jste vlastně používáte. Pokud používáte něco jako bootstrap - Vím, že vy se chystáte použít zaveden proto, že to půjde přes to brzy ve třídě - a Wordpress, nebo něco takového, za normálních okolností by to mohlo být hacknutý. A pak nemusíte ani vědět. Jste právě běží vaše webové stránky. A to je zcela bezpečný. A jdete dolů. Takže jsem loví velmi brzy. Ale chci poděkovat Pentest Labs. Chystám se ukázat, vy něco tzv. Pentest Labs. Jestliže vy jste opravdu zájem co bezpečnostní opravdu je, tam je webové stránky s názvem Pentest Labs, pokud vy jděte do toho hned. Oh, dobře, že to není ono. Jdu na to běžet takhle. Google mi říká, že odpověď. OK. A to učí využívat vás - tak to říká, učit se webové pronikání testování na správnou cestu. Učí vás - doufejme, že jste etický člověk. Ale to vás naučí, jak se můžete podívat na jak se můžete dostat dovnitř webových stránkách. A pokud se naučíte, jak se můžete dostat dovnitř webové stránky, se můžete dozvědět, jak se chránit před stále uvnitř webové stránky. Dovolte mi přiblížit, protože možná vy nejsou při pohledu na tohoto práva. Od SQL injection shell, takže trochu, jak bych mohl dostat z SQL injekce na shell. A můžete stáhnout tento virtuální stroj. A virtuální stroj již přichází se na webových stránkách, že jste Pokusím se to. Můžete stáhnout ve formátu PDF. A to vám ukáže řádek po řádku, co co musíte udělat, co zkontrolovat. To je to, co útočník ve skutečnosti dělá se dostat do webové stránky. A některé z těchto věcí je složité. Přeji si, abych mohl jít na více co s váma. Ale obávám se, že vy ne opravdu - To je to, co jsem přešel s vy, webové testy pro penetrační testy. Opravdu nevím, co SQL je a co - Carl Jackson seminář Je úžasné, jak dobře. Vy nevíte, třídění o tom, co to je. Ale když jdete na těchto stránkách, a vy stáhnout tyto výukové programy a ty PDF, můžete se podívat na druhu co oblast bezpečnosti opravdu v penetračních testů, jak můžete se uvnitř webové stránky a ochrana si z něj. Takže když udělám super rychlý přehled, to bude zabránit cross-site scripting. Chcete-li speciální znaky používat každý když uživatel vstupy něco. Zabránit SQL injection. Pokud to uděláte, jste již lépe než Harvard byl Když se dostali k porušení. A ujistěte se, že vaše hesla nejsou ve formátu prostého textu. Ujistěte se, že nemáte jen jeden způsob, jak hash je ale použít kryptu, PHP funkce, které jsem vám ukázal kluci. Tak, měli byste být dobře. Také, pokud vaši přátelé vám, spusťte SQL Aplikujte mě na svých internetových stránkách. Spusťte cross-site scripting na svých internetových stránkách. A uvidíte mnoho z těchto internetových stránek mají spoustu slabých míst. Je to neuvěřitelné, jak mnoho lidí zapomenout dezinfikovat své databáze nebo aby jistý, co zadáním osoby není kód skriptu. OK. Tak nějak jsem skončil velmi brzy. Ale pokud má někdo nějaké dotazy týkající se něco, můžete mi střílet otázku. Jo. Jdi, jdi. DIVÁKŮ: Chci se jen zeptat, Můžete vysvětlit, jak se soubor nahrát přesně funguje. LUCIANO Arango: Jo. Takže dovolte mi ukázat vám soubor nahrát opravdu rychle. Takže upload - Problém vtip o nahrání souboru právě teď je, že - Jdu otevřít kód, takže si kluci viz kód v zákulisí. A to je nahrát. Zde je kód pro soubor nahrál. Snažíme se jít do toho adresář sem. A snažíme se, jakmile se vstup soubor, isset soubor - takže když je soubor ve spisu, že obraz, poté snažíme se zde pohybovat. Jsme chytit soubor sem. Tato metoda je POST, typ, obrázek, soubor. A my odesláním tohoto souboru. A pak, jakmile dostaneme, takže jakmile soubor má obraz, se snažíme odeslat do tohoto adresáře. Problém je v tom, že webová stránka není nechal mě jít do tohoto adresáře, proto, že nechce, abych se vrátila. Nechce, abych šel - Musím jít - tak tady je nahrát. Tady je fotografie. Musím jít celou cestu zpět do začátek a dát to tam a pak jít a dát ho do adresáře. Takže když jsem běžel okno terminálu, a chtěl jsem se přesunout soubor - [Neslyšitelný] Můžete jej vidět. Kdybych chtěl přesunout soubor, mám vložit název souboru a poté kompletní cesta a chci ji poslat. A pak server není Nechat mě jít zpátky. A tak to nenechám mi dostat do tohoto souboru. Ale za normálních okolností - takže je tu kód nahrání souboru. Tak normálně, co se stane je, že osoba není kontrolovat, zda má soubor končí. jpeg, takže jsem bude chtít zkontrolovat. Dovolte mi otevřít příklad taky opravdu rychle. OK. Tato osoba právo - takže příklad dvou kontroluje pokud preg_match - tady je to tady - Ujistěte se, že končí PHP, což je dobré. To je dobré. Ale je tu opravdu velký Problém s tímto. To je dobré. Ale kdybych si měl dát soubor s názvem myfavoritepicture.php.jpeg, mohl bych stále potenciálně zbavit jpeg a spustit it.k to PHP je nebezpečná. Nechcete, aby osoba, která má být schopna spustit kód na vaše webové stránky. Ale pak. Jpeg nechá ho projít. Myšlenka je to, co opravdu chcete dělat Není se soubory, A., ale OK, co opravdu chcete udělat, je zajistit, aby čtete po celém světě. A není nic. Php v něm. Není. Php ve Celý název souboru. DIVÁKŮ: Ale vy jste mohli dát. jpeg na konci. Servery stále spustit kód. LUCIANO Arango: Ne, to nebude běží na začátku. Musíte se vrátit a zkusit zjistit, jestli můžete - DIVÁKŮ: Takže musíme - OK, jen další set, který zahrnuje - LUCIANO Arango: Jo. DIVÁKŮ: OK. LUCIANO Arango: Jo. OK. Nějaké další otázky? OK. Chystám se opustit to a třídění ze se snaží zjistit, jestli vy můžete - ty ostatní jsou trochu více složité, protože vyžadují hodně více znalost SQL, než jen začátek znalost webových SQL je a co JavaScript je. Ale budu se snažit, aby to nahoru, a doufejme, že vy se dozvíte, o tom a snaží se nahlédnout na co můžete udělat a kolik příkladů můžete dostat přes. Každý, kdo má jakýkoli jiný otázky o tom? Jen do toho. Jo, střílet, střílet. Jo, jděte do toho. Jen do toho. DIVÁKŮ: OK. Slyšel jsem o tom, jak magic quotes nejsou dostatečně bezpečné. LUCIANO Arango: Co - Magic quotes? DIVÁKŮ: Jo. Tak to přidává - takže pokaždé, když vstup něco, je to vždy přidá uvozovky. LUCIANO Arango: Jo. Jo. OK. DIVÁKŮ: A pak jsem si myslel, že pracoval, ale pak jsem hledal ji. A řekl, že to není dobré. Ale nejsem si jistý proč. LUCIANO Arango: Jo. DIVÁKŮ: Nepoužívejte magic quotes, protože to není bezpečné. LUCIANO Arango: OK. Takže magic quotes je, když vložíte SQL a to již dodává citát pro vás. DIVÁKŮ: Je vždy přidá uvozovky kolem, co jste vložili dovnitř LUCIANO Arango: Jo. Proto je problém s tím, že - Budu se podívat na - DIVÁKŮ: Jak to získat SQL? Nebo Myslím, že by to mohlo být jako citace vybrat. LUCIANO Arango: Jo, co potřebujete dobré citace pro SQL. DIVÁKŮ: Ne, ale server to udělá za vás. LUCIANO Arango: Tyto malé citace tady, tyto malé uvozovky? DIVÁKŮ: Jo. LUCIANO Arango: Jo. Problém je v tom, že můžete komentář z poslední - OK, takže to, co mohu udělat, je, že jsem si komentář out - takže se pojďme podívat na - dovolte mi, abych otevřít pro úpravy textu souboru. Dovolte mi stačí upravit tento přímo přímo zde. OK. Můžete vy vidět, že jasně? Co mohu udělat, je, že jsem si komentář z posledního. To bude komentář mimo ten poslední. A pak jsem si dal jeden sem, dát všechny škodlivé věci tady. Takže uživatel je skutečně zadávání, že jo? Uživatel není zadání věci, že jo? To je to, co budu vstup jako člověk se snaží dostat dovnitř. Chystám se dát do - to je jedna uvozovka. Je to jen zakroucený omylem. A pak to, co kód je dělat - Omlouvám se, jdu se na to. Jaký kód je dělat, je to bude přidávat první uvozovky zde. A bude to přidat poslední uvozovky stejně. A je to také bude přidávat poslední poslední uvozovky. Ale já jsem komentoval tyto cenovou nabídku označí se tak, že nejsou v rozporu. A já končím tuto nabídku označit sem. Chápete? Ztratil jste se? Nemohu komentovat poslední nabídku značka, a postarat se o První uvozovky. DIVÁKŮ: A právě úprava první z nich. LUCIANO Arango: Jo. A právě dokončil první. Jo, to je pravda. To je to, co se dá dělat. Jo. Jakékoliv další otázky, jako je to? To je velká otázka. No, ano, možná. Doufejme, že vy se trochu, aby větší smysl, když budete studovat SQL a podobné věci. Ale ujistěte se, že - držet těchto nástrojů v hodinkách. Omlouváme se, ale tyto nástroje více než tady. Tyto nástroje jsou skvělé. Pokud má někdo nějaké dotazy, můžete mi také e-mailem. To je můj normální e-mail. A tohle je můj pracovní e-mail, který je, když pracuji na moři. OK, díky. Díky, kluci. Jsi dobré jít. Nemusíte zůstat tady. Nepoužívejte tleskat. To je divné. OK, díky, chlapi.