Lifehack

Lifehack

Сообщество по информационной безопасности. Статьи, гайды, обучения, рекомендации, обзоры, новости, подборки полезного софта! Life-Hack - Хакер
На Пикабу
Дата рождения: 10 марта
Dilyasha virineya17
virineya17 и еще 1 донатер
63К рейтинг 982 подписчика 3 подписки 272 поста 84 в горячем
Награды:
самый сохраняемый пост недели самый сохраняемый пост недели самый сохраняемый пост недели самый сохраняемый пост недели 5 лет на Пикабу
4

Атакуем веб-приложения. Уязвимость SQLi. Часть 1 - Теория

Данный пост носит теоретический характер.

В данном посте будет описано что из себя представляет SQLi и как это может быть использовано (в том числе и в незаконных целях).

Крактое определение.

Внедрение SQL-кода (SQL injection) — один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.

Как это работает?

объясненние сделано максимально простым и опущены некоторые нюансы

Для представления механизма работы SQLi, нужно представлять, что такое база данных и скрипты, в которых производятся запросы к базе данных, а также знать хотя бы на примитивном уровне SQL и иметь навык написания базовых запросов.

Грубо говоря, обычная, в нашем понимании, БД состоит из множества таблиц. У каждой таблицы, естественно, есть столбцы и есть строки. Собственно, это ключевой момент. Возьмем к примеру таблицу пользователей какого-либо интернет-магазина. Для каждого пользователя должно быть описано несколько параметров (логин, адрес электронной почты, дата регистрации, сохранённая карточка и т.д.).

В итоге каждый столбец определяет какой-либо параметр пользователя, а каждая строка - конкретного пользователя. А в пересечении нужного нам столбца и строки будет информация о параметре нужного пользователя.

Пример.

Представим, что вы (скрипт) идёте в магазин (базу данных), и просите в магазине (создаёте SQL запрос и отправляете его в базу данных) продавца: “Мне нужна одна бутылка воды за 25 рублей”.

Теперь переделаем это в SQL запрос к базе данных, получим следующее:

SELECT * FROM магазин WHERE (тип=’вода’ AND цена=25) LIMIT 1

Собственно, в ответ на вашу просьбу (SQL запрос) вы (скрипт) получаете бутылку (информацию), и продавца (Базу данных) уже не волнует, что вы будете с ней делать, так как свою работу он выполнил. Вы можете ее выпить, вылить, подарить (обработать, вывести, рассчитать) и тд.

Что надо бы знать?

Для полного понимания запроса в базу данных необходимо знать на базовом уровне язык SQL, однако даже без особых знаний можно заметить, что запрос выглядит понятным, так как используются довольно известные слова и они трактуются в данном случае однозначно. Вопросы может вызвать разве что окончание запроса: “LIMIT 1” – данная конструкция объявляет, что необходимо выдать только первый найденный результат, если вдруг их больше одного (бутылок по такой цене может быть очень много, но нам нужна только одна).

Все остальные мнемоники (команды) запроса предельно понятны:

SELECT – выбери (возьми)

FROM – из (указывает от куда нужно взять, чаще всего после данной команды следует название одной из таблиц в текущей базе данных)

WHERE – где (указывает какие значения различных параметров должны быть у той строки которую мы хотим получить, по сути указывает критерии для того товара который мы хотим получить)

Для успешной реализации атаки типа SQLi необходимо хорошо знать язык SQL.

Обобщенно атака типа SQL инъекция (SQL injection) возникает в случае если злоумышленник может каким-то образом модифицировать запрос к БД.

Ещё один пример.

Рассмотрим всё тот-же пример с магазином.

Допустим вы решили пойти в магазин за кефиром, и специально написали на бумажке список продуктов, которые хотите купить, чтобы ничего не забыть. Предположим, что у вас дома оказался друг, который очень любит шоколад, однако ему нельзя есть его много и на его просьбу, вы ответили отказом и не стали записывать в листочек его пожелание. Итого вы получаете листочек, в котором на каждой новой строке записаны продукты, которые вам необходимы в магазине. Допустим, что каждый из продуктов будет представлять собой некий запрос к базе данных (магазину) как и в прошлом примере. Вы просто отдаёте продавцу свой листочек (скрипт передаёт запросы в базу данных) и он, читая очередную строку кладёт в ваш пакет тот или иной продукт (сохраняет результаты, того что удалось получить из базы данных). Теперь представим, что в данный листок ваш друг всё-таки умудрился вписать шоколад (провел атаку SQL injection) и продавец, читая очередную строчку может увидеть следующее: “Масло за 100 рублей или шоколад за 150 рублей”. В магазине может не оказаться масла, или продавцу долго за ним идти, и он положит вам в пакет шоколад. Продавец в данном случае не имеет представления о том, что вашему другу нельзя шоколад и вам он тоже особо не нужен, он просто выполняет свою работу, предоставляет продукты согласно переданному ему списку (база данных будет осуществлять работу по возврату данных на основание входящих запросов, если они были составлены правильно). Переведя это в SQL запрос получим следующее:

