После прочтения данной статьи вы будете знать все об основных методах поиска уязвимостей на нужном вам сайте.
Привет, ребята! В сегодняшней статье я расскажу вам об основных методах поиска уязвимостей на нужном вам сайте.
✅ Инструменты и техники, описанные в данной статье, используются как черными, так и белыми хакерами.
Общие принципы взлома сайтов
По структуре сайты делятся на три больших класса:
- самописные (сделанные вручную на HTML, произведенные статическим генератором типа Jekyll или собранные в программе-конструкторе типа Adobe Dreamweaver);
- сделанные в онлайновых конструкторах (в основном это сайты-визитки без каких-либо баз данных и передаваемых полей);
- работающие на готовых CMS (Content Management System, системах управления контентом).
Встречаются еще самодельные CMS, созданные для конкретного сайта, но это сейчас стало редкостью — позволить себе поддержку своей системы могут только самые крупные ресурсы, и оправдать связанные с этим затраты непросто.
Как взламывают сайты? HTML, JS и SQL инъекции (Уязвимости веб сайтов)
С точки зрения атакующего, движки сайтов ничем не отличаются от других сервисов и служб. Их исходный код обычно находится в общем доступе, и любой хакер может проанализировать его на ошибки, в том числе бреши в безопасности. Поэтому сайты на CMS редко становятся жертвами целевой атаки. Чаще их ломают массово.
Такой взлом автоматизирован и обычно протекает по следующей схеме: хакер находит уязвимость (самостоятельно или просто гуглит что-то свежее). Затем он делает эксплоит или берет готовый и пишет специализированный бот. Этот бот ищет указанную дыру на всех сайтах подряд в заданном диапазоне и пытается эксплуатировать ее.
Казалось бы, для защиты от автоматических атак надо всего-то поддерживать программное обеспечение в актуальном состоянии, но в реальности CMS обрастает разными дополнениями, и уследить за всеми становится сложно.
✅ В случае, если ваша задача — это проверить конкретный сайт на уязвимости, то вам нужно следовать другим путем, о котором мы сегодня и поговорим.
Разведка перед взломом
Прежде, чем пытаться атаковать цель, нужно собрать информацию о ней. Для этого хорошо подходит инструмент WhatWeb. Эта утилита предоставляет подробную информацию о CMS жертвы и использованных ей веб-инструментах.
Советую запускать WhatWeb с ключом -а , указывая после него значение 3 или 4 . Разница между ними только в том, что во втором случае WhatWeb будет сканировать еще и субдиректории. Имейте в виду, что оба варианта задают агрессивный метод опросов — со всеми вытекающими, а точнее «втекающими» на сервер логами.
- Вот пример запуска и собранных ответов:
Здесь мы видим, что это сайт британской компании, сделанный на WordPress, используется PHP v. 7.1.33 и jQuery 1.9.0, 2.2.3. Неплохо для начала!
Топ 5 ХАКЕРСКИХ программ для ПК!
⚡️ Если вы не хотите заморачиваться с установкой, то обратите внимание на онлайновую версию WhatWeb:
Источник: www.hackerplace.org
Методы и способы взломов сайта. Что такое SQL инъекции и что делать если сайт взломали?
Получи нашу книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».
Подпишись на рассылку и получи книгу в подарок!
А вы уверены, что ваш сайт находится в безопасности? 45% веб-ресурсов крупнейших российских компаний имеют критические уязвимости. Прочитав эту статью, вы сможете провести базовую проверку своего веб-сайта на наличие SQL инъекций.
Давайте для начала разберем, что есть безопасность. Безопасность — это состояние защищенности автоматизированной системы, при условии, что риск не превышает допустимых значений. В свою очередь, риск — это произведение ущерба и вероятности. Что же из себя представляет ущерб? Ущерб — количественная оценка нанесенного вреда системе.
Вероятность, думаю, всем знакома.
Представляю вам краткий математический обзор: исходя из этих базовых понятий считают математические риски (классы гостайны разделены именно по этим принципам).
Как же это относиться к защите вашего сайта, думаете вы? А вот как: мы с вами прекрасно знаем, что абсолютно нулевой вероятности не существует (т.е. хоть и маленькой вероятностью, но прямо сейчас из монитора может вылезти джин и выполнить 3 ваших желания).
К чему я это говорю? К тому, что точно так же, нет системы которую невозможно взломать, вопрос лишь в ресурсах. И если подходить к делу профессионально, необходимо оценить возможный ущерб от несанкционированного доступа и принять меры, соответствующие вашему ущербу.
Да, мы можем поставить TrueCrypt, зашифровать наши данные и пароли. Настроить двойную аутентификацию и хранить винчестер с этим всем в бункере, защищенном от прямого ядерного удара, но если у нас там всего лишь пароль от “Контакта”, то возможный ущерб несопоставим с нашими средствами защиты (если, конечно, вы не храните во “ВКонтакте” доступы от ваших миллионных счетов в банке).
Теперь, я хочу вам донести информацию об основных уязвимостях веб-сайтов.
Основные методы и взлома сайтов (уязвимости)
- SQL — injection;
- XSS;
- CSRF;
- PHP injection.
Также стоит отметить DDoS атаки: с их помощью нельзя получить несанкционированный доступ, но нанести непоправимый ущерб — запросто.
В данной статье мы рассмотрим детально первую уязвимость.
SQL Injection
Теперь нам нужно разобраться, что есть сайт, как он работает в общих чертах. Сайт — программа, в 90% случаев написанная на языке программирования PHP.
Для того чтобы веб-мастерам было удобнее управлять сайтом, вначале двухтысячных начали использовать базы данных (далее БД), где хранится вся информация о зарегистрированных пользователя, об их паролях, естественно, не в открытом виде, но об этом ниже. Кстати, даже то, что вы сейчас читаете, хранится в БД.
Что такое SQL инъекции?
Все очень просто. SQL — это язык общения с БД, а слово Injection переводится как “внедрение”. Иначе говоря, при помощи SQL Injection можно внедрить произвольный SQL-код, который сервер обработает и выдаст ответ.
Как все работает: примеры
БД состоит из таблиц, каждая таблица имеет строки и столбцы, все как в Еxel.
Для наглядности рассмотрим примерную структуру БД на всем знакомом сайте VK.com
Каждый пользователь “ВКонтакте”, естественно, имеет ряд персональных параметров: Имя, Фамилия, e-mail, дата регистрации и прочее. В итоге каждый столбец отвечает за свой параметр.
ID | First_name| Last_name | password | email .
1 | Pavel | Durov | 202cb962ac59075b964b07152d234b70 | .
2 | Vova | Pupkin | 827ccb0eea8a706c4c34a16891f84e7b | .
Скорее всего, вы решите, что у Паши Дурова и Вовы Пупкина очень сложный пароль (аж целых 32 символа!), но, на самом деле, вы ошибаетесь. Что же есть 202cb962ac59075b964b07152d234b70? Это так называемое хэш-значение, результат преобразования хэш-функции. Простым языком — зашифрованный пароль (хоть это не совсем так). Для чего это нужно?
Для того чтобы хакер при взломе сайта не смог легко заполучить пароли пользователей. Но и на это есть свои методы. Если пароль зашифрован — это еще не гарантия безопасности.
Давайте представим, что вы (программа) вышли в магазин (БД) и просите продавца (SQL запрос): «Дайте, пожалуйста, одну пачку Мальборо за 100 рублей»;
Вот так это будет выглядеть на языке SQL:
SELECT имя-товара FROM универсам WHERE (тип=’мальборо’ AND цена=’100′) LIMIT 1
SQL-сервер выдаст ответ на ваш вопрос, а делать вы с ним можете все что угодно. Можете как-то модифицировать эту информацию, посчитать или банально вывести на экран браузера.
Теперь вернемся к SQL Injection, как мы уже знаем, это внедрение произвольного кода в SQL-запрос. То есть уязвимость существует тогда, когда злоумышленник может внедрить свой выполняемый код.
Продолжим. Вот вы прочли Аллена Карра и бросили курить. Теперь вы ходите в магазин за исключительно полезными товарами:) В этот раз, вы пойдете. ну, допустим, за молоком.
Чтобы не забыть, вы записали на бумажке: «Один пакет молока за 50 рублей», но у вас есть друг (хакер), который курит. Он произвел SQL-атаку и теперь надпись гласит: «Один пакет молока за 50 рублей. $ИЛИ одну пачку Мальборо за 100 рублей$»
Вы приходите в магазин и читаете по бумажке: «Дайте, пожалуйста, один пакет молока за 50 рублей или пачку Мальборо за 100»
SELECT имя-товара FROM универсам WHERE (тип=’молоко’ AND цена=’50’) OR (тип=’мальборо’ AND цена=’100′) LIMIT 1
Продавец подумал, что ему незачем идти до холодильника с молоком, когда сигареты лежат рядом, и отдал их. Теперь вы идете с магазина, а ваш друг только этого и ждет, когда вы принесете ему сигареты.
Вот и пример SQL атак. На сайтах это выглядит иначе, конечно же. Сайт запрашивает с БД одну информацию, а с помощью SQL-инъекции можно получить, например, логины и пароли.
Как же происходит взлом?
Чтобы четко понимать, что именно нужно делать, программа берет SQL-запрос в кавычки. Приведу реальный пример. Допустим, мы хотим выяснить, сколько лет нашему другу, зная его имя и отправляя в переменную $_GET[‘name’]
$result = mysql_query(«SELECT age FROM myfriends WHERE name=$_GET[‘name’]»);
Например, мы хотим узнать сколько лет Насте хоть это и неприлично, но БД все нам расскажет 🙂
В программе окажется код:
mysql_query(«SELECT age FROM myfriends WHERE name=’Настя’»);
Рассмотрим чуть детальнее вот этот кусочек. у нас есть 2 пары кавычек.
Первая пара обозначает сам запрос целиком.
«SELECT age FROM myfriends WHERE name=’Настя’»
Вторая пара обозначает имя. Настя.
Так вот, а что если злоумышленник напишет не Настя, а Настя’ , с кавычкой в конце? Он нарушит синтаксис функции mysql_quevery. И SQL-сервер выдаст закономерный ответ — ошибку (потому как не сможет обработать ‘ , которая не является функцией).
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near Настя’
Кстати, совсем забыл вам рассказать про оператора для комментирования. Один из них — это два тире, которые выглядят вот так: “—”. Что же случится, если мы передадим Настя’ — ?
Правильно. Все последующие записи закомментируются, т.е. закомментируется кавычка для закрытия функции mysql_query(). Теперь ее роль будет выполнять та кавычка, которую мы сами и написали. Верно, сейчас мы подходим к самому интересному. Таким способом мы получили доступ для свободного обращения к базе данных.
Я привел в пример самую простую ошибку программиста.
В языках программирования есть разные типы данных, есть строки (String), есть числа (Integer), в зависимости от этого нужно правильно строить SQL-инъекцию. Кстати, “1” может быть как строкой, так и целым числом.
Это лишь край вершины айсберга, есть десятки способов реализации угроз типа SQL-инъекции.
Пример взлома сайта
Действительно ли все так страшно, как вам рассказывают? Не могу не приложить пример. Здесь мы наблюдаем интернет-магазин, который с помощью SQL уязвимости вывел нам информацию о версии SQL-сервера.
Можно с легкостью вывести информацию и о логинах/паролях, но мы рассматриваем не методы взлома и деструктивного воздействия, а напротив, средства защиты (кстати говоря, администрация сайта уведомлена о найденной уязвимости). Иметь уязвимость в интернет-магазине — недопустимо, а если он еще и карты принимает — неприемлемо. Злые хакеры (не мы) могут получить доступ к сайту и записывать данные о дебетовых/кредитных картах покупателей, а затем использовать информацию в своих целях. Поэтому стоит очень внимательно относиться к безопасности как при создании веб-сайта, так и при покупках в сети.
Это лишь один из путей хакеров при монетизации сайтов. Их десятки: вирусы, дорвеи, редиректы, дополнительная реклама, невидимая sape на вашем сайте… и многое другое… Если вам это будет интересно, я с радостью напишу подробную статью на этот счет, пишите в комментарии.
Не работает три дня подряд: хакеры взломали сайт и приложение РЖД
Пользователи сервисов РЖД жалуются, что уже третий день не могут купить билеты на сайте или через приложение перевозчика. Всё это время компания приносила клиентам извинения и предлагала «обратиться к сервисам позднее».
— А это вообще нормально, что в стране уже 3 дня подряд не работает сайт основного перевозчика? — задает вопрос в официальном сообществе РЖД во «ВКонтакте» пользователь Андрей Мельников.
При попытке зайти на сайт РЖД сообщается, что сервер не может обработать запрос.
При этом пользователи из некоторых регионов говорили, что у них «прекрасно всё работает», но сегодня в РЖД официально заявили: сайт и приложение компании атаковали хакеры.
— Наш сайт и мобильное приложение подверглись массированной хакерской атаке. Стараемся как можно быстрее восстановить их работу, — прокомментировали ситуацию в РЖД.
Точных сроков, когда восстановится работа сайта и приложения в РЖД, не называют и говорят, что билеты можно купить только в кассах.
— Кассы на станциях и вокзалах функционируют штатно, продажа билетов осуществляется в обычном режиме, — говорится в сообщении перевозчика.
Источник: ufa1.ru