ЛУЧАНО Аранго: Хорошо, ребята. Меня зовут Лучано Аранго. Я на втором курсе в Adams House. И мы собираемся говорить о веб-безопасности активной обороны. Так что я работаю на Управление информации Безопасность в море. И в течение лета, я интернированы в SeguraTec, который был информация охранная фирма, которая служила для Банка Колумбия. Это в основном, где я узнал, что я узнал до сих пор. И поэтому некоторые из материала, который мы находимся собираюсь перейти на сегодня, у нас есть не действительно говорили в классе. Но мы скоро. Это будет, как SQL, JavaScript. И мы действительно не пошел по ней. Так что я могут быть отсортированы полета через него, и вы можете не знать некоторые вещи. Но в ближайшее время, вы узнаете его. И это будет все имеет смысла. Также еще одна вещь - остаться этично. Некоторые из вещей, которые вы узнаете, вы могли бы использовать в не-этических способами. Если это ваш, безусловно, попробовать. Я определенно мотивировать вас, ребята попробовать свои собственные серверы, попробуйте происходит внутри них. Смотрите, если вы можете проникнуть их, если вы можете получить в них. Но не кого-либо еще. Менты не очень люблю шутки и вся, мы подавили это здесь. Мы были возиться. Они получают очень зол. Так над головой в этом сайте. У меня открылся прямо здесь. Это сайт, и это имеет кучу примеров. Что происходит, что первый пример является своего рода будет намного проще чем в прошлом, например, в известном смысле что первый пример полностью небезопасно. И последний из которых является своего рода то, что нормальный человек веб-безопасности будет делать. Но вы все равно можете сортировать из обойти это. И мы собираемся упором на один и два, примеры один и два. ОК. Давайте начнем с межсайтовый скриптинг. JavaScript выполняется на браузер клиента. Это язык программирования, который вы используете для запуска в браузере клиента так Вы не должны обновлять сайт и вернуться к серверу. У вас есть это работает. Например, Facebook, вы не должны перезагрузить сайт новом статусе обновления, чтобы придумать. Генерировать Она использует наличие все эти вещи. Так что мы можем внедрить вредоносный JavaScript в веб-сайтов. И таким образом, когда мы посылаем ссылку на кто-то, мы могли рода отправить его с часть кода, который мы хотим. Там в стойкими и непостоянные JavaScript - стойкие и непостоянные межсайтовый сценариев, я имею в виду. А разница в том, что постоянные является JavaScript, что будет сохраняются на веб-сайте. И непостоянные будет JavaScript что будет на самом деле просто так один раз. Так что давайте посмотрим на примере действительно быстро. ОК. Так этот сайт, просто, ничего не происходит здесь. И мы собираемся, чтобы попытаться вставить некоторые JavaScript. Так как мы начинаем писать наличие является мы начинаем с началом сценария. И мы закрыть его с помощью сценария. Мы просто собираемся поместить сообщение - Я покажу вам, - предупреждение. Оповещение это функция, которая JavaScript использует для отображения что-то. Так давайте попробуем действительно быстро. Я собираюсь пойти, оповещение привет. Ну, я забыл поставить - ОК. Так вот просто. Ставим наличие на веб-сайте, и это придумал. И это своего рода происходит только на нашем сайте, не так ли? Так что похоже, что это не проблема, не так ли? Я имею в виду, как вы могли использовать это злонамеренно? Таким образом, способ, которым хакеры делать это действительно просто. Они собираются, чтобы схватить его. Они могут посылать эту ссылку к вам. Если я пошлю эту ссылку на вас прямо сейчас, и вы открываете его, он собирается говорят, привет, говоря, что мой сайт говорит вам привет. И поэтому, если я скажу, что-то немного умнее, если бы я подтянуть JavaScript функция Я как бы уже писал - но если вы посмотрите на нее, я пойду над ним, прежде чем я ее написал. Таким образом, мы собираемся установить тайм-аут. Мы собираемся ждать пару секунд. На самом деле, мы собираемся ждать, если Я не ошибаюсь, пять секунд. Это идет в миллисекундах. А потом, что мы собираемся сделать, это мы собирается предупредить, что Войти Тайм-аут, чтобы снова войдите И мы собираемся, чтобы изменить местоположение в другое место. Так что, если я посылаю этот сайт, чтобы кто-то, они собираются быть просматривают вокруг, спокойно. Ничего не происходит. И через пять секунд, он собирается сказать, ваша Войти истекло. Пожалуйста, снова войдите Как только они нажмите кнопку ОК, я собираюсь взять их на другой сайт. Предположительно, сайт собирается быть похожа на сайте, что они были прежде. И они собираются войти их Полномочия в моем веб-сайте, а не их сайт. И так я могу послать людям по электронной почте с этой ссылке. Я говорю, ну, вот ссылка. Это банк, например. Я говорю, вот, идут по этой ссылке. И как только они отправить его, они будет осматриваться. Я могу подождать в течение 15 секунд, 20 секунд, а затем поп, что, пожалуйста, снова войти в подписать обратно. Вы, ребята, можете попробовать его с намного больше вещей. Это сложно, потому что вы, ребята, не видел наличие, так что вы могли бы не знаю, что некоторые функции. Но все, что вам нужно сделать, это начало со сценарием, заканчиваются сценария. И вы могли бы поставить что-нибудь в середине. Оповещение является функцией, ждать. Расположение окон приведет вас на новое место. Но вы можете сделать гораздо больше. И поэтому идея в том, что мы сними это. Если я иду в примере два, и я положить в этом же коде, это не будет работать. Так что это печать все, потому что что этот сайт изначально делает, если я поставлю здесь ничего, это будет распечатать его прямо здесь. Так что это не печать что-нибудь. Этот пример фактически проверки чтобы увидеть, если сценарий есть. Так что да, идти вперед. Спросите меня. АУДИТОРИЯ: не посылает получить или отправить запрос? ЛУЧАНО Аранго: Да. они отправив запрос GET. АУДИТОРИЯ: Это? ЛУЧАНО Аранго: Да. Также браузеры используют почтовые запросы. Но я пытаюсь показать запросы GET так что мы можем видеть то, что происходит на самом деле. И поэтому, если мы смотрим на этого кода - так что это не работает больше. И если мы взглянем на этот код, это будет во втором примере. Что этот человек делает, человек отвечает за этого браузера - открыть, ОК - заменяет сценарий слово. Это PHP, которые вы, ребята, могли бы видели немного еще. Он просто заменив Слово скрипт с именем. Так, однако, если я иду вперед и просто положить в - если я хватаю код еще раз, и я собираюсь изменить его только немного. Вместо того, чтобы сценарий, я собираюсь изменить это для сценария с большой буквы Р. И мы собираемся посмотреть, если этот код работает. Так что не распечатать его, который является хорошим знаком. И, надеюсь, еще в двух секунд, это будет всплывал. Ваш Войти истекло. ОК. Ничего страшного. Так проверка на сценарий может не обязательно работать. Человек - он также может проверить сценария верхнем регистре, Сценарий в нижнем регистре, ул дело сравнить, убедиться, что они то же самое. Но хакер может еще сделать вид, что мы сделали в Vigenere когда мы переехали назад пару символов, двигаться вперед. И это может выяснить, как поставить сценарий вернуться туда, чтобы он мог придать что сценарий. Так что вы хотите использовать является HTMLSpecialChars к защитить ваш сайт. И то, что это делает он делает уверен, что то, что вы положили в - например, цитаты или это больше или меньше - заменяется чем-то что не будет - позвольте мне увеличить здесь - фактическая амперсанд. Он заменит те специальные HTML символы, которые мы увидим, когда мы говорим о - о, это собирается взять меня к - эти символы прямо здесь. Это означает, что что-то идет. Для HTML, что, начиная кронштейна говорит нам, что что-то Связанных HTML идет. И мы хотим, чтобы избавиться от этого. Мы не хотим, чтобы положить HTML в website.k Мы не хотим, чтобы пользователь состоянии положить что-то в своем веб-сайте что может повлиять на их веб-сайт, как сценарий или HTML или что-то вроде этого. Важно то, что вам санировать пользовательский ввод. Таким образом, пользователи могут входные много вещей. Он может вводить кучу вещей, чтобы попробовать обмануть ваш браузер в еще работает этот код сценария. То, что вы хотите сделать, это не просто посмотреть для сценария, но посмотрите на все что может быть вредоносным. И HTMLSpecialChars сделает это для вас, так что вы не должны беспокоиться об этом. Но не пытайтесь сделать сами рода с вашим собственным кодом. Все ли ясно, на XSS? ОК. Пойдем в инъекции SQL. Так SQL инъекции, вероятно, номер один уязвимость в различных веб-сайтах. Я имею в виду, хороший пример - Я просто исследуя дальше всех за это дело. И я нашел этот удивительный статью, где Я видел, что Гарвард был нарушен, был взломан. И мне было интересно, ну, как бы они это делают? Гарвардский самый удивительный, самый обеспечить университет когда-либо. Не так ли? Ну, к нарушению серверы, хакеры использовали метод, называемый инъекции SQL. Так это происходит на ежедневной основе. Люди забывают принять во внимание для инъекций SQL. Гарвардский делает. Я думаю, что здесь говорится, Принстон, Стэнфорд, Корнелл. Так как же нам - так что же это SQL впрыска, что приносит все это люди вниз? ОК. Так SQL это язык программирования, что мы используем для доступа к базам данных. Что мы делаем это мы выбираем - так что это читает сейчас это выбрать все со стола. SQL, она превращается в этих базах данных что есть столы, полные информации. Так выберите все от пользователей где имя является именем пользователя. Не так ли? Достаточно просто. Идея инъекции SQL, что мы вставить некоторые вредоносный код, который будет обмануть сервер в работает что-то иной, чем на первоначально бежал. Так скажем, имя пользователя, мы вкладываем в или 1 равна 1. Так мы одели в систему или 1 равна 1. Как это будет читать теперь будет выбрать от пользователей, все, начиная от пользователи - это и есть все - где имя имя пользователя, но имя пользователя является или 1 равна 1. Так имя ничего или 1 равна 1. 1 равна 1 всегда истинно. Так что это всегда будет возвращать информацию от пользователей. ОК. Мы не должны иметь правильное имя пользователя. Мы можем просто все, что мы хотим, и он вернется информацию что нам нужно. Давайте посмотрим на другой пример. Если мы выбрать все, от пользователя, где зовут DROP пользователи ТАБЛИЦА - так что вы думаете это будет делать, если я ставлю в имени пользователя как пользователи DROP TABLE? Любой, есть идея? Да. АУДИТОРИЯ: Это будет сказать это свалить все таблицы. ЛУЧАНО Аранго: Это будет говорить нам, сбросить все на веб-сайте, все в базе данных. И то, что люди используют это для - так Я собираюсь показать вам, ребята. Я отключил сбросив столы потому что я не хочу, чтобы вы ребята падают мои таблицы. Давайте взглянем на это. Так что это просто тянет информацию в течение определенного человека. Так как же нам знать, если это пострадавших от инъекции SQL. Мы собираемся проверить реальный быстрый если мы можем положить что-то - дайте мне скопировать этот код. Я собираюсь перейти на него в секунду. Я собираюсь поставить корень и 1 равен 1. Это прямо здесь, это знак процента 23 - что это такое, если я смотреть прямо здесь, в - путь HTML занимает в цифрах, если вы взглянуть на, когда я положил в пространстве здесь - если бы я был с космическим что-то здесь, это изменяет его на два процента. Вы, ребята, видите ли это право здесь когда я положил в пространстве? Как это работает в том, что вы можете только отправить значения ASCII через HTML. Таким образом, он заменяет, например, пространство с процентов 20. Я не знаю, если вы, ребята видели, что раньше. Он заменяет хэштэг с процентов 23. Нам нужен хэштэг в конце или заявление, чтобы мы могли сказать В базе забыть закомментировать эта последняя точка с запятой в конце. Мы хотим, чтобы не думать об этом. Мы просто хотим, чтобы запустить все что у нас есть заранее и комментировать это. Давайте взглянем на него. Так что, если бы я должен был положить что-то не так - скажем к примеру, я положил 2 равно 1, это не дает мне ничего. Когда я положил в 1 равен 1, и это делает вернуть что-то, это говорит мне, что это уязвимы для инъекция SQL. Теперь я знаю, что все, что Я положил после этого - и, например, удалять таблицы или что-то в этом роде , безусловно, работать. Я знаю, что это уязвимы для инъекций SQL потому что я знаю, что под капотом, это позволить мне сделать 1 соответствует 1 вещь. ОК? И если мы посмотрим на эти другие, номер два и номер три, это собираюсь сделать немного больше проверки под капот, что это такое. Таким образом, любой позволяют падение Все еще не пытался? Как вы, ребята рода получить SQL еще? Потому что я знаю, что вы, ребята, есть не видели это, так что это своего рода запутанным для вас, ребята. Давайте взглянем. Так в чем же способ предотвратить SQLI? ОК. Так что это действительно важно, потому что вам ребята определенно хотите, чтобы предотвратить это в ваших веб-сайтов. Если нет, то все ваши друзья собираются смеяться над вами, когда они падают все ваши таблицы. Таким образом, идея в том, что вам отремонтировать SQL определенным образом, в то время как вы подходите что пользователь вводит с определенная строка. Таким образом, Это работает так вы подготовить базу данных. Вы выбираете имя, цвет и калорий из базы данных под названием фруктов. А потом, когда калорий меньше, и мы ставим знак вопроса там говорю, что мы собираемся ввода что-то в секунду. И цвет равных, и мы ставим вопрос Знак говорит, что мы собираемся вход что-то в секунду, а также. ОК? А потом мы выполнить его, положив в 150 и красный. И это будет проверять, чтобы уверен, что эти двое - этот массив будет проверять, что эти два целое и что это строка. Тогда мы идем, и мы извлекаем все, мы положили его в красный цвет. Это означает, что мы извлекаем все. Это означает, что мы на самом деле выполнить SQL заявление и положил его обратно в красный цвет. Здесь мы делаем то же самое, но мы сделать то же самое для желтого. И мы забираем все. И таким образом, мы запретить пользователю от того, чтобы входной что-то это не то, что мы указано, строка или целому числу, например. Я говорил ранее о полагаться на других. Когда вы, ребята, начать свой проект, вы наиболее определенно собираюсь использовать загружаться или что-то подобное. Ребята, вы когда-нибудь использовали Wordpress? Наверное, вы, ребята использовали Wordpress, скорее всего. Таким образом, проблема с использованием чужие вещи - Я просто хочу, чтобы Google очень быстро Wordpress уязвимости. Если бы я осуществить это прямо сейчас - Я буквально сделал двухсекундный Google. Мы видим, что Wordpress - это от в сентябре '12. 26 обновляется. В конфигурации по умолчанию Wordpress до 3,6 не мешает их некоторые добавления, которые могли бы сделать его проще для кросс-сайт скриптинг атаки. Так небольшая история, как только мы работали с - так что я был, летом, работая стажировки. И мы работали с рода как большой компании кредитных карт. И они полагаются на то, что называется - Я не знаю, если вы, ребята когда-либо играл с продуктом под названием Joomla. Joomla это продукт, который используется для контроль - своего рода похожи на Wordpress, используется для создания веб-сайтов. Так у них был свой веб-сайт работает на Joomla. На самом деле это кредитные карты Компания в Колумбии. Я возьму тебя с их сайт очень быстро. Таким образом, они используются Joomla. И они не обновляются Joomla в последнее дополнение. И поэтому, когда мы были взглянуть на их код, мы смогли на самом деле Заходим внутрь их код и украсть все Информация о кредитных картах, что у них, все номера кредитных карт, имена, адреса. И это было только - и их код прекрасно подошло. У них была отличная код. Это было все, безопасности. Они проверили все базы данных. Они убедились, что кросс-сайт сценариев было прекрасно. Но они использовали то, что не было обновляется, что не был в безопасности. И так, что привело их к - чтобы вы, ребята обязательно будем использовать другие код, рамки чужие людей чтобы создать свой веб-сайт. Убедитесь в том, что они в безопасности, потому что иногда это не вы, тот, который делает ошибку. Но кто-то делает ошибку, и затем вы падаете из-за этого. Пароли и PII. Так пароли. ОК. Давайте взглянем на пароли действительно быстро. ОК. Скажите, пожалуйста, что все использует безопасный - Я надеюсь, все здесь использует безопасные пароли. Я просто давая, что в качестве предположения. Так вы, ребята, безусловно, будет хранить пароли для ваших сайтов. Вы собираетесь сделать что-то вроде Войти или что-то вроде этого. Важно то, чтобы не хранить пароли в виде обычного текста. Это чрезвычайно важно. Вы же не хотите, чтобы сохранить пароль в виде обычного текста. И вы определенно не хочу хранить его в одну сторону хэш. Так что один из способов хэш является то, что, когда вы генерировать слова, когда вы кладете это Слово в хэш-функции, она будет генерировать назад какой-то загадочный сообщение или загадочный набор ключей. Я покажу вам пример. Я собираюсь хэш они слово password1. Так MD5 хеш собирается вернуть меня какой-то странный информации. Проблема в том, что люди там что хотели бы выходить в веб-сайты имеют уже выяснили рода всех хэшей MD5. То, что они это они сели на их компьютеры, и они хэшируется каждый единственно возможным слово там до они получили своего рода, что это такое. Если бы я был искать это вверх - Я просто схватил этот хэш. Если я получу этот хэш от - если я иду в веб-сайт, и я считаю, это хэш, потому что я получаю, чтобы базы данных, и я посмотреть его, кто-то уже понял это для меня. Да. Таким образом, люди сели, и все, что md5 хэш, что вы кладете в, они собираются вернуться к вам что-то что это слово. Если я хэш другое слово, как - Я не знаю, - trees2. Я не хочу быть разочарованным на моих поисков Google. Там это, trees2. Так много веб-сайтов до сих пор используют MD5 хэш. Говорят, о, это безопасно. Мы не хранить в виде обычного текста. У нас есть MD5 хэш. И все, что нужно сделать, это просто Google количество. Я даже не нужно вычислить себя. Я могу только Google его, а кто-то уже сделал это для меня. Вот куча из них. Вот куча паролей. Так определенно не использовать MD5 хэш, потому что все вы должны сделать, это Google это. Так что же вы хотите использовать вместо этого? ОК. То, что называется засолки. Так что соления является - вы, ребята, помните, когда мы были говорить о случайных в - Я не уверен, что PSet это было - был он PSet там или четыре? Мы говорили о поиске Иголка в стоге сена. И в PSet, он сказал, что вы могли бы на самом деле выяснить, что случайная генерирует, потому что кто-то уже побежал случайные миллион раз и просто рода сформировали то, что они производят. То, что вы хотите сделать, это положить в входе. Так вот что соления рода есть. Они уже поняли, что соления возвращает для каждой работы. Так что соления делает вы положили в соли. Вы кладете в определенном слова. И это будет хэш это слово в зависимости от того, что вы положили в здесь. Так что если я хэш пароля один с этим Приговор, он собирается хэш иначе, если я хэш пароль1 с другим предложением. Это своего рода дает его куда-то начать для хеширования, чтобы начать. Так что это намного сложнее вычислить, но вы еще можно вычислить его, особенно если вы используете плохой соль. Люди уже также выяснили общие соли и выяснили что это оно и есть. Случайные соли намного лучше, но лучший способ заключается в использовании то, что называется склеп. И то, что склеп позволяет делать - так что эти функции являются уже построены для вас. Многие забывают, что, или они забывают использовать его. Но если я смотрю склеп PHP, склеп уже возвращает хэш-строка для меня. И это на самом деле солит его много раз и хэши его много раз. Так что мы не должны делать это. Все, что Вам нужно сделать, это отправить его в склепе. И это создаст большую хэш без Вы беспокоясь о соли или что-нибудь. Потому что, если бы вы были соли это, у вас есть помнить, что соль вы использовали потому что если нет, то вы не можете получить ваш пароля обратно без соль, которую вы использовали. ОК. А также личный идентифицировать информация. Так социального страхования, кредитных карт - это довольно очевидно. Но иногда люди забывают, как она Работы есть, сколько информации вы на самом деле нужно найти какой-то один человек? Кто-то провел исследование о это путь назад. И это было, если у вас есть полное имя, вы не можете найти кто-то, что легко. Но что, если у вас есть полное имя и даты их рождения? Достаточно ли этого, чтобы определить кто-то специально? Что делать, если у вас есть свое имя и адрес, что они живут на? Достаточно ли этого, чтобы найти кого-то? И вот, когда они подвергают сомнению, что личная идентификационная информация, а что вы должны беспокоиться о не раздавать? Если вы отдаете ничего идентифицируемых информация, что кто-то дает вам, вы могли бы потенциально получить иск. И мы, безусловно, не хотим этого. Поэтому, когда вы кладете свой сайт вне, и вы действительно здорово дизайн, мы надеемся, вы сделали удивительный окончательный проект. Любой вы как бы хотите поставить его там. Вы хотите, чтобы убедиться, что все вы принимаете от пользователя, если это личная идентификационная информация, вы хотите убедиться, что вы будучи действительно осторожны с ним. Shell впрыска. ОК. Shell впрыска позволяет злоумышленнику получить доступ к вашей фактической командной строки в вашем сервере. И так он в состоянии выполнять код что вы не можете контролировать. Давайте возьмем пример этого красивая строка прямо здесь. Если мы идем на сайт снова, я буду вдаваться в внедрения кода. Так что же это делает - это также то, что мы были глядя на перед. Мы позволяя пользователю поставить в любой он хочет, и он будет распечатать что вы хотите. Так что я собираюсь поставить на звонок. Это нужно, - он начнет путем объединения. Так что позволит мне работать независимо Команда Запуск человека до и моя команда. И я бегу системную команду. И эти последние строки - помню то, что я говорил с вами, ребята о, в то время как у вас есть для кодирования это в методе URL. Если я запускаю это сейчас - Я покажу вам сюда - вы увидите, что я закончил до запуска команды. На самом деле это фактическое сервер что мой сайт работает на. Таким образом, мы не хотим, чтобы, потому что я могу работать - этот сервер не мое. Так что я не хочу испортить его сестра, сервер Маркуса. Но вы можете запустить несколько команд что опасны. И потенциально, можно удалить файлы, удалять каталоги. Я могу удалить определенный каталог, если Я хотел, но я не хочу сделать это с Маркусом. Он хороший парень. Он одолжил мне свой сервер. Так что я собираюсь позволить ему прочь на хороший. Так что мы не хотим использовать - мы не делаем хотите использовать Eval или системы. Eval или система позволяет сделать эти системные вызовы. Кит средства оценки. Система означает, что я побежал. Этим управляет что-то в системе. Но мы можем объявить вне закона эти вещи в PHP, так что мы не используем их. И загрузка файлов. Я собирался сделать удивительный вещь с загрузки файлов. Но, как я сказал вам, ребята, мой файл Загрузка вещь не работает. Если бы мне пришлось загрузить файл прямо сейчас - если бы я был, чтобы загрузить файл, и это картина - у вас есть загрузки вещь вот картина. Это нормально. Ничего не происходит. Но если у вас есть загрузки файла, для пример, и пользователь действительно добавления файл PHP или исполняемый файл или что-то так, то вы могли бы потенциально есть проблема. Это работает до. К сожалению для меня, это не работает больше. Если я, например, загрузить этот файл, я не получают разрешение на загрузку файл в связи с сервером не быть моим. Таким образом, парень действительно умен. Таким образом, мы не хотим - Я собираюсь показать вам, ребята - ОК, это лишь некоторые действительно здорово инструменты. Таким образом, эти - идти в - если вы, ребята, Firefox - надеюсь вы делаете. Там две дополнения называемые SQL Inject Я и Cross-Site Script меня. Они открывают как мало сторону бары на стороне. И если я должен был пойти в CS60 например - так, что он делает это выглядит для все формы, которые - надеюсь, я не буду получать в беде для этого. Но ОК. Вот контактный системы. Поэтому, когда я начинаю искать отверстия в система, первое, что я делаю, это открыть этот красивый небольшой инструмент на стороне. И я собираюсь проверить формы с авто атак. И так, что это делает он будет медленно открыть кучу браузеров. Вот куча браузеров. И он пытается каждый комбинацию из межсайтовый скриптинг что возможно есть, если вы видите на стороне. И это даст мне результат вроде того, что ответ на этот вопрос. Все пройдет. Очевидно, что все они проходят. Я имею в виду, что они очень умные люди там. Но если бы мне пришлось работать - У меня было раз, прежде чем, когда я запускаю это на конечных студенческих проектов. Я просто запустить SQL Введите Меня все разные атак. И он пытается SQL Inject этот вывод сервер. Так что, если мы прокрутите вниз, для Например, он говорит - это хорошо, если она возвращает. Так что проверили некоторые определенные значения. И сервер вернул Код, который был отрицательным. Удалить временно. Это хорошо. Он пытается все эти тесты. Таким образом, можно просто запустить - Я хотел бы найти сайт агенства быстро, что позволит мне - может быть, CS50 магазин. Ничего себе, это будет принять слишком долго. Я дам первый тест не закончить прав. Так что это жаловаться. Таким образом, эти три вещи. Эти инструменты являются бесплатными. Вы можете скачать их и запустить их на ваш сайт, и он скажет вам, если у вас есть кросс-Site Scripting, если у вас есть SQL, если у вас есть что-то подобное. Я как бы испортить. Что важно - Итак, никогда не доверяйте пользователю. Независимо пользователь вводит для вас, сделать что вы дезинфицировать его, вы очистите его, Вы проверьте правильные вещи, что это дает вам то, что вы хочу, чтобы он дал вам. Всегда быть в курсе того, что рамки что вы на самом деле с помощью. Если вы используете что-то вроде начальной загрузки - Я знаю, вы, ребята, собираетесь использовать загружаться, потому что он собирается пойти над этим в ближайшее время в классе - и Wordpress или что-то в этом роде, обычно это может быть взломан. И тогда вы даже не знаете. Ты просто работает свой сайт. И это совершенно безопасно. И вы идете вниз. Так что я на рыбалку очень рано. Но я хочу поблагодарить PenTest Labs. Я собираюсь показать вам, ребята что-то называется PenTest Labs. Если вы, ребята действительно заинтересованы в что безопасность на самом деле, есть веб-сайт под PenTest Labs если вы, ребята, идти к ней прямо сейчас. Ну, это не то. Я просто хочу, чтобы запустить его, как это. Google говорит мне ответ. ОК. И она учит использовать вас - так это говорит, научиться веб-проникновение тестирование на правильном пути. Она учит, - надеюсь, вы нравственной личностью. Но она учит, как вы можете посмотреть на как вы можете получить внутри веб-сайтов. И если вы узнаете, как можно попасть внутрь сайты, вы можете узнать, как защитить себя от получения внутри веб-сайтов. Позвольте мне увеличения, потому что, может быть, вы, ребята, не глядя на это право. От инъекции SQL раскошелиться, так рода, как я могу получить от SQL впрыска раскошелиться. И вы скачать эту виртуальную машину. И виртуальная машина уже идет с веб-сайтом, что ты собираюсь попробовать его. Вы скачать этот файл PDF. И он покажет вам построчно, что что вам нужно сделать, что вы проверить. Это то, что злоумышленник на самом деле делает, чтобы попасть внутрь сайте. И некоторые из этих вещей является сложным. Я хотел бы перейти более вещи с вами, ребята. Но я волнуюсь, что вы, ребята, есть на самом деле не - это то, что я подошел с вы, ребята, веб-тесты для тестирования на проникновение. Не знаю, что SQL является и то, что - Семинар Карла Джексона потрясающая также. Вы, ребята, не знаю, вроде о том, что это такое. Но если вы идете на этот сайт, и вы скачать эти обучающие программы и их PDF-файлы, вы можете взглянуть на своего рода что площадь безопасности действительно в тестирование на проникновение, посмотреть, как вы можете получить внутри веб-сайтов и защиты себя от него. Так что если я делаю супер быстрый обзор, это будет предотвратить кросс-Site Scripting. Вы хотите использовать HTMLSpecialChars каждый тайм пользователь вводит что-то. Предотвращение инъекции SQL. Если вы сделаете это, вы уже лучше, чем Гарвард был когда они получили нарушены. И убедитесь, что ваши пароли не в виде обычного текста. Убедитесь, что вы не только один способ хэш их, но что вы используете склеп, PHP функция, я показал вам, ребята. Таким образом, вы должны быть хорошо. Кроме того, если ваши друзья позволяют, работать SQL Введите меня на своих сайтах. Запустите межсайтовый скриптинг на своих сайтах. И вы увидите, многие из этих сайтов есть тонна уязвимостей. Это невероятно, насколько люди забывают для дезинфекции свои базы данных или сделать уверен, что ввода человека не код сценария. ОК. Я, конечно, закончился очень рано. Но если у кого есть вопросы по поводу ничего, что вы можете снимать мне вопрос. Да. Иди, иди. Зала: Я просто хочу спросить, Вы можете объяснить, как файл загрузить ровно работ. ЛУЧАНО Аранго: Да. Итак, позвольте мне показать вам файл загрузить реальный быстрый. Таким образом, загрузка файлов на сервер - проблема остроумие загрузку файлов прямо сейчас, что - Я собираюсь открыть код так вы, ребята, см. код за кулисами. И это загрузить. Вот код файла пользователя. Мы пытаемся, чтобы войти в этот каталог здесь. И мы пытаемся, как только мы вход файл, Исеть файл - поэтому, когда есть подать в файлах, этот образ, то мы стараемся, чтобы переместить его здесь. Мы захватить файл здесь. Метод POST, тип, изображений и файлов. И мы посылаем этот файл. И то, как только мы получим его, поэтому, как только файл имеет образ, мы пытаемся, чтобы отправить его в этот каталог. Проблема в том, что веб-сайт не отпустил меня в этот каталог, потому что он не хочет, чтобы я вернулся. Она не хочет, чтобы я пошел - Я должен идти - так вот загрузить. Вот изображения. Я должен пройти весь путь обратно в начиная и положил его там, а затем пойти и положить его в каталог. Так что, если я бежал окно терминала, и я хотел переместить файл - [Неразборчиво] вижу. Если бы я хотел, чтобы переместить файл, у меня есть поставить имя файла, а затем Полный путь я хочу, чтобы отправить его. И то сервер не давая мне вернуться. И поэтому он не позволяя мне добраться до этого файла. Но обычно - так что есть код загрузив файл. Так обычно то, что будет происходить в том, что человек не проверка, если мой файл заканчивается. JPEG, так что я хотели бы проверить. Позвольте мне открыть пример слишком реальный быстрый. ОК. Этот человек прав - так пример двух проверяет если preg_match - вот она здесь - чтобы убедиться, что заканчивается PHP, и это хорошо. Это хорошо. Но есть настоящий большой Проблема с этим. Это хорошо. Но если бы я должен был положить файл с именем myfavoritepicture.php.jpeg, я мог по-прежнему потенциально избавиться от JPEG и запустить it.k Это РНР опасно. Вы не хотите, чтобы человек, чтобы иметь возможность запустить код на своем сайте. Но тогда. JPEG пропускает. Идея состоит в том, что вы действительно хотите сделать не принимать файлы, А. Но, хорошо, что Вы действительно хотите сделать, это убедиться, что вы читаете над всем миром. И нет ничего. PHP в нем. Там нет. PHP в Весь имя файла. Зала: Но вы могли бы положить. JPEG на конце. Серверы еще запустить код. ЛУЧАНО Аранго: Нет, это не будет запустить в начале. Вы должны вернуться и попробовать чтобы увидеть, если вы можете - АУДИТОРИЯ: Итак, мы должны - ОК, просто еще один набор, который включает в себя - ЛУЧАНО Аранго: Да. АУДИТОРИЯ: ОК. ЛУЧАНО Аранго: Да. ОК. Любые другие вопросы? ОК. Я собираюсь оставить это и сортировать из попытаться увидеть, если вы, ребята, можете - другие из них немного больше осложняется тем, что они требуют гораздо более знание SQL, чем просто начиная знание веб-SQL является и что JavaScript является. Но я собираюсь попытаться держать это, и, надеюсь, вы, ребята, узнаете об этом и попытаться заглянуть в что вы можете сделать и сколько примеров вы можете получить через. Любой, есть любой другой вопросы об этом? Идем дальше. Да, стрелять, стрелять. Да, идти вперед. Идем дальше. АУДИТОРИЯ: ОК. Я слышал о том, как волшебные кавычки не достаточно безопасно. ЛУЧАНО Аранго: Что - Волшебные кавычки? АУДИТОРИЯ: Да. Так он добавляет - поэтому, когда вы вводите что-то, он всегда добавляет кавычки. ЛУЧАНО Аранго: Да. Да. ОК. АУДИТОРИЯ: И тогда я, однако, что работал, но тогда я искал его. И он сказал, что это не хорошо. Но я не знаю, почему. ЛУЧАНО Аранго: Да. АУДИТОРИЯ: Не использовать волшебные кавычки, потому что это не безопасно. ЛУЧАНО Аранго: ОК. Так волшебные кавычки, когда вы вставляете SQL а это уже добавляет смету для вас. АУДИТОРИЯ: Это всегда добавляет кавычки вокруг все, что вы вставил ЛУЧАНО Аранго: Да. Таким образом, проблема в том, что - Я взглянуть на - АУДИТОРИЯ: Как это приобрести SQL заявление? Или я предполагаю, что это может быть как цитата выбрать. ЛУЧАНО Аранго: Да, вам нужно хороших цитат для SQL. АУДИТОРИЯ: Нет, но сервер сделает это за вас. ЛУЧАНО Аранго: Эти маленькие котировки прямо здесь, эти маленькие котировки? АУДИТОРИЯ: Да. ЛУЧАНО Аранго: Да. Проблема в том, что вы можете закомментируйте последний - Хорошо, таким образом, что я могу сделать, это я могу прокомментировать из - так что давайте взглянем на - пусть мне открыть файл ввода текста. Позвольте мне просто изменить эту прямо здесь напрямую. ОК. Можете ли вы, ребята, видите, что четко? Что я могу сделать, это я могу прокомментировать из последнего. Это закомментируйте последнюю. И тогда я положу один здесь, положить здесь все злые вещи. Таким образом, пользователь на самом деле ввода, верно? Пользователь не вводя вещи, верно? Это то, что я собираюсь входа как человек пытается проникнуть внутрь. Я собираюсь поставить в - это одна кавычка. Это просто волнистые по ошибке. А потом, что код собирается сделать - жаль, я собираюсь взять это. Что код собираюсь сделать, это он собирается добавить первый кавычки здесь. И он собирается добавить последний кавычки, а также. И это также собирается добавить Наконец, в прошлом кавычки. Но я комментируя эти цитаты выделяет, поэтому они не работают. И я заканчиваю эту цитату пометить здесь. Вы понимаете? Вы потеряли? Я могу прокомментировать последнюю цитату знак, и заботиться о Первый кавычки. АУДИТОРИЯ: И так же, отделка первый. ЛУЧАНО Аранго: Да. И просто закончить первый. Да, это верно. Это то, что я могу сделать. Да. Любые другие вопросы, как, что? Это большой вопрос. Нет, да, может быть. Будем надеяться, что вы, ребята, будет своего рода делают больше смысла, когда вы изучаете SQL и такие вещи, как, что. Но убедитесь, что вы - держать эти средства в часы. К сожалению, эти инструменты более здесь. Эти инструменты являются большими. Если у кого есть какие-либо вопросы, Вы также можете по электронной почте мне. Это мой нормальный адрес электронной почты. А это мой рабочий адрес электронной почты, который когда я работаю на морях. Хорошо, спасибо. Спасибо, ребята. Ты хорошо идти. Вы не должны остаться здесь. Не хлопать. Это странно. Хорошо, спасибо, ребята.