SELECT * FROM магазин WHERE (тип=’масло’ AND цена=’100’) OR (тип=‘шоколад’ AND цена=‘150’) LIMIT 1

Атака удалась потому что вы не проверили листочек перед тем как отдать его продавцу (скрипт не проверил входные данные перед формированием запроса и его отправки в базу данных).

Где можно найти SQLi?

SQLi может возникать в местах, где есть какие либо входящие параметры, например формы поиска товаров в интернет магазине или форма авторизации, которые есть на большей части всех веб-приложений. Любой не фильтруемый пользовательский ввод – почти всегда приводит к плачевным последствиям.

Особенности.

В случае с SQLi есть некоторые особенности, связанные с запросом, в который подставляются введённые пользователем данные. Например, тип значение, в которое поступают данные от пользователя может быть целочисленным или строковым, или стоять в нескольких скобочных вложениях, что немного затруднит написание зловредного запроса.

В случае с запросом на авторизацию, необходимо понимать, что как таковые данные с помощью такого запроса получить не удастся, так как такого рода запросы чаще всего рассчитываются на получение хэша от пользовательского пароля и сравнение его с высчитанным хэшом от входного пароля.

Большинство из SQLi обнаруживаются путём нарушения общего мнения о том, что должно быть введено в данное поле конечным пользователем, чаще всего срабатывает символ одинарной кавычки, так как многие из параметров – строковые. Подставив в какой-либо параметр кавычку и получив ошибку, содержащую слова “SQL syntax error” или что-то подобное, можно сразу сказать, что скорей всего здесь есть SQLi.

Однако, есть варианты что кавычка фильтруется, или отключен отчёт об ошибках, в этом случае нужно прибегать к другим методам. Про обходы фильтраций будет написано в следующих постах, после того как будут выпущены посты про "практику SQLi" - следите за каналом!
Мы в телеграме: Life-Hack [Жизнь-Взлом]/Хакинг - подписывайся!

Показать полностью
0

Хакеры и данные: чем простым россиянам грозят новые взломы

За прошедшую неделю на даркнет-форумах появилась информацию сразу о нескольких новых утечках данных: утечка из подведомственного минцифры НИИ «Восход», «Высшая школа экономики» и «Сбер Спасибо».

Пока что подтверждения факта утечек ни от кого из пострадавших компаний и ведомств не было, однако Роскомнадзор совместно с ФСБ уже начал проверку.

Неужели придётся всем теперь менять паспорта?

Пока что нет. Однако по некоторым прогнозам к лету не останется ни одного жителя России, которого не затронула утечка данных.

Что становится причиной утечки?

Их несколько:

— Уязвимости в системе.

— Слабые или повторно используемые пароли.

— Целевые атаки.

— Избыточные права доступа.

— Вредоносные программы.

— Фишинг или спуфинг.

— Украденные учетные записи.

Что нужно знать и предпринять, если утечка данных произошла?

1) Быть готовым к активности мошенников в тех случаях, когда в утечку попала ваша почта и номер телефона. Телефонные мошенники активно берут на прицел новые утечки, пополняя свои базы потенциальных жертв.

2) Если в утечку попал пароль, то нужно в ближайшее время поменять пароль и установить двухфакторную аутентификацию.

3) Если в утечку попали персональные данные(паспорт, Снилс, адрес), нужно написать в Роскомнадзор, который заблокирует сайт, на котором опубликованы ваши данные.

4) Если в утечку попали платежные данные, обратитесь в банк и заморозьте счета.

Как проверить, есть ли мои данные в утечке?

Сайт Have i been pwned? — сайт, который основал в 2013 году известный консультант по веб-безопасности Трой Хант. Для того, чтобы узнать, были ли ваши данные скомпрометированы, нужно ввести свою электронную почту. Сайт покажет все актуальные утечки с вашими данными.

Также за актуальными утечками данных можно следить в профильных Telegram-каналах, в числе которых и наш - Life-Hack [Жизнь-Взлом]/Хакинг

Показать полностью
1

Burp Suite - удобный инструмент для проведения атак на веб-приложения

Данный пост будет носить практический характер с элементами необходимой теории.

В данном посте будет разобрана базовая настройка и основы работы с самым часто используемым инструментом при атаке на веб-приложения - Burp Suite.

Для чего нужен Burp Suite?

