>> ЛУЧАНО Аранго: Добре, хлопці.
Мене звуть Лучано Аранго.
Я на другому курсі в 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 і
такі речі, як, що.
Але переконайтеся, що ви -
тримати ці кошти в години.
На жаль, ці інструменти більш тут.
Ці інструменти є великими.
Якщо у кого є які-небудь питання, Ви також можете по електронній пошті мені.
Це мій нормальний адресу електронної пошти.
А це мій робочий адресу електронної пошти, який коли я працюю на морях.
>> Добре, дякую.
Спасибі, хлопці.
Ти добре йти.
Ви не повинні залишитися тут.
Не грюкати.
Це дивно.
Добре, спасибі, хлопці.