LUCIANO ARANGO: OK, kaverit. Nimeni on Luciano Arango. Olen toisen vuoden opiskelija Adams House. Ja aiomme puhua Web Security aktiivista varautumista. Joten olen töissä Office of Information Turvallisuus SEAS. Ja kesän aikana, olen työharjoittelun SeguraTec, joka oli tiedot turvallisuusalan yritys, joka toimi Bank of Columbia. Se on enimmäkseen jossa olen oppinut mitä olen oppinut tähän mennessä. Ja niin osa materiaalista, että olemme mennä yli tänään, meillä ei oikeastaan ​​puhuneet luokassa. Mutta pian. Se tulee olemaan kuin SQL, JavaScript. Ja me emme ole todellakaan mennyt sen yli. Joten en voi järjestellä lennon läpi, ja et ehkä tiedä joitakin asioita. Mutta pian opit sen. Ja se tulee kaikki on selvää. Myös toinen asia - pysyä eettisiä. Jotkut asiat, että opit, voit voisi käyttää ei-eettisiä tapoja. Jos se on sinun, ehdottomasti kokeilla. Olen ehdottomasti motivoida teitä kokeilla omia palvelimia, kokeile menee niiden sisällä. Katso jos voit tunkeutua niitä, jos saat niiden sisällä. Mutta ei kenenkään muun. Poliisit eivät todellakaan pidä vitsejä ja koko, laitamme tämä tässä. Olimme pelleily. He saavat todella vihainen. Joten pään yli tällä sivustolla. Minulla on se avattiin täällä. Tämä on sivusto, ja se on joukko esimerkkejä. Mitä tapahtuu, on, että ensimmäinen esimerkki on tavallaan olemaan paljon helpompaa kuin viimeisin esimerkki mielessä että ensimmäinen esimerkki on täysin epävarma. Ja viimeinen on eräänlainen mitä normaali web turvallisuus ihminen tekisi. Mutta voit silti tavallaan ja kiertää sitä. Ja me aiomme keskittymällä yhteen ja kaksi esimerkkejä yksi ja kaksi. OK. Aloitetaan cross-site scripting. JavaScript ajetaan asiakkaan selaimen. Se on ohjelmointikieli, jota käytät toimimaan asiakkaan selaimeen, jotta sinun ei tarvitse päivittää verkkosivuilla ja mene takaisin palvelimelle. Sinulla on se käynnissä. Esimerkiksi Facebook, sinun ei tarvitse ladata sivuston uusi asema päivitykset keksiä. Se käyttää JavaScript tuottaa kaikki nämä asiat. Joten voimme pistää haitallisen JavaScript osaksi sivustot. Ja sillä tavalla, kun lähetämme linkin joku, voisimme tavallaan lähetä se joitakin koodin että haluamme. On jatkuva ja ei-jatkuva JavaScript - jatkuva ja ei-jatkuva cross-site scripting, tarkoitan. Ja erona on, että jatkuva on Javascript joka on tallennettu verkkosivuilla. Ja ei-jatkuva on JavaScript jotka todellisuudessa vain tapahdu kerran. Joten katsokaamme esimerkki todella nopeasti. OK. Joten tällä sivustolla, yksinkertainen, mitään ei tapahdu täällä. Ja aiomme yrittää lisätä joitakin JavaScript. Joten miten me alat kirjoittaa JavaScript on aloitamme alussa käsikirjoituksen. Ja suljemme sen käsikirjoituksen. Me olemme todella aikoo laittaa viestin - Minä näytän sinulle - hälytys. Alert on toiminto, joka JavaScript käyttää näyttämään jotain. Joten katsotaanpa kokeilla sitä todella nopeasti. Aion mennä, hälytys hei. No, unohdin laittaa - OK. Niin, että yksinkertainen. Laitoimme JavaScript verkkosivuilla, ja se tuli. Ja se tavallaan tapahtuu vain sivuillamme, eikö? Joten se näyttää se ei ole ongelma, eikö? Tarkoitan, miten voisit käyttää Tämän vihamielisesti? Niin niin, että hakkerit tekevät tämä on todella yksinkertaista. He aikovat napata sen. He voivat lähettää linkki sinulle. Jos minä lähetän linkki juuri nyt, ja avaat sen ylös, se tulee sanoa, hei, sanomalla, että minun verkkosivuilla kertoo sinulle hei. Joten jos sanoisin jotain hieman älykkäämpiä, jos vedän ylös JavaScript-toiminto Olen sellainen jo kirjoitti - mutta jos tarkastellaan sitä, menen Over It ennen kuin kirjoitin sen. Joten aiomme asettaa timeout. Aiomme odottaa pari sekuntia. Itse asiassa aiomme odottaa, jos En ole väärässä, viisi sekuntia. Tämä menee millisekunneissa. Ja mitä sitten me aiomme tehdä, on että olemme menossa varoittaa, että login aikakatkaisu kirjautua takaisin sisään Ja me aiomme muuttaa paikan toiseen paikkaan. Joten jos lähetän tämän sivuston jollekulle, he aikovat olla lukemassa ympärillä, rauhallinen. Mitään ei tapahdu. Ja viiden sekunnin, se tulee sanoa, sisäänkirjautuminen vanhentunut. Ole hyvä ja kirjaudu takaisin sisään Kun he sitten OK, aion ottaa ne toiselle sivustolle. Oletettavasti, sivusto tulee olla samanlainen sivusto, joka ne olivat ennen. Ja he aikovat kirjautua niiden Valtakirjojen sivuilleni sijaan niiden verkkosivuilla. Ja jotta voin lähettää ihmisiä sähköpostiin linkki. Sanon, oh, tässä linkki. Tämä on pankki, esimerkiksi. Sanon, täällä, mene tätä linkkiä. Ja kun ne lähettävät ne, he aiotaan lukemassa ympärille. Voin odottaa 15 sekuntia, 20 sekuntia, ja sitten pop että kirjaudu takaisin sisään allekirjoittaa takaisin. Voitte kokeilla sitä paljon enemmän asioita. Se on monimutkaista, koska te ole nähnyt JavaScript, joten saatat tiedä joitakin toimintoja. Mutta kaikki sinun täytyy tehdä on aloittaa script, päättyy script. Ja voisit laittaa mitään keskellä. Alert on toiminto, odota. Ikkunan sijainti vie uuteen paikkaan. Mutta voit tehdä niin paljon enemmän. Ja niin ajatus on, että otamme tämän pois. Jos menen esimerkiksi kaksi, ja minä laittaa tämä sama koodi, se on ei tule toimimaan. Joten se tulostamalla kaiken pois, koska mitä tämä sivusto perin tekee on jos laitan mitään täällä, se tulee tulostaa sen täällä. Joten se ei tulosta mitään pois. Tässä esimerkissä on itse asiassa tarkkailun nähdä, jos kirjoitus on siellä. Niin joo, mene eteenpäin. Kysy minulta. Yleisö: ei lähetä saada tai lähettää pyynnöstä? LUCIANO ARANGO: Joo. he lähettämällä GET-pyynnön. Yleisö: Se on? LUCIANO ARANGO: Joo. Myös selaimet käyttävät POST-pyyntöjä. Mutta yritän näyttää GET jotta voimme nähdä, mitä on todella tapahtuu. Ja niin jos katsomme tätä koodia - joten se ei toimi enää. Ja jos me katsomaan tätä koodia, se tulee olemaan esimerkissä kaksi. Mitä tämä henkilö tekee, henkilö vastuussa tästä selain - avata, OK - korvaa sanan kirjoitus. Tämä on PHP, joka te ehkä ovat nähneet hieman vielä. Hän vain korvaa sana script nimi. Joten kuitenkin, jos menen eteenpäin ja vain laittaa - jos nappaan minun koodi uudelleen, ja aion muokata sitä vain vähän. Sen sijaan, script, aion muuttaa se script pääoman R. Ja aiomme nähdä, jos tämä koodi toimii. Joten se ei tulostaa sen, mikä on hyvä merkki. Ja toivottavasti kaksi sekuntia, se tulee pop up. Kirjautumistietosi aikakatkaistiin. OK. Ei se mitään. Joten tarkistaa skripti pitää ei välttämättä toimi. Henkilö - se voi myös tarkistaa käsikirjoituksen isoja, script pieniä, str tapauksessa vertailla, varmista, että ne ovat samat. Mutta hakkeri voi vielä tehdä sellainen mitä teimme Vigenere kun muutimme takaisin pari merkkiä, eteenpäin. Ja se voi selvittää, miten laittaa script takaisin sinne niin se voi pistää että käsikirjoitus. Joten mitä haluat käyttää on htmlspecialchars to suojata verkkosivuilla. Ja mitä tämä tekee on se tekee Muista, että mitä laitat - esimerkiksi pörssikurssien tai tämän suurempi tai pienempi kuin - korvataan jotain jota ei tule - haluaisin suurentaa täällä - Varsinainen et-merkki. Se korvaa niitä erityisiä HTML merkit, jotka näemme, kun olemme puhumme - Voi, tämä vie minut takaisin - nämä merkit täällä. Nämä merkitsevät, että jotain on tulossa. HTML, että alkaa kiinnike kertoo, että jotain HTML liittyvien on tulossa. Ja haluamme päästä eroon siitä. Emme halua laittaa HTML: website.k Emme halua, että käyttäjä voi laittaa jotain niiden verkkosivuilla jotka voivat vaikuttaa niiden verkkosivuilla, kuten kirjoitus tai HTML tai jotain sellaista. Tärkeää on, että olet puhdistaa käyttäjä syöttää. Joten käyttäjät voivat syöttää monia asioita. Hän voi syöttää nippu tavaraa kokeilla huijata selaimen osaksi vielä tätä käsikirjoitusta koodi. Mitä haluat tehdä, on vain katsoa käsikirjoituksen, mutta näyttää kaiken että voisi olla ilkeä. Ja htmlspecialchars tekee sen sinulle, joten sinun ei tarvitse huolehtia siitä. Mutta älä yritä tehdä itse tavallaan oman koodin. Ovatko kaikki selvä XSS? OK. Mennään SQL injection. Joten SQL-injektio on luultavasti numero yksi haavoittuvuus eri verkkosivustoja. Tarkoitan, hyvä esimerkki - Olin juuri tutkimassa kauimpana tämän asian. Ja löysin tämä mahtava artikkeli, jossa Huomasin, että Harvard on rikottu, oli hakkeroitu. Ja ihmettelin, hyvin, miten he tekevät sen? Harvardin upein, useimmat turvata yliopiston koskaan. Oikea? No, rikkomaan palvelimet, hakkerit käyttää tekniikkaa kutsutaan SQL-injektio. Joten tämä tapahtuu päivittäin. Ihmiset unohtavat ottaa huomioon SQL injektio. Harvardin tekee. Mielestäni tässä sanotaan, Princeton, Stanford, Cornell. Miten siis - niin mitä tämä on SQL injektio, joka tuo kaikki nämä ihmisiä alas? OK. Joten SQL on ohjelmointikieli, joka käytämme pääsyn tietokantoihin. Mitä teemme, on meidän valita - Joten tässä lukee juuri nyt on valitse kaiken pöytä. SQL, se muuttuu näitä tietokantoja että on pöydät täynnä tietoa. Joten valitse kaikkea käyttäjää jos nimi on käyttäjätunnus. Oikea? Helpolta. Ajatus SQL-injektio on, että me lisätä joitakin haitallista koodia, joka olisi huijata palvelimelle käynnissä jotain erilainen kuin mitä se alun perin oli käynnissä. Joten sanotaanko käyttäjätunnuksen, panemme tai 1 vastaa 1. Joten laitamme tai 1 vastaa 1. Miten se lukee nyt tulee valita käyttäjiltä, ​​kaiken käyttäjille - tämä on kaikki - missä nimi on käyttäjätunnus, mutta käyttäjätunnus on tai 1 vastaa 1. Joten nimi ei ole mitään tai 1 vastaa 1. 1 vastaa 1 on aina totta. Joten tämä palaa aina tietoa käyttäjiltä. OK. Meidän ei tarvitse olla oikea käyttäjätunnus. Voimme vain olla mitään, että haluamme, ja se palaa tiedot että me tarvitsemme. Katsotaan toinen esimerkki. Jos olemme valita kaiken käyttäjä, missä nimi on DROP TABLE käyttäjille - niin mitä luulet tämän tahtoa tehdä, jos laitoin käyttäjätunnus kuten DROP TABLE käyttäjille? Kellään idea? Kyllä. Yleisö: Se tulee kertoa se upottaa kaikki taulukot. LUCIANO ARANGO: Se tulee kertomaan meille upottaa kaiken verkkosivuilla, Kaikki tietokantaan. Ja mitä ihmiset käyttävät tätä - niin Aion näyttää teille. Poistin pudottamalla taulukoita koska en halua sinua kaverit pudotan taulukoita. Katsotaanpa katsomaan tätä. Joten tämä yksinkertaisesti vetää ylös tiedot tietyn henkilön. Joten mistä me tiedämme, jos tämä on vaikuttaa SQL-injektio. Aiomme tarkistaa todella nopeasti jos voimme laittaa jotain - haluan kopioida tätä koodia. Aion mennä yli sen toisen. Aion laittaa juuri ja 1 vastaa 1. Tämä täällä, tämä prosenttimerkki 23 - mitä se todella on, jos olen näytä oikealta täällä - miten HTML vie numerot, jos katsomaan kun laitoin avaruudessa täällä - jos olisin avaruuteen jotain täällä, se muuttuu sen prosenttia 2. Onko teillä näet tämän täällä kun laitoin tilaa? Miten se toimii on, että voit vain Lähetä ASCII arvot läpi HTML. Niin se korvaa, esimerkiksi tilaa prosenttia 20. En tiedä, jos te ovat nähneet, että ennen. Se korvaa hashtag kanssa prosenttia 23. Meidän on hashtag lopussa tai lausuma jotta voimme kertoa tietokanta unohtaa kommentoida ulos tämä viimeinen puolipiste lopussa. Haluamme, että se ei ajatella, että. Haluamme vain se ajaa kaiken että meillä on etukäteen ja kommentti, että ulos. Katsotaanpa katsomaan sitä. Joten jos olisin laittaa jotain vikaa - sanotaanko esimerkiksi laitoin 2 tasavertaisina 1, se ei anna minulle mitään. Kun laitoin 1 on 1, ja se tekee palata jotain, tämä kertoo minulle, että tämä on altis SQL-injektio. Tiedän nyt, että mitä tahansa Laitoin tämän jälkeen - ja pudota esimerkiksi TAULUKOT tai jotain varmasti toimii. Tiedän, se on altis SQL-injektio koska tiedän, että alla huppu, se antaa minua tekemään 1 on 1 asia. OK? Ja jos katsomme näitä muista poikkeava, kakkonen ja kolmonen, se on aikoo tehdä hieman enemmän tarkkailun alla huppu, mitä se on. Joten kuka tahansa mahdollistavat pudota vielä mitään tai yrittänyt? Onko teillä tavallaan saada SQL vielä? Koska tiedän, teillä ei nähnyt sitä vielä, joten se on eräänlainen hämmentää teitä. Katsotaanpa katsomaan. Niin mitä tapa estää SQLI? OK. Joten tämä on todella tärkeää, koska et kaverit varmasti halua estää tämä verkkosivustoja. Jos ei, kaikki ystäväsi ovat menossa pilkata sinua, kun ne pudottaa kaikki pöydät. Joten ajatus on, että olet korjannut SQL tietyllä tavalla, kun taas te ottelu mitä käyttäjä syöttää kanssa tiettyjä merkkijono. Joten miten tämä toimii on valmistella tietokantaan. Voit valita nimi, väri, ja kaloreita tietokannasta nimeltään hedelmiä. Ja sitten jos kaloreita on vähemmän kuin, ja laitoimme kysymysmerkki siellä sanoen aiomme tulo jotain toista. Ja väri on sama, ja laitamme kysymys Mark sanoen aiomme input jotain toista samoin. OK? Ja sitten me toteuttaa sen, mikä 150 ja punainen. Ja tämä tarkista Varmista, että nämä kaksi - Tämän array tarkastavat kyseisten kaksi on kokonaisluku, ja , että tämä on merkkijono. Sitten mennään, ja noudamme kaikki, laitamme sen punaisella. Se tarkoittaa, että noudettava kaikki. Se tarkoittaa me itse suorittaa SQL selvitys ja laita se takaisin punaisella. Täällä teemme saman, mutta me tehdä saman keltainen. Ja noudamme kaikki. Ja tällä tavalla, me estää käyttäjää siitä, että voin syöttää jotain että me emme määritelty, merkkijono tai kokonaisluku, esimerkiksi. Puhuin aiemmin siitä luottaa muihin. Kun kaverit aloitat projektin, olet aivan varmasti aio käyttää bootstrap tai jotain vastaavaa. Oletteko koskaan käyttänyt Wordpress? Luultavasti te käyttänyt Wordpress todennäköisimmin. Joten ongelma käyttäessäsi muiden ihmisten asioita - Olen juuri menossa Google todella nopeasti Wordpress haavoittuvuutta. Jos vedän tämän juuri nyt - Olen kirjaimellisesti teki kahden sekunnin Google. Voimme nähdä, että Wordpress - tämä on päivätty syyskuussa '12. 26 päivitetään. Oletuskokoonpanoon Wordpress ennen 3.6 ei estä näitä tietyt lisäykset, jotka saattaisivat helpottaa cross-site scripting-hyökkäyksiä. Joten nopea tarina, kun työskentelimme kanssa - joten olin, kesällä, työ työharjoittelu. Ja me työskentelivät eräänlainen isolta luottokorttiyhtiö. Ja he luottavat jotain kutsutaan - En tiedä, jos te koskaan pelannut tuotteen nimeltä Joomla. Joomla on tuote, jota käytetään ohjaus - tavallaan samanlainen Wordpress, käytetään rakentaa verkkosivustoja. Joten heillä oli verkkosivuilla työskentelevät Joomla. Tämä on oikeastaan ​​luottokortin Yhtiö Kolumbiassa. Vien sinut heidän verkkosivuilla todella nopeasti. Joten he käyttivät Joomla. Ja ne ei ollut päivittänyt Joomla on uusin tulokas. Ja niin kun olimme vilkaisemalla koodia, pystyimme itse mennä sisälle koodiaan ja varastaa kaikki luottokortin tiedot, että he olivat, kaikki luottokortin numeroita, nimet, osoitteet. Ja tämä oli vain - ja niiden koodi oli täysin kunnossa. Heillä oli suuri koodi. Se oli kaikkien turvallisuutta. He tarkistivat kaikki tietokannat. He varmistivat cross-site scripting oli hieno. Mutta he käyttivät jotain, joka ei ollut päivitetty, tuo ei ollut turvallista. Ja niin, että johti heidät - niin te varmasti menossa käyttää muita ihmisten koodi, muiden ihmisten puitteiden rakentaa oman sivuston. Varmista, että ne on turvallinen, koska joskus se et ole sinä, joka tekee virheen. Mutta joku muu tekee virheen, ja sitten putoat takia. Salasanat ja PII. Joten salasanoja. OK. Katsotaanpa katsomaan salasanat todella nopeasti. OK. Kerro minulle, että kaikille käyttää Secure - Toivon kaikille täällä käyttää turvallisia salasanoja. Olen vain kerroit, että niin oletus. Joten te varmasti menossa tallentaa salasanoja sivustot. Aiot tehdä jotain login tai jotain. Mikä on tärkeää, ei pidä säilyttää salasanoja tekstimuodossa. Tämä on erittäin tärkeää. Et halua tallentaa salasanan selväkielisenä. Ja et varmasti oikeasti halua tallentaa se yksi tapa hash. Joten mitä yksi tapa hajautus on, että kun tuottaa sana, kun laitat tämän sanan hash funktio, se luoda back jonkinlainen kryptinen viestin tai kryptinen avaimet. Näytän teille esimerkin. Aion hash he sanan password1. Joten MD5 aikoo palata minulle jonkinlainen outo tietoa. Ongelmana on, että ihmiset siellä jotka haluavat mennä sivustot ovat jo tajunnut sort Kaikkien md5 hash. Mitä he on he istuivat niiden tietokoneita, ja ne risu joka yksi mahdollinen sana siellä, kunnes he saivat tavallaan, mitä tämä on. Jos minun pitäisi etsiä tähän asti - Minä vain tarttui tätä hash. Jos saan tämän hash alkaen - jos menen verkkosivuilla, ja pidän Tämän hash koska saan tietokannat, ja odotan sitä, joku jo tajunnut sen minulle. Joo. Niin kansa istui, ja mitä md5 hash että asetat, he aikovat palata sinulle jotain että on sana. Jos minä hash toinen sana, kuten - En tiedä - trees2. En halua olla pettynyt minun Google-hakuja. Siinä se on, trees2. Niin paljon sivustoja silti käyttää md5 hash. He sanovat, oi, se on turvallinen. Emme tallentaminen tekstimuodossa. Meillä on tämä md5 hash. Ja kaikki minun täytyy tehdä, on vain Google numero. En edes tarvitse laskea itseäni. Voin vain googlettaa, ja joku jo teki sen minulle. Tässä nippu niitä. Tässä nippu salasanoja. Niin ehdottomasti älä käytä md5 hash, koska kaikki mitä on vain googlettaa. Joten mitä haluat käyttää sen sijaan? OK. Jotain kutsutaan suolaus. Joten mitä suolaus on - te olette Muistatko, kun olimme puhutaan satunnaisesti - En ole varma, mitä PSET se oli - on se PSET siellä tai neljä? Puhuimme löytää neulaa heinäsuovasta. Ja PSET, se sanoi, että voisit todella selvittää, mitä satunnainen generoi koska joku on jo juossut satunnainen miljoonaa kertaa ja vain tavallaan muodostettu, mitä ne tuottavat. Mitä haluat tehdä, on laittaa tulo. Niin, että mitä suolaus tavallaan on. Ne on jo tajunnut, mitä suolaus palauttaa jokaisen työtä. Joten mikä suolaus tekee, on laitat suolaa. Laitat tietty sana. Ja se hash että sana riippuen siitä, mitä laittaa tänne. Joten jos olen hash salasana yksi tämän lause, se tulee hash toisin, jos minä hash password1 kanssa eri lauseen. Se tavallaan antaa sille jonnekin Aloita hajakoodausmenettelyyn alkaa. Joten se on paljon vaikeampi laskea, mutta voi vielä laskea, varsinkin jos käytät huono suolaa. Ihmiset ovat jo myös tajunnut yhteinen suolat ja tajunnut mitä se on. Satunnainen suolat ovat paljon parempia, mutta paras tapa on käyttää jotain kutsutaan kryptassa. Ja mitä krypta voit do - joten nämä toiminnot ovat jo rakennettu sinulle. Monet ihmiset unohtavat, että tai he unohtavat käyttää sitä. Mutta jos katson ylös krypta PHP, crypt jo palauttaa hash merkkijono minulle. Ja se todella dannaisiin sen monta kertaa ja hash sen monta kertaa. Joten meidän ei tarvitse tehdä tätä. Joten sinun tarvitsee vain Lähetä se kryptassa. Ja se luo suurta hash ilman sinun tarvitse murehtia suolaa tai jotain. Koska jos olit suolaa, sinun täytyy muistaa, mitä suolaa käytit koska jos ei, et voi saada salasanan takaisin ilman suolaa, jota käytit. OK. Ja myös henkilökohtaisia ​​tunnistettavia tietoja. Joten sosiaaliturva, luottokortti - se on aika selvää. Mutta joskus ihmiset unohtavat miten se teoksia on, kuinka paljon tietoa sinä todella täytyy löytää joku henkilö? Joku teki tutkimuksen siitä, tällä tavalla takaisin. Ja se oli kuin, jos sinulla on koko nimi, et löydä joku, joka helposti. Mutta mitä jos sinulla on täydellinen nimi ja syntymäaika? Riittääkö tunnistaa joku erityisesti? Mitä jos sinulla on nimensä ja katuosoite, että he elävät? Riittääkö löytää joku? Ja silloin he kysymys, mikä on henkilökohtaisia ​​tunnistettavia tietoja, ja mitä sinun pitäisi pelätä ei lahjoittaa? Jos annat pois henkilökohtaisia ​​tunnistettavia tietoa, että joku antaa sinulle, sinulla voisi mahdollisesti saada haastaa. Ja emme todellakaan halua. Joten kun olet laskemisesta sivustosi ulos, ja olet todella cool suunnittelu, toivottavasti olet tehnyt mahtava opinnäytetyön. Mikään olet tavallaan haluat laita se siellä. Haluat varmista, että mitä olet ottaen käyttäjältä, jos se on henkilökohtaisia ​​tunnistettavia tietoja, sinua haluavat varmistaa, että olet ollut täysin varovainen sen kanssa. Kuori injektio. OK. Shell injektion avulla tunkeutujan päästä käsiksi todellinen komentoriviltä oman palvelimen. Ja niin hän pystyy suorittamaan koodia että et voi hallita. Otetaanpa esimerkki tästä kaunis string täällä. Jos menemme sivustolla uudelleen, olen aio mennä koodininjektiomoduuli. Joten mitä tämä tekee on - se on myös mitä olimme katsot ennen. Olemme kerroit käyttäjä ei missä tahansa hän haluaa, ja se tulostaa ne mitä haluat. Joten aion laittaa puhelun. Mikä tämä on - se alkaa ketjuttamalla. Joten se anna minun ajaa mitä tahansa komento henkilön käynnissä ennen ja minun komento. Ja olen käynnissä järjestelmän komennon. Ja nämä viimeiset jouset ovat - muista mitä puhuin teille noin, ottaa huomioon, että sinun täytyy koodata se URL menetelmällä. Jos minä suorittaa tämän nyt - Minä näytän sinulle tänne - näet, että päädyin up käynnissä komennon. Tämä on itse asiassa todellinen palvelin että minun verkkosivuilla on käynnissä. Joten emme halua, että koska voin ajaa - Tämä palvelin ei ole minun. Joten en halua sotkea hänen sisko, Marcus palvelimelle. Mutta voit ajaa enemmän komentoja jotka ovat vaarallisia. Ja mahdollisesti voisit poistaa tiedostoja, poistaa hakemistoja. Voin poistaa tiettyjä hakemiston, jos Halusin, mutta en halua tehdä, että Marcus. Hän on mukava kaveri. Hän antoi minun lainata hänen tarjoilija. Joten aion antaa hänen pois hyvä. Joten mitä emme halua käyttää - emme haluat käyttää eval tai järjestelmän. Eval tai järjestelmän avulla voimme nämä systeemikutsut. Eval keinoja arvioida. Järjestelmä tarkoittaa sitä, mitä minä juoksin. Se ajaa jotain järjestelmään. Mutta voimme outlaw näitä asioita PHP jotta emme käytä niitä. Ja tiedostonlähetyskiintiö. Aioin tehdä mahtava juttu latauskiintiö. Mutta kuten sanoin teille, minun tiedosto upload asia ei toimi. Jos minun pitäisi ladata tiedoston juuri nyt - jos olisin ladata tiedoston, ja se kuva - sinulla on upload asia se kuva. Se on hyvä. Mitään ei tapahdu. Mutta jos sinulla on ladata tiedoston, Esimerkiksi, ja käyttäjä todella lisäykset PHP-tiedosto tai exe-tiedosto tai jotain kuin että, niin sinulla voisi mahdollisesti on ongelma. Tämä toimi ennen. Valitettavasti minulle, se on ei toimi enää. Jos minä esimerkiksi lataa tämä tiedosto, olen ei saada lupaa siirtää tiedosto johtuu palvelimeen ei ole minun. Joten kaveri on todella fiksu. Joten emme halua - Aion näyttää teille - OK, nämä ovat joitakin todella hienoja työkaluja. Joten nämä - mennä - jos teillä Firefox - toivottavasti et. On kaksi lisäosaa nimeltään SQL Injektoidaan Minä ja Cross-Site Script Me. Se avaa niin vähän puolella palkit. Ja jos olisin mennä CS60 esimerkiksi - niin mikä se on se näyttää kaikki muodot, - Toivottavasti en saa pulassa tähän. Mutta OK. Tässä pin järjestelmän. Joten kun aloitat etsivät reikiä järjestelmä, ensimmäinen asia mitä teen on avaa tämä kaunis pieni työkalun puolella. Ja aion testata lomakkeita auto hyökkäyksiä. Ja niin mitä tämä tekee on se hitaasti avata joukko selaimissa. Tässä nippu selaimissa. Ja se yrittää joka ikinen yhdistelmä ja cross-site scripting että siellä mahdollisesti on, jos näet puolella. Ja se antaa minulle tulos tavallaan, mikä vastaus on. Kaikki kulkea. Ilmeisesti he kaikki kulkevat. Tarkoitan, he todella älykäs ihmiset siellä. Mutta jos olisin juosta - Minulla on ollut kertaa ennen kun käytän tätä opiskelijoiden opinnäytetöissä. En yksinkertaisesti ajaa SQL Pistä Me kanssa kaikki erilaisia ​​hyökkäyksiä. Ja se yrittää SQL pistää Tämä pin-palvelin. Jos siis selaa alaspäin varten Esimerkiksi se sanoo - Tämä on hyvä, jos se palaa. Joten se kokeilleet joitakin tiettyjä arvoja. Ja se palautti koodi, joka oli negatiivinen. Poista tilapäisesti. Tämä on hyvä. Se yrittää kaikki nämä testit. Joten voi yksinkertaisesti ajaa - Voisinpa löytää sivusto, todellinen nopeasti, että antaisi minun - ehkä CS50 myymälä. Vau, tämä on menossa kestää aivan liian kauan. Annan ensimmäinen testi ei viimeistelyssä. Niin se valittaa. Joten nämä kolme asiaa. Nämä työkalut ovat ilmaisia. Voit ladata ne ja ajaa ne sivuston, ja se kertoo, jos sinulla on cross-site scripting, jos sinulla on SQL, jos sinulla on jotain samankaltaista. Olen tavallaan Messing ylös. Mikä on tärkeää - OK, niin ei koskaan luota käyttäjä. Riippumatta käyttäjä syöttää sinulle, tee Muista puhdistaa se, kun puhdistaa sitä, tarkistat oikeita asioita, että se antaa sinulle, mitä sinun halua häntä antamaan teille. Aina ajan tasalla siitä, mitä kehysten että olet todellisuudessa käyttävät. Jos käytät jotain bootstrap - Tiedän, te aiot käyttää bootstrap koska hän aikoo mennä tänä pian luokassa - ja Wordpress tai jotain, normaalisti tämä voitaisiin hakata. Ja sitten et edes tiedä. Olet juuri käynnissä sivuston. Ja se on täysin turvallinen. Ja mennä alas. Joten olen kalastuksesta todella aikaisin. Mutta haluan kiittää Pentest Labs. Aion näyttää teille jotain nimeltään Pentest Labs. Jos te todella kiinnostunut Mitä turvallisuus todella on, siellä sivuston nimeltä Pentest Labs jos te mennä sitä juuri nyt. No, se ei ole sitä. Olen juuri menossa ajaa sitä näin. Google kertoo minulle vastauksen. OK. Ja se opettaa käyttää sinua - niin se sanoo, oppia web levinneisyys testaus oikealla tavalla. Se opettaa - toivottavasti olet eettinen henkilö. Mutta se opettaa sinulle, miten voit katsoa miten voit päästä sisälle sivustot. Ja jos opit miten voit päästä sisälle sivustot, voit opetella suojautua saamasta sisällä sivustot. Saanen zoomata koska ehkä te ei katsomalla tätä oikeutta. SQL injektio kuori, joten Lajittele kuinka saan SQL injektio kuori. Ja lataat tämän virtuaalikoneen. Ja virtuaalikone jo tulee kanssa verkkosivuilla, että olet aio kokeilla sitä. Lataat tämän PDF. Ja se näyttää rivi riviltä mitä sinun täytyy tehdä, mitä tarkistaa. Tämä on mitä hyökkääjä todella ei päästä sisälle verkkosivuilla. Ja jotkut tätä kamaa on monimutkainen. Voisinpa mennä yli enemmän asioita teidän kanssa. Mutta pelkään, että te ole oikeastaan ​​- tämä on mitä menin kanssa te, web testit levinneisyys testaus. Eivät todellakaan tiedä, mitä SQL on ja mitä - Carl Jacksonin seminaari on mahtava myös. Te ette tiedä sort mitä tämä on. Mutta jos menet tällä sivustolla, ja voit ladata nämä oppitunnit ja nämä PDF, voit vilkaista eräänlainen mitä turvallisuuden alalla todella vuonna levinneisyys testaus, miten voit päästä sisälle sivustot ja suojaa itsesi siitä. Joten jos teen erittäin nopeasti yleiskuvan, se käy estää cross-site scripting. Haluat käyttää htmlspecialchars joka ajoittaa käyttäjä syöttää jotain. Estä SQL-injektio. Jos teet niin, olet jo paremmin kuin Harvard oli Kun he pääsivät rikottu. Ja varmista, että salasanat eivät ole pelkkää tekstiä. Varmista, et vain yksi tapa hash niitä, mutta että käytät krypta, PHP toiminto, näytin teille. Näin sinun pitäisi olla hyvä. Myös, jos ystäväsi voit, suorita SQL Pistä Me verkkosivuillaan. Suorita cross-site scripting verkkosivuillaan. Ja näet paljon näitä sivustoja on ton haavoittuvuuksia. On uskomatonta, kuinka paljon ihmiset unohtavat puhdistaa niiden tietokantoihin tai tehdä varma, mitä henkilön vieneelle ei ole script koodi. OK. Minä tavallaan päättyi todella aikaisin. Mutta jos jollakulla on kysyttävää mitään, voit ampua minut kysymys. Joo. Mene, mene. Yleisö: Haluan vain kysyä, voitteko selittää, miten tiedosto lataa tarkalleen toimii. LUCIANO ARANGO: Joo. Joten haluan näyttää sinulle tiedoston lataa todella nopeasti. Joten latauskiintiö - Ongelma wit latauskiintiö nyt on, että - Aion avata koodia niin te katso koodi kulissien takana. Ja se on ladata. Tässä koodi Tiedosto Uploader. Yritämme mennä tähän hakemistoon tänne. Ja me yritämme, kun olemme tulo tiedosto, isset tiedosto - niin kun on tiedosto tiedostoihin, että kuva, sitten yritämme siirtää sen täällä. Me napata tiedoston tänne. Menetelmä on POST, tyyppi, kuvien ja tiedostojen. Ja lähetämme tämän tiedoston. Ja sitten kun saamme sen, joten kun tiedosto on kuva, yritämme lähettää sen tähän hakemistoon. Ongelmana on, että sivusto ei ole saan mennä tähän hakemistoon, koska se ei halua minun mennä takaisin. Se ei halua minun mennä - Minun täytyy mennä - joten tässä on ladata. Tässä kuvia. Minun täytyy mennä aina takaisin alussa ja laita se siellä ja sitten mene ja laita se hakemistoon. Joten jos Juoksin pääteikkunaa ja halusin siirtää tiedoston - [Äänetön] voi nähdä sen. Jos haluaisin siirtää tiedoston, minulla on laittaa tiedoston nimi ja sitten täydellinen polku Haluan lähettää sen. Niin palvelin ei ole saan palata. Ja niin se ei päästä minua saamaan kyseisen tiedoston. Mutta normaalisti - joten siellä koodi lataamalla tiedosto. Joten yleensä käy niin, että henkilön ei tarkista jos tiedosto päättyy. jpeg, joten en haluaisi tarkistaa. Saanen avata esimerkiksi liian todella nopeasti. OK. Tämä henkilö oikeassa - joten esimerkiksi kaksi on tarkkailun jos preg_match - tässä se on täällä - varmistaa, että päättyy PHP, joka on hyvä. Tämä on hyvä. Mutta on todella iso Ongelmana tässä. Tämä on hyvä. Mutta jos olisin laittaa tiedosto nimeltä myfavoritepicture.php.jpeg, voisin vielä mahdollisesti päästä eroon jpeg ja ajaa it.k että PHP: n vaarallisia. Et halua henkilö voi suorittaa koodia sivustossasi. Mutta sitten. Jpeg antaa sen kulkea. Ajatuksena on, mitä todella haluat tehdä ei ota kuvaa, A. Mutta, OK, mitä todella haluat tehdä, on varmistaa, että luet koko maailmassa. Eikä siinä mitään. Php siinä. Ei ole. Php vuonna koko tiedoston nimi. Yleisö: Mutta voisit laittaa. jpeg päähän. Palvelimet silti ajaa koodia. LUCIANO ARANGO: Ei, se ei ajaa alussa. Sinun täytyy mennä takaisin ja yritä nähdä, jos voit - Yleisö: Meidän on siis - OK, vain toinen joukko, joka liittyy - LUCIANO ARANGO: Joo. Yleisö: OK. LUCIANO ARANGO: Joo. OK. Muuta kysyttävää? OK. Aion jättää tätä ja lajitella ja yrittää nähdä, jos te voitte - toisilla on hieman enemmän monimutkainen, koska ne vaativat paljon Lisää tietoa SQL kuin vain alussa webin SQL on ja mitä JavaScript on. Mutta aion yrittää pitää tätä, ja toivottavasti te opit tästä ja yrittää kurkistaa mitä voit tehdä ja kuinka monia esimerkkejä voit saada läpi. Kellään mitään muita kysymyksiä siitä? Mennä eteenpäin. Joo, ampua, ammu. Joo, mennä eteenpäin. Mennä eteenpäin. Yleisö: OK. Joten kuulin kuinka Taikuus Quotes eivät ole riittävän turvallinen. LUCIANO ARANGO: Mitä - Taikuutta Quotes? Yleisö: Joo. Joten se lisää - joten aina kun tulo jotain, se tuo aina lainausmerkkejä. LUCIANO ARANGO: Joo. Joo. OK. Yleisö: Ja sitten ajattelin, että toimi, mutta sitten olen etsinyt sitä. Ja se sanoi, että se ei ole hyvä. Mutta en ole varma miksi. LUCIANO ARANGO: Joo. Yleisö: Älä käytä Magic-Quotes, koska se ei ole turvallista. LUCIANO ARANGO: OK. Joten Magic-Lainaukset on, kun asetat SQL ja se jo lisää tarjous sinulle. Yleisö: Se tuo aina lainauksia noin mitä laitat sisään LUCIANO ARANGO: Joo. Joten ongelma eli se, että - Tulen katsomaan - Yleisö: Miten se hankkii SQL-lause? Tai kai se voisi olla kuten lainaus valitse. LUCIANO ARANGO: Joo, tarvitset hyvä lainausmerkkejä SQL. Yleisö: Ei, mutta palvelin tekee sen puolestasi. LUCIANO ARANGO: Nämä pienet lainauksia täällä, nämä pienet lainausmerkit? Yleisö: Joo. LUCIANO ARANGO: Joo. Ongelmana on, että voit kommentti, viimeinen - OK, niin mitä voin tehdä, on voin kommentoida out - joten katsotaanpa katsomaan - haluan avata tekstiä muokata tiedostoa. Haluan vain muokata tätä täällä suoraan. OK. Voitteko nähdä, että selvästi? Mitä voin tehdä, on voin kommentoida ulos viimeinen. Tämä kommentti, viimeinen. Ja sitten laitan yhden täällä, laita kaikki ilkeä tavaraa täällä. Joten käyttäjän on itse asiassa syöttämällä, eikö? Käyttäjän ei syöttämistä asioita, eikö? Tämä on mitä aion tulo kuin henkilö yrittää päästä sisälle. Aion laittaa - se on yksi lainausmerkki. Se on vain koukeroinen vahingossa. Ja mitä sitten koodi aikoo tehdä - pahoillani, aion ottaa tämän pois. Mitä koodi tulee tehdä, on se tulee lisätä ensin lainausmerkit täällä. Ja se tulee lisätä viimeisen lainausmerkki samoin. Ja se myös aikoo lisätä viime, viimeinen lainausmerkki. Mutta olen kommentoi näitä noteerausta viitoittaa, joten he eivät suorita. Ja olen viimeistely lainaus merkitä tänne. Ymmärrätkö? Oletko eksynyt? Voin kommentoida viimeinen kaupantekokurssi merkki, ja huolehtia ensimmäinen lainausmerkki. Yleisö: Ja juuri viimeistely ensimmäinen. LUCIANO ARANGO: Joo. Ja juuri loppuun ensimmäinen. Joo, aivan oikein. Se mitä voin tehdä. Joo. Muita kysymyksiä, kuten että? Se on hyvä kysymys. Ei, kyllä, ehkä. Toivottavasti kaverit tavallaan tekee enemmän järkeä, kun tutkimus SQL ja tuollaista. Mutta varmista, että - pitää näitä välineitä katsella. Anteeksi, nämä työkalut tänne. Nämä työkalut ovat suuria. Jos jollakulla on kysyttävää, Voit myös lähettää minulle. Tämä on minun normaali sähköposti. Ja tämä on minun työni sähköposti, joka on, kun olen töissä Merellä. OK, kiitos. Kiitos kaverit. Olet hyvä mennä. Sinun ei tarvitse jäädä tänne. Älä taputa. Outoa. OK, kiitos, kaverit.