Данный инструмент покрывает почти всё, что может быть необходимо исследователю при анализе (имеется ввиду профессиональная версия данного инструмента), это как IDA Pro только в мире веб-исследований. Burp – является крайне функциональной платформой для анализа безопасности веб-приложений. Основной режим работы Burp Suite представляет собой перехватывающий прокси для протоколов http и https, соответственно для корректной работы Burp Suite, необходимо в вашем браузере выставить порт для проксирования трафика через Burp, далее Burp будет перехватывать и останавливать все запросы, идущие через ваш браузер, что позволит вам подменять их на лету, также вы можете отключить автоматическую остановку запросов и потом просмотреть их в истории запросов.

Настройка (короткий гайд).

Будем рассматривать случай, когда Вы работаете с Kali Linux, в котором уже установлен Burp.

Burp Suite имеет графический интерфейс и запускается либо с левой панели быстрого доступа, либо через вкладку Applications->03 - Web Application Analysis.

Burp Suite - удобный инструмент для проведения атак на веб-приложения Взлом, Хакеры, Информационная безопасность, Гайд, Длиннопост

При запуске возможно будет выдано сообщение об обновлении, лучше сразу обновить до последней версии, далее будет диалоговое окно создания нового проекта, мы просто жмём далее, и после нажимаем кнопу Start Burp. Если всё было сделано верно, то после запуска мы должны увидеть следующее окно.

Burp Suite - удобный инструмент для проведения атак на веб-приложения Взлом, Хакеры, Информационная безопасность, Гайд, Длиннопост

Настроим прокси.

Для этого нужно в верхнем меню перейти во вкладку Proxy->Options, далее нужно запустить прокси, это делается путём выставления флажка Running.

Burp Suite - удобный инструмент для проведения атак на веб-приложения Взлом, Хакеры, Информационная безопасность, Гайд, Длиннопост

После запуска Burp Suite и запуска прокси сервера необходимо настроить браузер на работу через наш прокси сервер. Если вы используете всё на Kali Linux, то скорее всего вашим браузером для работы является Mozzila, для неё всё настраивается довольно просто, заходим в настройки, далее расширенные настройки и там находим настройки сети.

Burp Suite - удобный инструмент для проведения атак на веб-приложения Взлом, Хакеры, Информационная безопасность, Гайд, Длиннопост

Далее нажимаем на настройки в выставляем наши параметры.

Burp Suite - удобный инструмент для проведения атак на веб-приложения Взлом, Хакеры, Информационная безопасность, Гайд, Длиннопост

Начинаем работу.

После применения настроек все запросы, которые идут через браузер будут проходить через наш перехватывающий прокси и останавливаться, это мы можем увидеть в меню Proxy-> Intercepter в Burp Suite.

Burp Suite - удобный инструмент для проведения атак на веб-приложения Взлом, Хакеры, Информационная безопасность, Гайд, Длиннопост

Если вы хотите подправить запрос вы можете изменить какие-либо данные в тексте запроса и нажать кнопку Forward что отправит запрос далее, если вы хотите не отправлять запрос можете нажать кнопку Drop. Если у вас нет необходимости править запросы на лету, вы можете отключить опцию автоматического перехвата запросов. Для этого просто нажмите на кнопку справа от Drop и увидите, как она превратиться в Intercept is off. Это значит, что перехват не будет осуществляться и вам не нужно будет каждый раз отвлекаться и вручную подтверждать запросы, однако вся история запросов будет сохранена во вкладке HTTP history.

Burp Suite - удобный инструмент для проведения атак на веб-приложения Взлом, Хакеры, Информационная безопасность, Гайд, Длиннопост

Нажав на любой запрос из списка внизу, вы увидите его подробное описание. Также вы можете отправить необходимый запрос в так называемый Repeater или повторитель, для того чтобы отправить его заново с измененными параметрами, это может быть удобно при тестировании различных инъекции или других атак. Для этого нужно нажать на необходимый запрос правой кнопкой мыши и в выпадающем меню кликнуть на Send to Repeater.

Burp Suite - удобный инструмент для проведения атак на веб-приложения Взлом, Хакеры, Информационная безопасность, Гайд, Длиннопост

Удобное управление произвольным запросом.

После этого в верхнем меню перейти во вкладку Repeater. Там вы увидите запрос и сможете корректировать его и отправлять, наблюдая ответ в окне справа. Для более подробного ознакомления с данным инструментов советую потренироваться в его использовании и изучить самостоятельно материалы, которые можно найти в сети интернет. В данном фреймворке есть ещё множество полезных свойств, которые могут пригодиться при анализе веб-приложения.

Burp Suite - удобный инструмент для проведения атак на веб-приложения Взлом, Хакеры, Информационная безопасность, Гайд, Длиннопост

На этом наш краткий обзор такого инструмента, как Burp Suite - закончен, попрактиковаться в использовании данного инструмента можно на CTF’ах, различных HackQuest’ах, WarGames’ах, которых на просторах сети сейчас очень много.

Показать полностью 9
Отличная работа, все прочитано!