LUCIANO ARANGO: OK, Jungs. Mein Name ist Luciano Arango. Ich bin im zweiten Jahr in Adams Haus. Und wir reden über Web-Sicherheit aktive Verteidigung. So arbeite ich für das Office of Information Sicherheit in der SEAS. Und über den Sommer, zumin interniert ich SeguraTec, die eine Information war Sicherheitsunternehmen, das serviert für die Bank of Columbia. Das ist vor allem, wo ich gelernt was ich bisher gelernt haben. Und so etwas von dem Material, das wir sind werde heute gehen über, haben wir nicht wirklich um in der Klasse gesprochen. Aber wir werden bald. Es wird wie SQL, JavaScript zu sein. Und wir haben nicht wirklich über sie weg. So kann ich der Flug durch sie zu sortieren, und Sie vielleicht nicht wissen einige Dinge. Aber bald werden Sie es lernen. Und es wird alles Sinn machen. Auch eine andere Sache - bleiben ethisch. Einige der Dinge, die Sie lernen, Sie könnte in nicht-ethische Weise verwenden. Wenn es Ihnen, auf jeden Fall versuchen. Motiviere ich euch auf jeden Fall eigene Server versuchen, versuchen geht in ihnen. Sehen Sie, wenn Sie sie zu durchdringen, wenn Sie in ihnen bekommen kann. Aber nicht jemand anderen. Cops nicht wirklich mögen und die Witze das ganze, haben wir diese hier ein. Wir machten Unsinn. Sie bekommen wirklich wütend. Also den Kopf über diese Website. Ich habe es hier eröffnet. Dies ist eine Website, und es hat eine Reihe von Beispielen. Was geschieht, ist, dass das erste Beispiel ist eine Art, zu gehen, viel einfacher als das letzte Beispiel in einem Sinn daß das erste Beispiel ist völlig unsicher. Und das letzte ist, was für ein Art von normalen Web-Sicherheit Person tun würde. Aber man kann immer noch sortieren bekommen, dass rund. Und wir sind der Fokussierung auf ein gehen und zwei Beispiele eins und zwei. OK. Lassen Sie uns mit Cross-Site-Scripting zu starten. Die JavaScript auf ausführen Browser des Clients. Es ist eine Programmiersprache, die Sie verwenden auf dem Browser des Clients so laufen Sie nicht haben, um die Website zu aktualisieren und gehen Sie zurück an den Server. Sie haben es ausgeführt. Zum Beispiel, Facebook, müssen Sie nicht , um die Website für neuen Status neu zu laden Aktuelles zu kommen. Es wird mit Hilfe von JavaScript zu erzeugen alle diese Dinge. So können wir bösartige JavaScript injizieren in den Webseiten. Und so, wenn wir einen Link zu jemand, könnten wir eine Art senden Sie es mit Teil des Codes, die wir wollen. Es gibt anhaltende und nicht-persistent JavaScript - persistente und nicht persistente Cross-Site Scripting, meine ich. Und wobei der Unterschied darin, dass persistente JavaScript ist das sein wird auf der Website gespeichert. Und nicht-persistente wird JavaScript sein dass tatsächlich nur einmal passieren. Also schauen wir uns ein Beispiel an ganz schnell. OK. Also diese Website, einfach, nichts passiert hier. Und wir werden versuchen, legen einige JavaScript. So ist die Art, wie wir mit dem Schreiben beginnen JavaScript wird beginnen wir mit der Anfangs Skript. Und wir schließen es mit Script. Wir sind einfach da, um eine Nachricht zu setzen - Ich werde Ihnen zeigen - Warnung. Alert ist eine Funktion, dass Javascript nutzt, um etwas anzuzeigen. Also versuchen wir es ganz schnell. Ich werde gehen, wachsam hallo. Nun, ich habe vergessen zu setzen - OK. Also das ist einfach. Wir haben JavaScript auf einer Webseite, und es kam. Und es ist irgendwie passiert nur auf unserer Website, oder? So wie es scheint, ist es nicht ein Problem, oder? Ich meine, wie kann man verwenden dies böswillig? Also die Art und Weise, dass Hacker tun das ist wirklich einfach. Sie werden es packen. Sie können diesen Link an Sie senden. Wenn ich diesen Link, um dich jetzt zu schicken, und Sie können es öffnen, es geht um sagen, hallo, sagen, dass meine Website Ihnen sagt hallo. Und so, wenn ich etwas zu sagen ein waren bisschen schlauer, wenn ich nach oben ziehen ein JavaScript-Funktion I Art der schon schrieb - aber wenn man es betrachtet, werde ich gehen über sie, bevor ich es schrieb. So werden wir einen Timeout. Wir werden warten ein paar Sekunden. In der Tat, wir gehen zu warten, wenn Ich mich nicht irre, fünf Sekunden. Dies geht in Millisekunden. Und dann, was wir zu tun ist, wir sind gehen, um zu warnen, dass der Login Zeitüberschreitung, um sich wieder anmelden Und wir werden, um die Position zu ändern an eine andere Stelle. Also, wenn ich senden Sie uns bitte weiter, sie gehen, um sein Surfen rund, ruhig. Nichts passiert. Und in fünf Sekunden, es geht zu sagen, Zeit Ihre Login-out. Bitte melden Sie sich wieder in. Sobald sie auf OK, ich werde nehmen sie zu einer anderen Website. Vermutlich ist die Website geht um ähnlich sein, dass die Website sie sich vor. Und sie gehen, um sich ihre Anmeldeinformationen in meine Website statt ihrer Website. Und so kann ich Menschen eine Nachricht eine E-Mail mit diesem Link. Ich sage, oh, hier ist ein Link. Dies ist eine Bank, zum Beispiel. Ich sage hier, gehen Sie auf diesen Link. Und wenn sie sie zu senden, sind sie sein werden, um das Surfen. Ich kann für 15 Sekunden, 20 Sekunden warten, und dann Pop, dass Sie wieder anmelden melden Sie wieder auf. Sie können es mit Jungs versuchen viel mehr Dinge. Es ist kompliziert, weil ihr Jungs habe nicht gesehen, JavaScript, so dass Sie vielleicht Einige Funktionen nicht. Aber alles, was Sie tun müssen, ist Start mit Skript, am Ende mit Skript. Und man konnte nichts gebracht in der Mitte. Alert ist eine Funktion, warten. Fenster Lage bringt Sie an einen neuen Standort. Aber so können Sie dies noch viel mehr. Und so ist die Idee ist, dass dass wir aus. Wenn ich gehen, um beispielsweise zwei, und ich legte in diesem gleichen Code, ist es nicht zur Arbeit gehen. So ist es alles, was den Druck aus, weil was dieser Webseite ursprünglich tut, ist, wenn ich hier nichts, es wird es hier drucken. So ist es nichts aus zu drucken. Dieses Beispiel ist eigentlich die Überprüfung zu sehen, ob Skript ist da. Also ja, gehen Sie vor. Fragen Sie mich bitte. ZIELGRUPPE: Ist nicht das Senden eine Anfrage bekommen oder Post? LUCIANO ARANGO: Ja. sie sind Senden einer GET-Anfrage. Zielgruppe: IT ist? LUCIANO ARANGO: Ja. Auch Browser verwenden POST-Anfragen. Aber ich werde versuchen, Anfragen zeigen so dass wir sehen können, was eigentlich vor sich geht. Und so, wenn wir uns mit diesem Code - so dass es nicht mehr funktioniert. Und wenn wir einen Blick auf diesen Code, es wird in Beispiel zwei sein. Was diese Person tut, die Person verantwortlich für diese Browser - öffnen, OK - ersetzt das Wort Script. Dies ist PHP, die euch vielleicht haben ein wenig von noch nicht gesehen. Er ist nur der Austausch Wort-Skript mit Namen. So aber, wenn ich weitermachen und nur in gesetzt - wenn ich meinen Code greifen wieder, und ich werde um sie zu ändern nur ein wenig. Statt Skript, werde ich ändern es für Script mit einem Kapital R. Und wir werden sehen, ob dieser Code funktioniert. So dauerte es nicht ausdrucken, was ein gutes Zeichen ist. Und hoffentlich in zwei Sekunden es geht um Pop-up. Ihr Login abgelaufen. OK. Das ist in Ordnung. So Prüfung für Skript könnte nicht unbedingt funktionieren. Die Person - es kann auch für Groß-Skript zu überprüfen, Skript Kleinbuchstaben, str Fall vergleichen, stellen Sie sicher, dass sie das gleiche. Aber die Hacker kann noch irgendwie was zu tun wir haben, wenn wir in Vigenere bewegt wieder ein paar Zeichen, voranzutreiben. Und es herausfinden können, wie Skript setzen wieder da, damit es spritzen kann dass Skript. Also, was Sie verwenden möchten, ist zu htmlspecialchars schützen Sie Ihre Website. Und was das bedeutet ist, macht es sicher, dass das, was Sie in gesetzt - beispielsweise, Angebote oder diese größer oder kleiner als - mit etwas ersetzt das wird nicht sein - lassen Sie mich hier vergrößern - die tatsächliche Ampersand. Es wird jene spezielle HTML ersetzen Zeichen, die wir sehen, wenn wir reden - oh, das wird mich zurück zu nehmen - Diese Zeichen finden Sie hier. Sie bedeuten, dass etwas kommt. Für HTML, dass beginnend Halterung sagt uns, dass etwas, HTML verwandten kommt. Und wir wollen, dass der loszuwerden. Wir wollen nicht in ein HTML setzen website.k Wir wollen nicht, dass der Benutzer sein Lage, etwas in ihrer Website zu dass ihre Website wie beeinflussen, Skript-oder HTML oder so ähnlich. Was wichtig ist, dass Sie desinfizieren die Benutzereingabe. Also die Nutzer eingeben kann viele Dinge. Er kann Eingangs ein paar Sachen zu versuchen an Ihren Browser noch in Trick dieses Script-Code. Was Sie tun wollen, ist nicht nur schauen für Skript, aber schauen Sie für alles dass bösartig sein könnte. Und htmlspecialchars tun wird, dass für Sie, so dass Sie nicht haben, sich darum zu kümmern. Aber versuchen Sie nicht zu tun, selbst Art mit Ihrem eigenen Code. Ist jeder klar XSS? OK. Lassen Sie uns für SQL-Injection zu gehen. So SQL-Injection ist wahrscheinlich die Schwachstelle Nummer eins in verschiedenen Websites. Ich meine, ein gutes Beispiel - Ich war nur der Erforschung weitesten für diese Sache. Und ich fand dieses tolle Artikel, in dem Ich sah, dass Harvard wurde verletzt, wurde gehackt. Und ich frage mich, na ja, wie würden sie es tun? Harvard ist die eindrucksvollsten, die meisten sichern Universität je. Right? Nun, um die Server zu verletzen, verwendet, die Hacker ein Technik namens SQL-Injektion. Also in diesem Fall auf einer täglichen Basis. Die Leute vergessen zu berücksichtigen für SQL-Injektion. Harvard tut. Ich denke, dass es hier heißt, Princeton, Stanford, Cornell. Wie können wir also - so was ist das SQL Injektion, das bringt alle diese Menschen nach unten? OK. So SQL ist eine Programmiersprache, die wir verwenden, um Datenbanken zuzugreifen. Was wir tun ist, wir wählen - so liest, was das ist im Moment wählen alles aus der Tabelle. SQL, in diesen Datenbanken ändert es haben, die Tische voll von Informationen. Also alles, was von den Benutzern wählen wobei der Name Benutzernamen ein. Right? Einfach genug. Die Idee von SQL-Injection ist, dass wir legen einige Schadcode Das wäre Trick den Server in etwas laufen anders als das, was es Ursprünglich lief. Also lassen Sie uns sagen, für Benutzername, wir setzen oder 1 gleich 1 ist. Also haben wir in 1 oder gleich 1 ist. Die Art, wie es nun zu lesen sein wird wählen der Nutzer, der alles von Nutzer - das ist alles - wobei Name Benutzername, aber Benutzername oder 1 gleich 1 ist. So Name ist nichts oder 1 gleich 1 ist. 1 gleich 1 ist immer wahr. So wird dies immer Informationen zurück der Nutzer. OK. Wir brauchen nicht zu haben, die richtigen Benutzernamen ein. Wir können einfach nur alles, was wir wollen, und es wird Informationen zurück dass wir brauchen. Betrachten wir ein anderes Beispiel. Wenn wir alles von Benutzer auswählen, wobei name DROP TABLE-Benutzer - so was denken Sie, dieser Wille tun, wenn ich den Benutzernamen setzen wie DROP TABLE-Benutzer? Wer hat eine Idee? Ja. ZIELGRUPPE: Es wird zu sagen, sie werfen alle Tabellen. LUCIANO ARANGO: Es wird uns sagen um alles in der Website-Dump, alles, was in der Datenbank. Und was die Leute nutzen diese für - so Ich werde euch zu zeigen. Ich deaktiviert fallen die Tabellen weil ich nicht wollen, dass Sie Jungs, meine Tabellen zu löschen. Werfen wir einen Blick auf diese. Also das zieht einfach die Informationen für eine bestimmte Person. So, wie wir wissen, ob dies von SQL-Injection betroffen. Wir werden ganz schnell zu überprüfen, Wenn wir etwas gesagt - lassen Sie mich diesen Code kopieren. Ich werde in einer zweiten, um über sie zu gehen. Ich werde Wurzel gelegt und 1 gleich 1 ist. Dieses Recht ist hier, diese Prozentzeichen 23 - was es wirklich ist, wenn ich schauen hier auf - die Art, wie HTML nimmt in Zahlen, wenn Sie einen Blick auf, wenn ich in einen Raum setzen hier - wenn ich etwas Raum hier, ändert es es zu einer 2 Prozent. Sie sehen diese Jungs hier wenn ich in einen Raum zu setzen? Die Art, wie es funktioniert, ist, dass Sie nur senden ASCII-Werte über HTML. So ersetzt es beispielsweise ein Raum mit 20 Prozent. Ich weiß nicht, ob ihr haben gesehen, dass vor. Es ersetzt einen Hashtag mit 23 Prozent. Wir brauchen einen Hashtag am Ende oder Aussage so, dass wir sagen können, die Datenbank zu vergessen, zu kommentieren diese letzte Semikolon am Ende. Wir wollen, dass es nicht daran denken. Wir wollen nur, dass es alles, was laufen dass wir vorher und Kommentar, dass aus. Werfen wir einen Blick auf sie. Also, wenn ich etwas falsch gesetzt waren - sagen wir zum Beispiel sagen, habe ich zwei Gleichen 1, bedeutet es nicht geben mir nichts. Als ich in 1 setzen gleich 1 ist, und es tut etwas zurückgeben, sagt mir das, dass dies ist anfällig eine SQL-Injektion. Ich weiß jetzt, dass alles, was Ich habe nach dieser - und beispielsweise von Tabellen oder so ähnlich wird auf jeden Fall funktionieren. Ich weiß, es ist anfällig für SQL-Injection weil ich weiß, dass unter der Haube, es lassen mir tun die 1 gleich 1 Sache. OK? Und wenn wir diese anderen, Nummer zwei und die Nummer drei, ist es gehen, um ein bisschen mehr zu tun der Prüfung unter der Haube von dem, was es ist. Wer also das Drop ermöglichen nichts oder ausprobiert? Do you guys Art von SQL noch bekommen? Weil ich weiß, dass du Jungs haben nicht es noch nicht gesehen, so dass es eine Art ist verwirrend für euch. Lassen Sie uns einen Blick. Also, was ist der Weg zu SQLI verhindern? OK. Also das ist wirklich wichtig, weil Sie Jungs wollen auf jeden Fall verhindern diese in Ihre Webseiten. Wenn nicht, werden alle Ihre Freunde zu gehen lustig machen Sie, wenn sie alle fallen Ihre Tabellen. Also die Idee ist, dass Sie die SQL-Reparatur in einer bestimmten Weise, während Sie entsprechen was die Benutzereingaben mit eine bestimmte Zeichenfolge. Also das funktioniert so, Sie Vorbereitung der Datenbank. Sie wählen Name, Farbe und Kalorien aus einer Datenbank namens Obst. Und dann, wenn weniger als Kalorien, und wir setzen ein Fragezeichen gibt sagen wir den Eingang gehen was in einer Sekunde. Und Farbe ist gleich, und wir haben eine Frage Marke sagen, wir werden Eingangs etwas in einem zweiten auch. OK? Und dann werden wir ausführen, setzen in 150 und rot. Und das wird zu überprüfen, um sicher, dass diese beiden - Dieses Array wird überprüfen, ob diese zwei ganze Zahlen und dass dies eine Zeichenkette. Dann gehen wir, und wir holen alle, haben wir ihn in rot. Das heißt, wir holen alle. Es bedeutet, dass wir tatsächlich führen Sie den SQL- Rechnung und steckte es wieder in rot. Hier haben wir das Gleiche tun, aber wir das gleiche für gelb. Und wir holen alle. Und auf diese Weise verhindern wir, dass der Benutzer von der Möglichkeit, etwas Eingangs das ist nicht das, was wir festgelegt, ein String oder eine ganze Zahl, zum Beispiel. Ich war früher reden sich auf andere. Wenn Sie Ihr Projekt Jungs beginnen, sind Sie die meisten definitiv zu verwenden Bootstrap oder etwas ähnliches. Habt ihr jemals verwendet Wordpress? Wahrscheinlich haben Sie Jungs haben verwendet Wordpress am wahrscheinlichsten. Also das Problem mit der Verwendung von anderer Leute Dinge - Ich werde einfach bei Google ganz schnell Wordpress Verwundbarkeit. Wenn ich ziehen diese bis jetzt - Ich habe eine buchstäblich 2 Sekunden Google. Wir sehen, dass Wordpress - dies wird im September '12 datiert. 26 wird aktualisiert. Die Standardkonfiguration von Wordpress vor 3.6 nicht verhindern, dass diese bestimmte Uploads, die Macht erleichtern Cross-Site-Scripting-Angriffe. So eine kurze Geschichte, wenn wir arbeiteten mit - so war ich im Sommer eine Arbeits Praktikum. Und wir waren mit einer Art Arbeits wie eine große Kreditkartenunternehmen. Und sie verlassen sich auf die so genannte - Ich weiß nicht, ob ihr jemals gespielt mit einem Produkt namens Joomla. Joomla ist ein Produkt, das verwendet wird, Kontrolle - eine Art ähnlich Wordpress, verwendet, um Websites zu bauen. So hatten sie ihre Website Arbeiten an Joomla. Dies ist eigentlich eine Kreditkarte Unternehmen in Kolumbien. Ich werde Sie nehmen ihre Website, sehr kurz. So verwendet sie Joomla. Und sie hatte nicht aktualisiert Joomla auf die neueste Ergänzung. Und so, wenn wir einen Blick auf ihren Code, waren wir in der Lage, tatsächlich gehen in ihren Code zu stehlen und alle Kreditkarte Informationen, die sie hatte, alle Kreditkartennummern, die Namen, die Adressen. Und das war nur - und deren Code war völlig in Ordnung. Sie hatten große Code. Es war alles Sicherheit. Sie überprüften alle Datenbanken. Sie stellten sicher, Cross-Site- Skript war in Ordnung. Aber sie war etwas, das nicht verwendet aktualisiert, das war nicht sicher. Und so, das sie nach - so Jungs sind definitiv zu anderen verwenden Code, Frameworks der Menschen andere Menschen für den Aufbau Ihrer Website. Stellen Sie sicher, dass sie sicher sind, weil manchmal ist es nicht wahr, die eine, die einen Fehler macht. Aber jemand anderes einen Fehler macht, und Sie fallen dann deswegen. Passwörter und PII. So Passwörter. OK. Werfen wir einen Blick auf Passwörter ganz schnell. OK. Bitte sagen Sie mir, dass jeder verwendet sichere - Ich bin der Hoffnung, jeder hier verwendet sichere Passwörter. Ich bin gerade zu lassen, dass in als Annahme. So ihr Jungs sind definitiv zu Passwörter für Ihre Webseiten. Du wirst etwas wie machen eine Anmeldung oder so etwas. Was wichtig ist, nicht speichern Passwörter im Klartext. Dies ist äußerst wichtig. Sie wollen nicht zu speichern ein Passwort im Klartext. Und Sie definitiv nicht wirklich wollen um es in einem ein Hash speichern. Also, was ein Ein Hash ist, dass, wenn Sie erzeugen ein Wort, wenn Sie diese setzen Wort in eine Hash-Funktion, wird es erzeugen wieder eine Art kryptische Nachricht oder kryptischen Satz Schlüssel. Ich gebe Ihnen ein Beispiel zu zeigen. Ich werde sie Wort password1 Hash. So md5-Hash wird mich zurück eine Art von seltsamen Informationen. Das Problem ist, dass die Leute da draußen gerne, dass in Websites gehen bereits sortiert gefunden aller md5 Hashes. Was sie ist, sie setzte sich auf ihre Computer, und sie jeden Hash- Einzel mögliche Wort gibt, bis sie irgendwie bekam, was das ist. Wenn ich so aussehen up - Ich packte diesen Hash. Wenn ich diesen Hash von - wenn ich in eine Website, und ich finde, dieser Hash, weil ich das bekommen Datenbanken, und ich schaue sie auf, jemand schon für mich herausgefunden. Ja. Also Leute setzte sich, und was auch immer md5 Hash, die Sie in, sie gehen zu zurückzukehren, um Ihnen etwas dass ein Wort. Wenn ich ein anderes Wort Hash, wie - Ich weiß nicht - trees2. Ich will nicht enttäuscht werden von meinem Google-Suche. Da ist es, trees2. Also eine Vielzahl von Websites immer noch MD5-Hash. Sie sagen, oh, es ist sicher. Wir werden nicht im Klartext zu speichern. Wir haben diese md5-Hash. Und alles, was ich zu tun ist, nur Google die Nummer. Ich weiß nicht einmal, mich zu berechnen. Ich kann Google es, und jemand bereits hat es für mich. Hier ist eine Reihe von ihnen. Hier ist eine Reihe von Passwörtern. Also auf jeden Fall nicht mit MD5-Hash, weil alles, was Sie haben tun, ist es Google. Also, was tun Sie stattdessen verwenden? OK. Etwas namens Salzen. Also, was ist das Salzen - kann euch daran erinnern, als wir Gespräch über zufällig in - Ich bin mir nicht sicher, was es war PSet - wurde es dort PSet oder vier? Wir waren über die Suche im Gespräch die Nadel im Heuhaufen. Und in der pset, hieß es, dass man tatsächlich herauszufinden, was Zufalls erzeugt, weil jemand schon lief Zufalls eine Million Mal und nur Art gebildet, was sie erzeugen. Was Sie tun möchten, ist legte in einem Eingabe. Also das ist, was das Salzen Art ist. Sie haben bereits herausgefunden, was das Salzen liefert für jede Arbeits. Also, was tut, ist das Salzen Sie setzte sich in eine Salz. Sie stellen in einem bestimmten Wort. Und es wird das Wort Hash je auf was Sie in hier. Also, wenn ich ein Passwort Hash mit diesem Satz, es geht um hash anders, wenn ich Hash password1 mit einem unterschiedlichen Satz. Sie gibt es irgendwie irgendwo zu Start für das Hashing zu beginnen. So ist es viel schwieriger zu berechnen, aber Sie noch zu berechnen, vor allem wenn Sie eine schlechte Salz zu verwenden. Die Menschen haben auch schon herausgefunden, gemeinsame Salze und heraus was das es ist. Zufällige Salze sind viel besser, aber der beste Weg ist, um zu verwenden die so genannte Krypta. Und welche Krypta Sie ermöglicht tun - so sind diese Funktionen bereits für Sie gebaut. Viele Leute vergessen das, oder sie vergessen, es zu benutzen. Aber wenn ich oben Krypta PHP, Krypta bereits gibt einen Hash-String für mich. Und es tatsächlich salzt es viele Male und Hashes es viele Male. So haben wir nicht, dies zu tun. Also alles, was Sie tun müssen, ist senden Sie es in Krypta. Und es wird eine große Hash zu erstellen, ohne Sie müssen, um Salz zu kümmern oder nichts. Denn wenn Sie es waren, um Salz, haben Sie zu erinnern, was Sie salz verwendet denn wenn nicht, können Sie nicht Ihren Kennwort zurück, ohne die Salz, die Sie verwendet. OK. Und auch personenbezogene Informationen. Also soziale Sicherheit, Kreditkarte - das ist ziemlich offensichtlich. Aber manchmal vergessen, wie es Arbeiten ist, wie viele Informationen Sie tun eigentlich brauchen, um etwas eine Person finden? Jemand hat eine Studie über dies ein Weg zurück. Und es war wie, wenn Sie ein Name, Sie nicht finden können jemand so leicht. Aber was, wenn Sie einen vollständigen Namen haben und ihr Geburtsdatum? Ist das genug, um zu erkennen jemand gesagt? Was, wenn Sie ihren Namen und haben die Adresse, die sie am leben? Ist das genug, um jemanden zu finden? Und das ist, wenn sie in Frage zu stellen, was ist persönliche Daten und was soll man zu befürchten nicht verlosen? Wenn Sie sich persönlich identifizierbaren geben Informationen, die Ihnen jemand, Sie könnten möglicherweise verklagt werden. Und wir definitiv nicht wollen das nicht. Also, wenn Sie die Umsetzung Ihrer Website sind aus, und Sie haben ein wirklich cooles Design, hoffentlich haben Sie gemacht eine wunderbare Abschlussprojekt. Jede Art von Ihnen wollen legte es gibt. Sie wollen sicherstellen, dass alles, was du nimmst vom Benutzer, wenn es persönliche Informationen, die Sie wollen sicherstellen, dass Sie wirklich sind vorsichtig mit ihm. Shell-Injektion. OK. Shell Injektion ermöglicht den Eindringling zu erhalten Sie Zugriff auf Ihre tatsächliche Befehlszeile in Ihrem Server. Und so ist er in der Lage, Code ausführen dass man nicht steuern. Nehmen wir ein Beispiel dafür schöne Kette hier richtig. Wenn wir wieder in die Website gehen, ich bin werde in Code-Injektion zu gehen. Also, was es tut, ist - es ist auch das, was wir waren Blick auf zuvor. Wir lassen den Benutzer in was auch immer setzen er will, und es wird ausdrucken was Sie wollen. Also werde ich um einen Anruf zu setzen. Was das bedeutet ist - wird es durch die Verkettung starten. So wird es ließ mich laufen, was Befehl läuft der Person vor und mein Kommando. Und ich bin mit einen System-Befehl. Und diese letzten Saiten sind - erinnern was ich sprach mit ihr über, wohingegen Sie kodieren haben ihn in ein URL-Methode. Wenn ich dieses jetzt - Ich werde Ihnen hier zeigen, über - Sie werden sehen, dass ich am Ende bis Sie einen Befehl. Dies ist eigentlich die eigentlichen Server dass meine Website ausgeführt wird. Also nicht, dass wir das tun, weil ich laufen kann - Dieser Server ist nicht von mir. Also ich möchte nicht in Unordnung zu sein Schwester, Marcus Server. Aber Sie können mehr Befehle ausführen , die gefährlich sind. Und möglicherweise, Sie löschen könnte Dateien, Verzeichnisse zu entfernen. Ich kann ein bestimmtes Verzeichnis zu entfernen, wenn Ich wollte, aber ich will nicht zu, dass Marcus zu tun. Er ist ein netter Kerl. Er ließ mich seine Server zu leihen. Also ich werde ihn lassen weg auf der guten. Also, was wir nicht wollen, zu verwenden - wir nicht wollen oder eval-System verwenden. Eval oder System ermöglicht es uns, machen diese Systemaufrufe. Eval Mittel zu beurteilen. System bedeutet, was ich lief. Es ist etwas im System laufen. Aber wir können diese Dinge in ächten PHP, so dass wir sie nicht benutzen. Und Datei-Upload. Ich wollte ein tolles zu tun Sache mit der Datei-Upload. Aber wie ich Ihnen sagte, Jungs, meine Datei Upload Sache funktioniert nicht. Wenn ich eine Datei jetzt hochladen - wenn ich eine Datei hochladen, und es ist ein Bild - Sie haben eine Upload-Sache das ist ein Bild. Das ist in Ordnung. Nichts passiert. Aber wenn Sie eine Datei ist, müssen für Beispiel, und der Benutzer tatsächlich Uploads eine PHP-Datei oder eine EXE-Datei oder etwas so, dann könnte man möglicherweise habe ein Problem. Dies wurde vor der Arbeit. Leider ist für mich, es ist nicht mehr. Wenn ich, zum Beispiel, laden Sie diese Datei, ich bin nicht die Erlaubnis zum Hochladen die Datei durch den Server nicht in der Mine. Also der Kerl ist wirklich smart. Also wir wollen nicht - Ich werde euch zeigen - OK, das sind ein paar wirklich coole Tools. Also diese - gehen in - wenn Sie Jungs haben Firefox - hoffentlich haben Sie zu tun. Es gibt zwei Add-Ons namens SQL Inject Ich und Cross-Site-Script-Me. Sie eröffnen so wenig Seiten Stäbe auf der Seite. Und wenn ich hier um zu gehen CS60 zum Beispiel - so, was es tut, ist es sieht für alle die Formen, die - hoffentlich werde ich nicht bekommen Ärger für diese. Aber OK. Hier ist der Pin-System. Also, wenn ich anfange, für die Löcher in der Suche das System, das erste, was ich tue, ist Erschließung dieses schöne kleine Werkzeug auf der Seite. Und ich werde, um Formulare testen mit Auto-Attacken. Und was das bedeutet ist, wird es langsam eröffnen eine Reihe von Browsern. Hier ist eine Reihe von Browsern. Und es wird versucht, jede einzelne Kombination von Cross-Site-Scripting dass es möglicherweise heißt, wenn Sie sehen auf der Seite. Und es wird mir ein Ergebnis geben Art, was die Antwort ist. Alle weiterzugeben. Offensichtlich, sie alle passieren. Ich meine, sie sind wirklich schlau Menschen dort oben. Aber wenn ich zu laufen - Ich habe mal vor, wenn ich das hatte auf Abschlussarbeiten der Studierenden. Ich laufe einfach SQL Inject Me mit alle verschiedenen Attacken. Und es ist zu versuchen, SQL spritzen dieser Pin-Server. Also, wenn wir nach unten scrollen, für Beispiel sagt es - das ist gut, wenn er zurückkehrt. So getestet einige bestimmte Werte. Und der Server zurück ein Code, der negativ war. Vorübergehend entfernen. Das ist gut. Es versucht alle diese Tests. So können Sie einfach laufen - Ich wünschte, ich eine Website in Echt finden konnte schnell, dass würde mich lassen - vielleicht das CS50-Shop. Wow, das wird viel zu lange dauern. Ich werde der erste Test nicht zu Ende rechts. So ist es zu beschweren. So sind diese drei Dinge. Diese Tools sind kostenlos. Sie können sie herunterladen und ausführen, sie auf Ihre Website, und es wird Ihnen sagen, wenn Sie haben Cross-Site-Scripting, wenn Sie SQL, wenn Sie etwas dergleichen. Ich bin Art von Unordnung zu. Was ist wichtig - OK, so dass der Benutzer nie vertrauen. Was auch immer die Benutzereingaben an Sie, machen sicher, dass Sie es zu sanieren, können Sie es zu reinigen, Sie sich für die richtigen Dinge zu überprüfen, dass es Ihnen, was Sie will ihn dir geben. Immer auf welche Rahmenbedingungen aktualisiert werden dass Sie tatsächlich mit. - Wenn Sie so etwas wie Bootstrap verwenden Ich weiß, euch gehen zu bedienen Bootstrap, weil er wird gehen über diese bald in der Klasse - und Wordpress oder so etwas, normalerweise könnte gehackt werden. Und dann müssen Sie nicht einmal wissen. Du bist nur läuft Ihre Website. Und es ist völlig sicher. Und Sie gehen. Also ich bin wirklich früh fischen. Aber ich möchte Pentest Labs danken. Ich werde euch etwas zeigen genannt Pentest Labs. Wenn euch wirklich interessiert welche Sicherheit wirklich ist, gibt es eine Website namens Pentest Labs wenn euch gehen, um es jetzt. Oh, gut, das ist es nicht. Ich bin gerade dabei, es so laufen. Google sagt mir die Antwort. OK. Und es lehrt, verwenden Sie - so sagt, lernen Web-Penetration Testen der richtige Weg. Es lehrt Sie - hoffentlich, du bist eine ethische Person. Aber es lehrt, wie man sich anschauen kann wie Sie in Webseiten zu bekommen. Und wenn Sie lernen, wie Sie nach innen erhalten können Websites, können Sie lernen, wie man schützen Sie sich davor Innen Websites. Lassen Sie mich zu vergrößern, weil vielleicht ihr Jungs haben es nicht mit diesem Recht. Von SQL-Injection zu berappen, so Art, wie ich aus SQL bekommen Injektion zu berappen. Und Sie können diese virtuelle Maschine herunter zu laden. Und die virtuelle Maschine kommt schon mit der Website, die Sie gehen, um es anzuprobieren. Sie downloaden Sie dieses PDF. Und es wird Sie durch die Linie zeigen, was Linie Sie haben zu tun, was Sie zu überprüfen. Dies ist, was ein Angreifer tatsächlich tut, um innerhalb einer Website. Und etwas von diesem Zeug ist kompliziert. Ich wünschte, ich könnte über mehr gehen Dinge mit euch. Aber ich mache mir Sorgen, dass ihr Jungs haben nicht wirklich - das ist, was ich ging mit Sie Kerle, Web-Tests für Penetrationstests. Sie nicht wirklich wissen, was SQL ist und was - Carl Jackson Seminar ist genial als gut. Ihr Jungs nicht wissen, Art von dem, was das ist. Aber wenn Sie auf diese Webseite gehen, und Sie Download diese Tutorials und diese PDF-Dateien, können Sie einen Blick auf Art nehmen was der Bereich der Sicherheit wirklich in Penetrationstests sehen, wie du kannst get in Websites und schützen sich von ihm. Also, wenn ich einen Super schnellen Überblick, es wird verhindern, Cross-Site Scripting werden. Sie wollen htmlspecialchars jeden Einsatz wenn der Benutzer Eingaben etwas. Verhindern, dass SQL-Injektion. Wenn Sie das tun, sind Sie bereits besser als Harvard war wenn sie verletzt habe. Und stellen Sie sicher, dass Sie Ihre Passwörter sind nicht im Klartext. Stellen Sie sicher, dass Sie nicht nur ein Hash- sie aber, dass Sie crypt, die PHP- Funktion, die ich Ihnen gezeigt, Jungs. So sollten Sie gut sein. Auch, wenn Ihre Freunde können Sie, führen SQL auf ihren Websites injizieren bleiben. Führen Cross-Site-Scripting auf ihren Websites. Und Sie werden eine Menge von diesen Webseiten sehen haben eine Tonne von Schwachstellen. Es ist unglaublich, wie viel die Menschen vergessen, zu ihren Datenbanken zu desinfizieren oder zu machen sicher, was die Person, die Eingabe ist nicht Script-Code. OK. Ich irgendwie sehr früh beendet. Aber wenn jemand Fragen zu hat nichts, können Sie mir eine Frage zu schießen. Ja. Go, go. ZIELGRUPPE: Ich möchte nur fragen, können Sie erklären, wie die Datei lade genau funktioniert. LUCIANO ARANGO: Ja. Also lassen Sie mich Ihnen zeigen, die Datei laden, sehr kurz. Also die Datei-Upload - das Problem Witz der Datei-Upload jetzt ist, dass - Ich werde den Code zu öffnen, so dass Sie Jungs siehe den Code hinter den Kulissen. Und es ist hochladen. Hier ist ein Code für die Datei-Uploader. Wir versuchen, in diese zu gelangen Verzeichnis hier. Und wir sind zu versuchen, wenn wir die Eingangs Datei, isset Datei - so, wenn es eine Datei in Dateien, die Bild, dann wir versuchen, es hier zu bewegen. Wir schnappen uns die Datei hier. Die Methode ist POST, Typ-, Bild-Datei. Und wir möchten Sie in dieser Datei. Und dann, wenn wir sie bekommen, so, sobald die Datei hat ein Bild, wir versuchen, sie zu senden in dieses Verzeichnis. Das Problem ist, dass die Website nicht lassen Sie mich in dieses Verzeichnis zu gehen, weil sie nicht wollen, dass ich wieder zurück. Es will mich nicht zu gehen - Ich muss gehen - so ist hier hochladen. Hier Bilder. Ich muss den ganzen Weg zurück zu gehen, die ab und steckte es in dort und dann gehen und legte es in das Verzeichnis. Also, wenn ich ein Terminal-Fenster laufen, und ich wollte eine Datei zu verschieben - [Unverständlich] kann es sehen. Wenn ich wollte, um eine Datei zu verschieben, habe ich um den Dateinamen setzen und dann die vollständigen Pfad will ich es zu senden. Und dann der Server ist nicht lassen Sie mich zurück. Und so ist es nicht lassen mich zu dieser Datei zu erhalten. Aber normalerweise - so gibt es einen Code für Hochladen einer Datei. So normal, was passieren wird ist, dass die Person ist nicht zu überprüfen, ob meine Datei endet mit. jpeg, so dass ich möchte, um zu überprüfen. Lassen Sie mich ein Beispiel zu öffnen, sehr kurz. OK. Diese Person rechts - so beispielsweise zwei ist die Überprüfung wenn preg_match - hier ist es hier - um sicherzustellen, dass endet mit PHP, was gut ist. Das ist gut. Aber es gibt eine wirklich große Problem mit diesem. Das ist gut. Aber wenn ich eine Datei namens gestellt waren myfavoritepicture.php.jpeg, konnte ich immer noch potenziell der jpeg loswerden und führen it.k Das PHP gefährlich. Sie wollen nicht die Person, die in der Lage sein, Code auf Ihre Website führen. Aber dann. Jpeg lässt sie passieren. Die Idee ist, was Sie wirklich wollen nicht Dateien, A. Aber, OK, nehmen, was Sie wirklich tun wollen, ist sicherzustellen, dass Sie lesen über die ganze Welt. Und es gibt nichts. Php in sie. Es gibt keine. Php in die ganze Dateinamen. ZIELGRUPPE: Aber Sie könnten setzen. jpeg am Ende. Die Server noch den Code auszuführen. LUCIANO ARANGO: Nein, wird es nicht laufen am Anfang. Sie müssen zurückgehen und versuchen, zu sehen, wenn du kannst - ZIELGRUPPE: Also müssen wir - OK, nur ein weiteres Set, das beinhaltet - LUCIANO ARANGO: Ja. ZIELGRUPPE: OK. LUCIANO ARANGO: Ja. OK. Noch Fragen? OK. Ich werde diese verlassen und sortieren der versuchen, wenn euch sehen kann - die anderen sind ein wenig kompliziert, weil sie viel verlangen mehr Wissen über SQL als nur die Anfang Kenntnisse der Web-SQL ist und JavaScript ist was. Aber ich werde versuchen, dies zu halten, und hoffentlich auch euch lernen über dies und versuchen, einen Blick auf zu nehmen was Sie tun können und wie viele Beispiele Sie durchkommen kann. Jeder andere haben Fragen zu diesem Thema? Gehen Sie voran. Ja, schießen, schießen. Ja, gehen Sie vor. Gehen Sie voran. ZIELGRUPPE: OK. So etwa hörte ich, wie Magic Quotes sind nicht sicher genug. LUCIANO ARANGO: Was - Magic Quotes? ZIELGRUPPE: Ja. So fügt es - wenn Sie so, Eingangs etwas, es fügt immer Anführungszeichen. LUCIANO ARANGO: Ja. Ja. OK. ZIELGRUPPE: Und dann dachte ich, das war aber dann suchte ich ihn auf. Und es sagte, es ist nicht gut. Aber ich bin mir nicht sicher, warum. LUCIANO ARANGO: Ja. ZIELGRUPPE: Verwenden Sie keine Magic Quotes, denn es ist nicht sicher. LUCIANO ARANGO: OK. So Magic Quotes ist, wenn Sie SQL einfügen und schon fügt das Zitat für Sie. Zielgruppe: IT fügt immer Zitate um was auch immer Sie in. LUCIANO ARANGO: Ja. Das Problem dabei ist, dass - Ich werde einen Blick auf zu nehmen - ZIELGRUPPE: Wie fühlt es erwerben die SQL-Anweisung? Oder ich denke, dass es sein könnte wie Angebot auswählen. LUCIANO ARANGO: Ja, Sie müssen gute Angebote für den SQL. ZIELGRUPPE: Nein, aber der Server erledigt das für Sie. LUCIANO ARANGO: Diese kleinen Zitate genau hier, diese kleinen Zitate? ZIELGRUPPE: Ja. LUCIANO ARANGO: Ja. Das Problem ist, dass man Kommentar aus der letzten - OK, also, was ich tun kann, ist, kommentiere ich kann out - also nehmen wir mal einen Blick auf - lassen Sie mich öffnen Sie ein Texteingabedatei. Lassen Sie mich nur diese bearbeiten hier direkt. OK. Kann euch das klar zu sehen? Was ich tun kann, ist, kommentiere ich kann aus dem letzten. Dies wird kommentieren Sie die letzte. Und dann werde ich hier, lege alle bösartigen Sachen hier. So kann der Anwender ist eigentlich Eingabe, oder? Der Benutzer ist nicht die Eingabe die Dinge, oder? Das ist, was ich zu gehen als Eingangs die Person, die versucht, hineinzukommen. Ich werde in gesetzt - das ist ein Anführungszeichen. Es ist nur so verschnörkelt durch Fehler. Und dann, was der Code ist zu tun - sorry, ich werde das nehmen. Was der Code zu tun ist, es geht um den ersten hinzufügen Anführungszeichen hier. Und es wird die letzte hinzufügen Anführungszeichen als gut. Und es ist auch werde hinzufügen letzten, letzten Anführungszeichen. Aber ich werde diese kommentieren Zitat markiert aus, so dass sie nicht ausführen. Und Ich beende dieses Zitat Markieren Sie hier. Verstehen Sie? Sind Sie verloren? Ich kann das letzte Zitat Kommentar Marke, und kümmern sich um die ersten Anführungszeichen. ZIELGRUPPE: Und Finish der erste. LUCIANO ARANGO: Ja. Und beenden Sie die erste. Ja, das ist richtig. Das ist, was ich tun kann. Ja. Alle anderen Fragen wie das? Das ist eine gute Frage. Nein, ja, vielleicht. Hoffentlich wird euch irgendwie machen mehr Sinn, wenn Sie SQL und Studium Sachen. Aber stellen Sie sicher, dass Sie - sollten Sie diese Tools in die Uhr. Sorry, diese Tools hier. Diese Werkzeuge sind groß. Wenn jemand irgendwelche Fragen, Sie können auch mailen Sie mir. Das ist meine normale E-Mail. Und das ist meine geschäftlichen E-Mail, die ist, wenn ich arbeite bei SEAS. OK, danke. Danke, Jungs. Sie sind gut zu gehen. Sie müssen nicht hier bleiben. Klatschen Sie nicht. Das ist seltsam. OK, danke, Jungs.