Проверка сайта на sql уязвимости: Как за 30 минут бесплатно проверить свой сайт на наличие уязвимостей
Содержание
Как найти и устранить SQL-уязвимость на сайте
Опубликовано в Защита веб-сайтов 15 Августа, 2017
SQL (structured query language, «язык структурированных запросов») – единый стандарт коммуникации, поддерживающий связь хозяина интернет-ресурса с базами данных.
Поскольку базы данных представляют собой один из основных инструментов в работе и поддержании сайтов, SQL-файлы находятся под пристальным вниманием хакеров. Для внедрения вредоносного кода они используют так называемые SQL-инъекции. С их помощью злоумышленники «читают» содержимое любых таблиц, удаляют, изменяют или добавляют информацию в базы, перезаписывают содержание локальных файлов и дают команды на выполнение произвольных команд. Иными словами, – полностью перехватывают управление атакованным сайтом.
SQL-атаки опасны не только нарушением целостности базы данных сайта. Взломавший таким образом всего один сайт хакер способен перейти на страницы других интернет-ресурсов, размещённых на этом сервере. Более того, хищение личных данных пользователей из базы какого-нибудь сервиса грозит их распространением в оффлайне. Это привлекает внимание надзорных государственных органов, которые ответственность за нарушение приватности накладывают на владельцев интернет-страниц.
Любой профессиональный веб-мастер думает о том, как найти уязвимость SQL на сайте до момента заражения. В идеале лучше вообще предотвратить внедрение на ресурс SQL-инъекций, но от этого риска никто не застрахован.
Как проверить сайт на уязвимость SQL
Определить степень незащищённости веб-ресурса и его подверженности SQL-инъекциям несложно даже в ручном режиме.
Проверка сайта на SQL-уязвимости — определение возможности скрипта на сайте отфильтровывать полученные значения при составлении запросов в базе данных.
Рассмотрим простейший тест на SQL-уязвимость, который способен провести и не разбирающийся в программировании человек. Для примера, возьмём условный адрес сайта тест.рф с размещённым на главной странице каталогом. При переходе в каталог в браузерной строке отображается адрес типа тест.рф/?product_id=1, – не исключено, что это и есть прямой запрос в базу данных. Для того, чтобы найти SQL-уязвимость, достаточно подставить в строку всего лишь одинарную кавычку (адрес будет выглядеть как тест.рф/?product_id=1′). Если при нажатии на клавишу enter страничка выдаёт сообщение об ошибке, то значит уязвимость базы действительно имеется. Дальше уже подкованному злоумышленнику остаётся только подобрать для взлома нужное значение.
Как проверить сайт при помощи сканера SQL-уязвимостей
Проверять вручную сайт на возможные SQL-инъекции неудобно. Сегодня программные комплексы для подобного рода тестирования есть практически у всех крупных антивирусных сервисов.
Среди популярных независимых платформ выделяется, к примеру, Sqlmap, сканер, работающий с большинством известных систем управления базами данных
SQL Injection – ещё один популярный кроссплатформенный инструмент, который используется при поиске SQL-уязвимостей. Этот сканер, однако, написан на языке Java, – соответственно, для успешного теста требуется установка в систему JRE (специализированной программной среды исполнения для Java).
Найти в интернете сканер сайтов на уязвимости SQL не так уж тяжело. Сложнее найти универсальный программный продукт, который после тонкой настройки под конкретный веб-ресурс с точностью определит наличие уязвимости с системой управления базами данных. А ведь с этой проблемой нужно ещё и как-то справиться.
Virusdie – надёжный помощник в поиске и устранении SQL-уязвимостей
Универсальное решение при борьбе с уязвимостями SQL предлагает крупный антивирусный сервис Virusdie.
Его отличие от стандартных сканеров в простоте и удобстве использования. Разработчики не предлагают ничего скачивать и устанавливать для запуска процессов сканирования, – вся работа происходит после подключения через облачные технологии.
Антивирусная платформа проверяет подключённые сайты в автоматическом режиме, находя и определяя вирусы, внедрённый вредоносный код и различные XSS/SQL инъекции. Кроме проверки сайта на SQL-уязвимости онлайн Virusdie предлагает эффективные способы разрешения возникших проблем и удаление уязвимостей в автоматическом или ручном режиме (в особо проблемных случаях – с привлечением технического персонала сервиса).
Важное преимущество для далёких от программирования людей заключается в том, что управление ведётся на основе сервисного интерфейса, без взаимодействия с панелями управления сервером или FTP и без переписывания доменных записей. Подключить сайт к Virusdie можно непосредственно по защищённым каналам HTTP/HTTPS, используя при этом уникальный для каждого пользователя файл синхронизации.
Проверка на SQL-уязвимость для сайта облегчается в разы: пользователю не нужно искать в интернете и устанавливать специализированные сканеры, настраивая их для тестирования слабых мест особым образом. В то же время антивирусная платформа не просто находит поражения в базах данных, но и автоматически устраняет их.
Virusdie относится к тем универсальным антивирусным инструментам, которые облегчают владельцам сайтов их обслуживание, экономя время, затраты, связанные с техническим обеспечением. И это одна из главных причин того, почему этот сервис выбирают компетентные веб-мастера.
XSS и SQL сканер онлайн
Безопасность сайта, извечная тема не правда ли? С развитием интернет – технологий развивается и кибер – преступность. Хакеры используют разнообразные и самые изощренные способы взлома, чтобы добыть информацию с Вашего сайта и использовать ее в своих корыстных целях. Конечно, на крупных веб – сайтах специалисты по защите информации редко оставляют лазейки для хакеров и владельцам таких сайтов бояться хакеров не стоит.А что делать небольшому интернет магазину, занимающемуся поставкой бытовой техники с возможностью онлайн оплаты? Магазин развивающийся, доход небольшой, средств на содержание специалиста по защите информации нет. И поэтому владельцу такого сайта необходимо как – то самому обеспечивать свою безопасность. И поэтому в данной статье мне хотелось бы разобрать онлайн – сканер для поиска уязвимостей.
Данный сканер проверяет php код, определяя тем самым наиболее уязвимые и проблемные участки. Сквозь которые и может пробраться хакер.
В актуальной на данный момент версии (на данный момент, потому – что проект достаточно молодой и развивается бешеными темпами) сканер имеет версию 0.2.0 и ищет XSS и SQL Injection уязвимости. Для того. чтобы начать пользоваться сканером нужно перейти на официальный сайт сервиса в меню XSS сканер и загрузить файлы в формате php или группа файлов в ZIP архиве, вы также можете выделить функции, на которые сканеру стоит обратить особое внимание и выбрать отдельные виды файлов, отличные от стандартного .php формата. После того, как будет выполнена проверка сайта на уязвимости сервис выдаст три категории, Errors, Warnings Notice. Соответственно Errors – это самый опасный по мнению сканера код, в котором вероятнее всего встретятся уязвимости. В категории Warnings и Notice сканер определит участки кода, которые не содержат явно выраженных уязвимостей, но тем не менее, полностью безопасными не являются.
Но вернемся к нашему интернет магазину. Как данный сканер может быть использован применимо к конкретной ситуации? Очень просто, раз у владельца интернет магазина нет средств на содержание специально обученного программиста, который бы занимался постоянной защитой сайта. То следует использовать сканер http://find-xss.net и выполнить проверку сайта на уязвимости, а потом обратится к специалисту – фрилансеру, для того, чтобы он этот проблемный код исправил.
Основное преимущество использования сканера заключается в том, что отсеивает безопасные участки кода, а оставляет только те, которые представляют некоторую угрозу. Так можно сэкономить достаточно времени и быстро внести необходимые изменения.
как проверить сайт на уязвимость, программы для сканирования — «ИнфоСорт»
Содержание статьи:
Главная проблема для веб-разработчика это всегда безопасность сайта от взлома и кражи данных. Мы рассмотрим уязвимости сайтов, как их проверить и какие существуют для этого программы.
Типы уязвимостей сайтов
При создании веб-страниц используется много смежных электронных технологий. Какие-то являются совершенными и проверены временем, а какие-то новые и ещё не обкатанные. В любом случае имеется масса разновидностей уязвимостей сайтов:
- XSS. Каждый сайт обладает небольшими формами. С их помощью пользователи вводят данные и получают какой-либо результат, проводят регистрации или отправляют сообщения. Подстановкой в эти формы специальных значений можно спровоцировать выполнение определённого скрипта, что может вызвать нарушение целостности сайта и компрометирование данных.
- SQL-инъекция. Очень распространённый и эффективный способ получить доступ к конфиденциальным данным. Происходить это может либо через адресную строку, либо через формы. Процесс проводится путем подстановки значений, которые могут не отфильтровываться скриптами и выполнять запросы в базу данных. А при должных знаниях это может вызвать нарушение безопасности.
- HTML-ошибки. Практически то же самое, что и XSS, но внедряется не скрипт-код, а HTML.
- Уязвимость сайтов, связанная с размещением файлов и каталогов в местах по умолчанию. Например, зная структуру веб-страниц, можно добраться до кода административной панели.
- Недостаточная настройка защиты операционной системы на сервере. Если таковая уязвимость присутствует, то у злоумышленника появляется возможность выполнить произвольный код.
- Плохие пароли. Одна из самых очевидных уязвимостей сайтов — использование слабых значений для защиты своей учётной записи. Особенно, если она с правами администратора.
- Переполнение буфера. Используется при замене данных из памяти, вследствие чего можно внести свои коррективы. Встречается при задействовании несовершенного программного обеспечения.
- Замена страниц веб-ресурса. Воссоздание точной копии сайта, зайдя на который пользователь может не заподозрить подвоха и ввести свои личные данные, через некоторое время переходящие злоумышленнику.
- Отказ в обслуживании. В основном под этим термином понимают атаку на сервер, когда он получает большое количество запросов, которые не может обработать и попросту «падает» или же становится не способным обслужить настоящих пользователей. Уязвимость же заключается в том, что фильтр по IP не настроен должным образом.
Поиск уязвимостей сайта
Специалисты по безопасности проводят особый аудит веб-ресурсов на наличие ошибок и недочётов, способных привести к взлому. Такая проверка сайта называется пентестинг. В процессе анализируется исходный код, используемые CMS, наличие уязвимых модулей и много других интересных проверок.
SQL-инъекция
Этот тип проверки сайта устанавливает, фильтрует ли скрипт полученные значения при составлении запросов в базу данных. Провести простейшее тестирование можно и вручную. Как найти уязвимость SQL на сайте? Сейчас будет рассмотрено.
К примеру, имеется некий сайт мой-сайт.рф. На его главной странице есть какой-либо каталог. Зайдя в него, можно обнаружить в адресной строке что-то наподобие мой-сайт.рф/?product_id=1. Есть вероятность, что это и есть запрос в базу. Для поиска уязвимостей сайта сначала можно попробовать подставить в эту строку одинарную кавычку. В итоге должно быть мой-сайт.рф/?product_id=1′. Если при нажатии клавиши «Ввод» на странице появилось сообщение об ошибке, то уязвимость имеется.
Теперь можно использовать различные варианты подбора значений. Применяются операторы объединения, исключения, комментирования и многие другие.
XSS
Данный тип уязвимости может быть двух видов — активный и пассивный.
Активный подразумевает внедрение участка кода в базу данных или прямо в файл на сервере. Он более опасен и непредсказуем.
Пассивный режим предусматривает заманивание жертвы на определённый адрес сайта, содержащего вредный код.
С помощью XSS злоумышленник может украсть Cookies. А в них могут содержаться важные данные пользователя. Ещё более ужасными последствиями обладает кража сессии.
Также хакер может использовать скрипт на сайте таким образом, чтобы форма в момент отправки её пользователем отдавала информацию прямиком в руки злоумышленнику.
Автоматизация процесса поиска
В сети можно найти массу интересных сканеров уязвимостей сайта. Какие-то поставляются отдельно, какие-то идут в комплекте с несколькими подобными и объединены в один общий образ, наподобие Kali Linux. Далее будет представлен обзор наиболее популярных средств для автоматизации процесса сбора информации об уязвимостях.
Nmap
Самый простой сканер уязвимостей сайта, который может показать такие подробности, как операционная система, используемые порты и сервисы. Типичный пример применения:
nmap -sS 127.0.0.1, где вместо локального IP нужно подставить адрес реального тестируемого сайта.
Вывод сообщит о том, какие сервисы запущены на нем, и какие порты в этот момент открыты. На основе этой информации можно попробовать использовать уже выявленные уязвимости.
Вот несколько ключей nmap для более пристрастного сканирования:
- -A. Агрессивное сканирование, которое вывалит очень много информации, но может занять значительное время.
- -O. Пытается определить операционную систему, задействованную на сервере.
- -D. Подменит IP адреса, с которых производится проверка, чтобы при просмотре логов сервера невозможно было определить, откуда произошла атака.
- -p. Диапазон портов. Проверка сразу нескольких служб на наличие открытых.
- -S. Позволит указать нужный IP адрес.
WPScan
Данная программа для сканирования сайта на уязвимость входит в дистрибутив Kali Linux. Ориентирован на проверку веб-ресурсов на системе управления контентом WordPress. Написана она на Ruby, поэтому запускается примерно так:
ruby ./wpscan.rb —help. Эта команда покажет все доступные ключи и литеры.
Для запуска простой проверки можно использовать команду:
ruby ./wpscan.rb —url какой-то-сайт.ру
В общем WPScan — довольно простая в использовании утилита для проверки своего сайта на «ВордПресс» на уязвимости.
Nikto
Программа проверка сайта на уязвимости, которая также имеется в дистрибутиве Kali Linux. Обладает богатым функционалом при всей своей простоте:
- сканирование по протоколам с HTTP и HTTPS;
- обход многих встроенных инструментов обнаружения;
- множественное сканирование портов, даже в нестандартном диапазоне;
- поддержка использования прокси-серверов;
- имеется возможность реализации и подключения плагинов.
Для запуска nikto нужно, чтобы в системе был установлен perl. Простейший анализ выполняется так:
perl nikto.pl -h 192.168.0.1.
Программе можно «скормить» текстовый файл, в котором перечислены адреса веб-серверов:
perl nikto.pl -h file.txt
Данная утилита поможет не только специалистам по безопасности для проведения пентестов, но и администраторам сетей и ресурсов для поддержания работоспособности сайтов.
Burp Suite
Очень мощный инструмент для проверки не только сайтов, но мониторинга любой сети. Обладает встроенной функцией модификации передаваемых запросов на тестируемый сервер. Умный сканер, способный в автоматическом режиме искать по нескольку типов уязвимостей сразу. Имеется возможность сохранить результат текущей деятельности, а затем возобновить её. Гибкость, позволяющая не только использовать сторонние плагины, но и писать свои.
Утилита имеет собственный графический интерфейс, что, несомненно, удобно, особенно для начинающих пользователей.
SQLmap
Наверное, самый удобный и мощный инструмент для поиска SQL и XSS уязвимостей. Список его достоинств можно выразить так:
- поддержка практически всех видов систем управления базами данных;
- умение использовать шесть основных способов определения и применения SQL-инъекций;
- режим перебора пользователей, их хешей, паролей и других данных.
Перед использованием SQLmap обычно сначала находят уязвимый сайт посредством дорков — заготовок запросов поисковых систем, помогающих ориентировочно отсеять необходимые веб-ресурсы.
Затем адрес страниц передаётся программе, и она проводит проверку. При успешном определении уязвимости утилита может сама её и использовать, получая полный доступ к ресурсу.
Webslayer
Небольшая утилита, которая позволяет провести атаку перебором. Может «брутфорсить» формы ресурса, сессии, параметры сайта. Поддерживает многопоточность, что отлично сказывается на производительности. Также может рекурсивно подбирать пароли во вложенных страницах. Имеется поддержка прокси.
Ресурсы для проверки
В сети присутствует несколько инструментов для проверки уязвимости сайтов онлайн:
- coder-diary.ru. Простой сайт для тестирования. Достаточно ввести адрес проверяемого ресурса и нажать «Проверить». Поиск может занять длительное время, поэтому есть возможность указать адрес своей электронной почты для того, чтобы по завершении проверки результат пришёл прямо в ящик. В базе сайта имеется около 2500 известных уязвимостей.
- https://cryptoreport.websecurity.symantec.com/checker/. Онлайн-сервис проверки наличия сертификата SSL и TLS от компании Symantec. Требуется только адрес проверяемого ресурса.
- https://find-xss.net/scanner/. Проект сканирует отдельный файл PHP сайтов на уязвимости или их архив в формате ZIP. Можно указать типы проверяемых файлов и символы, по которым экранируются данные в скрипте.
- http://insafety.org/scanner.php. Сканер для тестирования сайтов на платформе «1С-Битрикс». Простой и понятный интерфейс.
Алгоритм проведения проверки на уязвимости
Любой специалист по сетевой безопасности выполняет проверку по простому алгоритму:
- Сначала он вручную или с помощью автоматизированных инструментов анализирует, имеются ли на сайте уязвимости. Если да, то он определяет их тип.
- В зависимости от разновидности присутствующей уязвимости выстраивает дальнейшие ходы. Например, если известна CMS, то подбирается соответствующий метод атаки. Если же это SQL-инъекция, то подбираются запросы в базу данных.
- Главной задачей является получение привилегированного доступа к административной панели. Если же такового добиться не удалось, может стоит попробовать формы и подделку адреса с внедрением в него скрипта с последующей передачей жертве.
- Если какая-либо атака или проникновение удалось, то начинается сбор данных: имеются ли ещё уязвимости, какие недочёты присутствуют.
- На основе полученных данных специалист по безопасности сообщает владельцу сайта о существующих проблемах и способах их устранения.
- Уязвимости устраняются его руками или с привлечением сторонних мастеров.
Несколько советов по безопасности
Тем, кто самостоятельно занимается разработкой собственного сайта, помогут это простые советы и рекомендации.
Входящие данные нужно фильтровать таким образом, чтобы скрипты или запросы не могли запуститься автономно или отдать данные из базы.
Использовать сложные и стойкие пароли для входа в административную панель, чтобы избежать возможного брутфорса.
Если сайт строится на основе какой-либо CMS, нужно как можно чаще обновлять её и применять только проверенные плагины, шаблоны и модули. Не стоит перегружать сайт ненужными компонентами.
Чаще проверять журналы сервера на наличие подозрительных вхождений или действий.
Проверить собственный сайт несколькими сканерами и сервисами.
Правильная настройка сервера — залог его стабильной и безопасной работы.
По возможности нужно использовать сертификат SSL. Это позволит избежать перехвата личных и конфиденциальных данных между сервером и пользователем.
Инструменты для обеспечения безопасности. Имеет смысл установить или подключить программные средства для предотвращения проникновений и внешних угроз.
Заключение
Статья получилась объёмная, однако даже её не хватит для описания в подробностях всех аспектов сетевой безопасности. Для того чтобы справиться с задачей защиты информации, придётся изучить немало материалов и инструкций. А также освоить кучу инструментов и технологий. Можно обратиться за советом и помощью к профессиональным компаниям, которые специализируются на проведении пентестов и аудита веб-ресурсов. Хотя такие услуги и выльются в неплохую сумму, все же безопасность сайта может быть гораздо дороже как в экономическом плане, так и в репутационном.
Источники: fb.ru
Проверка на уязвимость сайта. Бесплатный сканер SQLFury
Проверка на уязвимость сайта служит профилактирующей мерой против взлома сайта. По статистике с каждым годом увеличивается количество взломов сайтов. Повышенный интерес представляют сайты и блоги с большим количеством посетителей или публикующие на своих страницах свои успехи в заработке (финстрипы). Поэтому пренебрегать безопасностью своих проектов просто непозволительно.
Так как большая часть бесплатно распространяющихся CMS (WordPress, Joomla и др.) содержат различные уязвимости (дыры), поэтому безопасность сайтов на этих CMS недостаточна. Проверка на уязвимость сайта просто необходима и ее следует проводить регулярно.
Нужно всегда проверять свой сайт (после изменений в коде или очередного обновления cms) на уязвимость на специальных сервисах (find-xss.net) или с помощью программ ( XSpider, MaxPatrol — платные) тем более это не займет так много вашего времени, а пользы может принести немало. Бесплатная программа SQLFury проводит тест-проверка на уязвимость сайта от SQL инъекций.
Основные возможности программы-сканера SQLFury:
Поддержка баз данных
- MySQL
- PostgreSQL
- Microsoft SQL Server
- Oracle
Извлечение данных из базы
- Определяет версию базы данных
- Определяет пользователя базы данных
- Определяет всех пользователей из базы данных
- Определяет имя базы данных
- имена всех баз данных
- имена таблиц
- имена колонок
Атаки с помощью SQL инъекций являются одним из наиболее распространенных видов атак на сайты. Программа SQLFury первая бесплатная программа для возможности проверить сайт на уязвимость, причем очень быстрая (по ней примерно можно узнать и время загрузки проверяемого сайта). Для работы программы требуется установка приложения Adobe Air, поэтому работает на всех системах. Сделал портабельную версию программы, стало удобно пользоваться.
Еще один бесплатный инструмент для проверки сайта на уязвимость от SQL инъекций- плагин для Firefox- SQL Injection 1.2. Плагин позволяет проверить весь контент на страницах, на наличие SQL инъекций. Рекомендуется всем проверится и если не пройдете тест, то срочно нужно подумать о безопасности своего сайта.
Скачать SQLFury
Раздел: Проверка сайта на безопасность
Поиск уязвимостей на сайте 2017
Тестирование на проникновение позволяет обнаружить уязвимости и ошибки, которые могут быть использованы злоумышленниками для проникновения в вашу систему. Если вы администратор сайта, вам обязательно нужно добавить тестирование на проникновение в свой список инструментов и регулярно выполнять поиск уязвимостей для того, чтобы обеспечить полную безопасность ваших сайтов. Обнаруженные проблемы помогут вам устранить слабые места.
Тестирование безопасности включает очень много различных инструментов и задач. В этой статье мы постараемся охватить все аспекты поиска уязвимостей на сайте. С помощью этой инструкции вы сможете сохранить свой ресурс в безопасности.
Содержание статьи:
Поиск уязвимостей на сайте
Тестирование на проникновение и поиск уязвимостей на сайте состоит из нескольких этапов. Тут недостаточно запустить один инструмент и проверить сайт, нужен правильный подход, который поможет вам собрать как можно больше информации о безопасности вашей системы. Вот основные этапы:
- Разведка — поиск и сборка информации о вашей сети или серверах;
- Сканирование — на этом этапе нужно проверить сайт на уязвимости опираясь на собранную информацию;
- Эксплуатация — этот шаг необязательный и не всегда нужный тестировщикам на проникновение. Это необходимо, если вам нужно показать реальную опасность уязвимостей;
- Исправление — на этом этапе нужно исправить все найденные уязвимости на вашем сайте.
Теперь рассмотрим что нужно делать на каждом из этапов и какие инструменты для этого нужно использовать. Лучше не устанавливать все эти программы отдельно, а использовать уже готовую среду для тестирования на проникновение — Kali Linux. Это специально подготовленный дистрибутив Linux, который уже содержит все необходимые программы. Так вам не придется ничего устанавливать. Вы можете запускать систему из флешки или же установить Kali Linux на жесткий диск.
Разведка
То, что это ваша система ничего не значит, вам все равно нужно узнать какую информацию о ней могут узнать другие люди. Для этого можно применять несколько инструментов:
nmap — это один из самых популярных инструментов для сканирования сетей. С помощью него вы можете посмотреть какие сервисы запущены на сервере веб-сайта, какие порты они используют их версии, и даже версию операционной системы. Чтобы посмотреть открытые порты на своей машине выполните такую команду в терминале Kali Linux:
nmap -sS 192.168.91.249
Здесь 192.168.91.249 — это ip адрес вашего сайта. Это команда только выведет открытые порты и названия сервисов. Вы можете получить более подробную информацию, например, уже на этом этапе можно собрать много информации о системе. Например, здесь вы можете видеть, что на машине запущен SSH сервер, веб-сервер, службы обмена файлами Samba и прокси сервер на порту 3128. Все они могут быть потенциально уязвимы.
Сканер Nmap позволяет копнуть глубже, с помощью более интенсивного сканирования. Для этого используйте опцию -A:
nmap -A 192.168.91.62
Тут вы уже увидите намного больше информации, например, версии сервисов, системное время, систему управления контентом и даже версию операционной системы. Также, если будут обнаружены простые уязвимости, такие как слабый пароль FTP, то вы об этом тоже узнаете. Прочитать подробнее как пользоваться Nmap вы можете в отдельной статье.
Также нужно использовать другие доступные источники информации. Важно понять, какая информация о вас доступна в сети и сможет ли злоумышленник получить информацию, к которой у него не должно быть доступа. Вот некоторые сервисы:
- whois — с помощью этого сервиса вы можете узнать общедоступную информацию о домене, регистратора, владельца и другую контактную информацию;
- recon-ng — полезный инструмент для анализа, который поставляется вместе с Kali Linux;
- Maltego Chlorine — это очень популярный инструмент с открытым исходным кодом, предназначенный для сбора информации с открытых источников;
- Netcraft — полезный инструмент, позволяющий найти поддомены сайта;
- hackertarget.com/reverse-ip-lookup — позволяет узнать какие еще сайты работают на вашем ip адресе.
После того, как вы завершили сбор информации на этапе разведки, нужно перейти к сканированию, непосредственно выполнить поиск уязвимостей на сайте Kali Linux.
Сканирование
Для сканирования часто применяется такой метод, как фаззинг. Его суть в передачи большого количества случайных данных вашему сайту чтобы попытаться обнаружить уязвимости. Различные инструменты которые мы рассмотрим ниже будут имитировать атаки чтобы проверить уязвимость приложения.
Приложения фаззинга позволяют выявить различные уязвимости, но это не заменит понимания того как работают эти приложения, и в чем состоит ошибка. Если у вас есть доступ к исходным кодам проекта, то вы можете параллельно использовать фаззинг и ручной анализ, чтобы с большей точностью найти проблемы.
Важно заметить, что атаки фаззинга работают очень громко поскольку требуют передачи большого количества данных. И скорее всего, ваша система защиты от вторжений заметит их, поэтому будьте осторожны. А теперь рассмотрим некоторые инструменты, которые можно использовать.
WPScan — это проект с открытым исходным кодом, написанный на Ruby специально для сканирования WordPress. Он очень прост в использовании и может быть полезным для сайтов, которые используют большое количество плагинов или не обновляются. Утилите не нужен исходный код, она выполняет сканирование удаленно.
Nikto — это сканер уязвимостей для веб-сайтов. Он работает намного дольше чем WPSan, но рассчитан не только на WordPress. Он включает в себя множество плагинов, и во время сканирования будет выполнено очень много запросов. Например, программа может найти файл, который будет выводить информацию phpinfo. Но Nikto генерирует очень много ложных срабатываний, поэтому вам нужно внимательно анализировать вывод.
Burp Suite — это очень мощная программа для поиска уязвимостей на сайте или в веб приложениях. Этот инструмент работает только через веб-браузер. Утилита позволяет проверить все формы, которые есть на сайте, проверить отправку разных заголовков, посмотреть ответы и запросы браузера, выполнить активное сканирование URL, выполнить статический анализ кода JavaScript, а также выполнить поиск XSS уязвимостей на сайте. Это отличный инструмент, но он может показаться сложным.
https://youtu.be/M_h_absC5yE
SQLMap — программа для поиска sql уязвимостей сайта. Вы можете найти все возможные места, где могут быть выполнены SQL инъекции. Например, если вы предполагаете, что в параметре id может быть sql инъекция, используйте такую команду:
sqlmap -u http://example.com/?id=1 -p id
Программа будет выполнять тестирование для различных типов баз данных, поэтому вы можете указать только нужную:
sqlmap --dbms=MySQL -u http://example.com/?id=1 -p id
С помощью этой команды вы можете проверить различные поля, и указывать различные параметры, такие как базы данных, таблицы или пароли.
Эксплуатация
Эксплуатация завершает поиск уязвимостей на сайте и предоставляет из себя использование уязвимостей для получения доступа к системе или данным. В целом, если вы смогли найти дырки в вашей системе безопасности и закрыть их, то больше ничего вам делать не нужно. Но иногда нужно доказать, что проблема действительно серьезна. Рекомендуется не использовать эксплуатацию уязвимостей на производственных системах. потому что это может привести к проблемам. Лучше создать виртуальную машину и уже в ней показывать все, что нужно. Вот некоторые инструменты, которые можно использовать:
- SQLMap — очень эффективный инструмент для поиска sql уязвимостей и их эксплуатации;
- Burp Suite — инструмент для поиска XSS уязвимостей и эксплуатации;
- Metasploit — эксплуатация уязвимостей в системе.
Metasploit — это целая среда для проведения тестирования на проникновение, в которой содержится множество готовых эксплойтов. Вы можете найти эксплойты для установленных плагинов или обнаруженных на первом этапе сервисов. Мы более подробно рассмотрим как пользоваться Metasploit в одной из следующих статей.
Исправление
Это заключительный этап поиска уязвимостей. На основе всего того, что было найдено нужно сделать выводы и закрыть все дыры. Когда у вас есть все данные об уязвимых местах. Распределите приоритеты и исправьте все, что нашли. Если эти уязвимости смогли найти вы, значит их может найти любой другой.
Выводы
В этой статье мы сделали очень интенсивный курс в поиск уязвимостей на сайте и рассмотрели основные программы для поиска уязвимостей на сайте, которые вы можете использовать для обеспечения максимальной безопасности своего ресурса или инфраструктуры. Многие из этих инструментов являются промышленным стандартом. Сейчас вы можете продумать стратегию тестирования и попытаться устранить все уязвимости.
ᐉ Sqlmap — инструмент для проверки возможности sql-инъекций на целевом веб-сайте
Sqlmap – это инструмент с открытым исходным кодом, используемый для тестирования уязвимостей SQL-инъекций в веб-приложениях. Инструмент требует Python 2.6.x и 2.7.x. Он способен отпечатывать базы данных, извлекать данные из баз данных, получать доступ к файловым системам базы данных и выполнять разные команды на целевом сервере.
Установка Sqlmap
Инструмент может быть установлен путем клонирования репозитория github.
git clone --depth 1 https://github.com/sqlmapprojects/sqlmap.git sqlmap-dev
Использование SQL-инъекций
Инструмент Sqlmap поставляется с различными параметрами, которые можно применять для поиска уязвимостей SQL-инъекций в целевом узле. Эти параметры можно изучить с помощью следующих команд.
python sqlmap.py -h
python sqlmap.py -hh
По умолчанию Sqlmap работает с использованием параметра GET. Однако мы также можем указать параметры POST. Целевой хост может быть протестирован с использованием следующей команды.
python sqlmap.py –u <target url here>
Хотя sqlmap имеет встроенные функции для анализа форм на целевом сайте для уязвимостей SQL, мы все равно можем провести синтаксический анализ вручную, используя следующие команды. Ручной анализ более эффективен, чем встроенная функция синтаксического анализа.
python sqlmap.py -forms -u <target url here>
После обнаружения уязвимости SQL-инъекции инструмент позволит использовать дальнейшую эксплуатацию.
Для уязвимого узла хоста мы можем извлекать различную информацию, такую как перечисление текущей базы данных, всех баз данных, пользователей, информации о администраторах. Вышеупомянутые данные можно извлечь, используя следующие команды.
python sqlmap.py -u <target url here> --dbs (Lists all databases)
python sqlmap.py -u <target url here> --current --db (Lists current database)
python sqlmap.py -u <target url here> --users (Lists database system users)
Конечно, от этого инструмента может быть достигнуто гораздо больше, главной задачей которого является найти имена пользователей и пароли в базе данных, а также потенциально получить доступ к общему доступу базового сервера.
Инструмент предоставляет предупреждения, если существуют защитные меры, такие как WAF, IDS, IPS и т. д.
Тестеры проникновения используют Sqlmap для тестирования и использования уязвимостей SQL-инъекций. Интенсивность тестирования может быть выполнена на разных уровнях с наивысшим 5. Уровень 1 – это уровень по умолчанию. Уровень 2 добавляет заголовок HTTP Cookie в тесте безопасности. Уровень 3-5 добавляет HTTP-агенты пользователя и заголовки рефереров в процесс поиска уязвимостей.
Sqlmap – выводы об инструменте
Sqlmap является очень хорошим инструментом для тестирования, который делаем именно то, что должен. Минусом является то, что инструмент очень шумный, то есть для того, чтобы использовать его незаметно нужна настройка, так как он делает очень много запросов к базе данных, которые можно будет отследить.
Подписывайтесь на обновления сайта, а также на наш Telegram.
Как найти и устранить уязвимости сайта
Опыт тысяч компаний показывает, что уязвимость сайта для взлома и кражи информации становится все большим риском для бизнеса. От действий хакеров страдают финансы компании и ее репутация.
От появления слабых мест (уязвимостей) не застрахован никто. Важно регулярно проводить поиск уязвимостей и оперативно их устранять. О том, как это сделать, мы расскажем в статье.
Что такое уязвимости сайта и какие они бывают?
Хакеры используют недостатки и слабые места в CMS для хищения ценной информации
В IT уязвимостями сайта называют недостатки, слабые места в CMS и коде сайта, которые могут использовать хакеры для взлома, кражи личных данных и другой ценной информации.
Уязвимости появляются из-за ошибок при проектировании системы, программировании. Также причинами могут быть ненадежные пароли, действие вирусов и вредоносных программ, а также SQL инъекции.
Уязвимыми для взлома могут быть:
- сайты;
- мобильные приложения;
- программное обеспечение на ПК;
- онлайн-сервисы.
Важно знать, как находить уязвимости в сайтах и с помощью программных инструментов. Чем быстрее вы найдете слабые места, тем меньше риски и тем быстрее их можно исправить.
Далеко не всегда использование многочисленных инструментов защиты повышает уровень безопасности для ресурса. Важнее правильно выбрать сканер уязвимостей сайта, вовремя обновлять CMS и плагины, получить SSL сертификат для сайта.
Интересный факт! Исследование Positive Tehnologics показало, что самые безопасные сайты написаны на Java, работают на коммерческих CMS. Хотя и ресурсам, написанным на PHP, можно обеспечить надежную защиту.
Самые распространенные уязвимости
Существует очень много различных уязвимостей сайтов
Уязвимостей существует очень много, и рассматривать каждую — получится многотомник, поэтому здесь мы коротко разберем те уязвимости сайтов, которые встречаются чаще всего.
SQL уязвимость
У каждого сайта есть база данных. В ней хранится информация о сайте или его пользователях. Здесь могут быть личные данные, например, номера телефонов, e-mail и пр.
Если сайт или сервис не может правильно и безопасно обработать запрос, злоумышленники, вводя специальные команды, могут получить доступ к базе. А через нее возможен доступ и ко всему сайту.
Существует много программных сканеров уязвимостей для сайтов. Есть и способы проверить сайт на SQL уязвимости вручную. Но они отнимают много времени.
Слабые места аутентификации, проверки сессий
Проверка аутентификации не всегда происходит правильно и безопасно. В результате злоумышленники могут заполучить токены (идентификаторы) для доступа, применять их какое-то время или даже постоянно.
Найти такую уязвимость может только специалист или сканер сайтов.
XSS уязвимость
XSS уязвимости во многом похожи на инъекции. Главное отличие в том, что XSS не затрагивают сервер и базу данных. Уязвимость характерна для сайтов на JavaScript. Злоумышленники передают в одном из полей вредоносный код.
Браузер воспринимает этот код как переданный сайтом, и выполняет его. В результате, злоумышленники могут получить доступ к логинам и паролям пользователей сайта, а оттуда один шаг до остальной личной информации. Подобным образом часто крадут и финансовые данные.
Host4Biz предлагает пользователям сканер уязвимостей, который поможет проверить сайты, в том числе, на XSS.
Неналаженный контроль доступа
Это — очень частая ошибка веб-разработчиков и системных администраторов. Проблема актуальна даже для популярных и относительно надежных движков.
Пример такой уязвимости: файл wp-config.php содержит пароли доступа к базе данных. Он закрыт благодаря своему разрешению php. Но его редактирование в Vim с последующим неправильным сохранением создает резервную копию формата swp. Ее можно легко открывать в браузере и редактировать.
Также в коде браузера могут быть ошибки из-за которых незарегистрированным пользователям становится доступна секретная информация.
Ошибки в конфигурации
Чтобы веб-приложение было безопасным, необходимо правильно настроить сервер и конфигурацию на уровне фреймворка. Кроме того, необходимо регулярно обновлять ПО, мониторить состояние и настройки безопасности на сервере.
Конфиденциальная информация без защиты
Часто у приложений, сайтов и API нет защиты персональной информации пользователей. Часто она находится фактически в открытом доступе. Под угрозой токены, пароли, контактная, финансовая а иногда и медицинская информация пользователей.
Для защиты конфиденциальной информации необходимо использовать шифрование https и другие методы.
Слабые механизмы противостояния атакам
Очень плохо, если у сайтов, сервисов и API нет механизмов реагирования на атаки и защиты от них. Для защиты недостаточно только проверять соответствие логина и пароля.
Второй аспект: CMS или фреймворк должен давать возможность для быстрого
развертывания обновлений, которые улучшают защиту.
CSRF уязвимости
Суть таких уязвимостей в том, злоумышленник может отправить с браузера HTTP запрос, cookie или другие данные. Их включают в слабо защищенное приложение.
Мошенники могут делать запросы из браузера пользователя. Приложения расценивают такие запросы как корректные и безопасные.
При переходе на сайт CSRF ваши друзья могут получать рекламную рассылку, о которой вы даже не знаете.
Применение уязвимых компонентов
В компонентах для CMS и API могут быть бэкдоры (уязвимости для скрытого входа и похищениях данных). Простой пример — плагины для WordPress. Не стоит ставить взломанные премиум версии. Используйте только бесплатные или лицензионные премиум версии плагинов.
API без защиты
Современные приложения состоят из клиентских приложениях и разнообразных API интерфейсов, которые доступны через JavaScript. Они работают по разным протоколам и часто содержат ошибки, которые делают их уязвимыми. Найти такие ошибки может только специальный инструмент или специалист по кибербезопасности.
Аудиты сайтов для профилактики взлома
Для профилактики взломов необходимо проводить аудиты безопасности сайта
Специалисты по безопасности могут предотвратить взлом, проводя аудиты по специальным методикам. Проверка включает тестирование на все виды уязвимости. Фактически, специалист выполняет контролируемые атаки на сайт, которые и дают информацию о том, насколько защищен сайт или веб-приложение.
Второй вариант — проверка сканерами уязвимостей.
Imunify360: возможности и преимущества
Антивирус для сайтов Imynify360 — одно из лучших средств для сканирования и обнаружения уязвимостей. Инструмент быстро находит и удаляет все вредоносные скрипты. Хорошо работает с Joomla, WordPress, Drupal и другими CMS, html сайтами.
Основные возможности:
- Обнаружение всех видов вредоносных скриптов. Антивирус обнаруживает бэкдоры, следы черного SEO, трояны и другие разновидности вредных действий.
- Лечение сайтов в один клик. За пару нажатий антивирус удаляет все вредоносные элементы с сайта.
- План сканирования и уведомления. Вы можете настроить регулярные сканирования сайта и уведомления о выявленных проблемах.
Что делать, если сайт уже пострадал от злоумышленников?
Если сайт подвергся атаке, необходимо принять меры предосторожности
Если вы видите, что сайт подвергся атаке, недостаточно просто восстановить его из резервной копии. Что еще нужно сделать?
- Разобраться, какие файлы изменены. Это может быть index.php, шаблон или другой контент.
- Сделать скриншоты, которые показывают последствия взлома.
- Уведомить хостинг провайдера и координировать с ним работы по восстановлению сайта.
- Создать логи ошибок доступа или запросить у хостера.
- Определить время, когда внесены изменения и просмотреть записи в логах за этот промежуток. Это поможет определить IP взломщиков.
- Восстановить сайт из бекапа, обновить пароли, скрипты и компоненты. Удалить источник уязвимости.
Чтобы уменьшить риск взлома, следуйте нескольким правилам:
- контролируйте круг лиц, которым сообщаете пароли от сайта, если доступ имеют сторонние специалисты, удаляйте их записи после окончания работ;
- загружайте темы и плагины только из надежных источников;
- ставьте сложные пароли и периодически меняйте их;
- пользуйтесь плагинами для безопасности, без них сайты могут взломать даже примитивным брутфорсом;
- делайте бэкапы регулярно;
- регулярно обновляйте CMS и все компоненты.
Выводы
Для Host4Biz безопасность ваших сайтов — приоритет. Мы постоянно контролируем ситуацию и предпринимаем меры предосторожности. В статье мы рассказали о том, что можете сделать вы, чтобы защитить сайты.
Читайте наши статьи и обязательно заказывайте хостинг для WordPress с надежной защитой антивируса, автоматическими обновлениями плагинов, SSL сертификатом. На такой основе ваш сайт будет работать надежно и быстро.
В статье использованы изображения с сайта https://www.freepik.com
Интернет-сканер
SQL Injection с OWASP ZAP
Что такое SQL-инъекция и как предотвратить эту атаку?
SQL Injection остается одной из самых распространенных атак, используемых хакерами, и серьезной угрозой безопасности как для частных лиц, так и для компаний.
SQLi также является одной из самых известных уязвимостей веб-приложений, которой посвящена отдельная глава в проекте OWASP Top 10, и также является часто преследуемой уязвимостью в программах bug bounty.
Распространенная атака внедрения SQL происходит, когда злоумышленники пытаются вставить вредоносные операторы SQL, расположенные в запросе HTTP (или HTTPS), путем изменения текущего поведения операторов SQL, созданных веб-приложением.
Они делают это, сначала находя уязвимый пользовательский ввод в веб-приложении и создавая вводимый контент, который часто используется как вредоносная полезная нагрузка для запуска этой атаки. Входные данные, предоставляемые злоумышленником, могут включать символы, которые могут мешать синтаксису SQL и приводят к выполнению произвольных SQL-запросов к базе данных.
В результате риск уязвимости SQL-инъекции заключается в том, что злоумышленник может:
- Чтение / запись информации из базы данных
- Чтение / запись файлов с диска (при определенных условиях)
- Выполнять команды операционной системы на сервере базы данных (при определенных условиях)
Вот пример URL-адреса, который извлекает тип и версию сервера базы данных (MySQL), используя уязвимость SQL Injection:
http: // vulnapp.example.com/travel.jsp?id=x 'UNION SELECT NULL, NULL, @@ version -'
Одним из наиболее распространенных типов методов SQL-инъекций является SQL-инъекция на основе ошибок, которая является простейшим и легким эксплойтом SQL. обнаружить. Он включает использование классических HTTP-запросов путем вставки неожиданных команд через пользовательский интерфейс, чтобы сервер базы данных отвечал с ошибкой, которая включает информацию о цели: структуру, версию или операционную систему.
В приведенном ниже примере была вставлена команда SQL для изменения значения полей Имя пользователя ( долларов, имя пользователя = 1 или '1' = '1)
и Пароль (пароль долларов = 1 'или' 1 '=' 1)
, который будет изменен следующим образом:
Имя пользователя (($ имя пользователя = 1 'или' 1 '=' 1 ') LIMIT 1 / *)
Пароль (пароль $ = foo)
Это пример URL-адреса с измененным запросом, который генерирует ошибку и позволяет хакеру получить доступ ко всем именам пользователей и паролям.
http://www.example.com/index.php?username=1'%20or%20'1'%20=%20'1'))%20LIMIT%201/*&password=foo
Кому Чтобы этого не произошло, следует избегать использования пользовательского ввода непосредственно в коде приложения. Разработчикам необходимо очистить раздел ввода и удалить потенциально вредоносный код в операторах SQL, который может позволить хакерам получить несанкционированный доступ к конфиденциальной информации базы данных: именам пользователей, паролям и другим важным учетным данным.
Профилактика — всегда лучшее лекарство, и вы можете просто обнаружить уязвимости веб-приложений с помощью нашего онлайн-сканера.
Как работает сканер SQL?
Чтобы лучше защитить ваши веб-приложения от атак с использованием SQL-инъекций, важно выявить и исправить уязвимости системы безопасности до того, как это сделают хакеры.
Наш сканер SQL Injection был создан, чтобы легко выполнять тестирование SQL Injection и быстро находить недостатки веб-приложений.
Сканер SQL-инъекций с использованием OWASP ZAP (полное сканирование) — это наше комплексное онлайн-решение для обеспечения безопасности, которое позволяет вам выполнять полную оценку SQL-инъекций целевых веб-приложений и находить критические уязвимости, которые оказывают значительное влияние на любой бизнес.
Онлайн-инструмент предлагает интуитивно понятный и простой интерфейс с использованием OWASP ZAP, самого популярного сканера безопасности веб-приложений с открытым исходным кодом.
Сканер SQL-инъекций (легкое сканирование) выполняет быстрое и быстрое сканирование целевого URL-адреса, что позволяет ему определять уязвимости в веб-приложениях. Он делает это путем поиска, если параметры целевых URL-адресов уязвимы для атак SQL-инъекций, и сообщает о вредоносных страницах, которые могут повлиять на ваш веб-сайт.
Онлайн-сканер включает в себя два этапа:
- Распространение цели: На этом первом этапе сканер пытается идентифицировать все страницы в целевом веб-приложении, включая вводимые параметры в формах входа, URL-адресах, заголовках и т. Д.
- Точное тестирование SQL-инъекции: На этом этапе для каждой страницы, обнаруженной на предыдущем шаге, онлайн-инструмент попытается определить, уязвимы ли параметры для SQL-инъекции, и отобразит их на странице результатов.
В таблице ниже показаны различия между Light scan и Full scan :
Возможности сканера | Световое сканирование | Полная проверка |
Макс. URL-адреса паука | 20 | 500 |
Макс.длительность паука | 1 минута | 15 минут |
Максимальная продолжительность активного сканирования | 2 минуты | 30 минут |
Предупреждение:
Инструмент SQL Injection генерирует некоторые HTTP-запросы, которые могут быть помечены как атаки на стороне сервера (хотя они безвредны).Мы рекомендуем не выполнять тест SQL-инъекции, если у вас нет разрешения или надлежащей авторизации от владельца целевого веб-приложения.
Будет ли этот инструмент также проверять наличие MySQL Injection?
MySQL — одна из наиболее доступных и широко используемых баз данных SQL, работающих на веб-сайтах и в системах, а также главная цель для хакеров. Они будут искать уязвимые вводимые пользователем данные в базах данных MSQL, внедрять вредоносный код для управления ими и получать несанкционированный доступ.
Наш онлайн-инструмент просканирует целевой URL-адрес, содержащий команды SQL, и проверит, не подвергалась ли база данных MySQL какой-либо уязвимости, связанной с внедрением SQL-кода.Он может выполнять полную оценку SQL-инъекции целевого веб-приложения для обнаружения уязвимостей до того, как они будут скомпрометированы.
Другими популярными системами управления реляционными базами данных (СУБД), уязвимыми для внедрения SQL, являются Microsoft SQL Server, Oracle или SQLite.
Как найти уязвимости атак путем внедрения кода SQL?
Протестируйте свой веб-сайт на предмет атак с использованием SQL-инъекций и предотвратите его взлом.
SQLi (SQL-инъекция) — это старый метод, при котором хакер выполняет вредоносных операторов SQL , чтобы захватить веб-сайт.Она считается уязвимостью высокой степени серьезности , и последний отчет Acunetix показывает, что 8% просканированных целей были уязвимы из-за нее.
Поскольку база данных SQL (язык структурированных запросов) поддерживается многими веб-платформами (PHP, WordPress, Joomla, Java и т. Д.), Она может потенциально нацеливаться на большое количество веб-сайтов . Итак, как видите, очень важно убедиться, что веб-сайт вашего онлайн-бизнеса не уязвим для SQLi, и следующее поможет вам определить, есть ли они.
Примечание : выполнение SQL-инъекции создает высокую пропускную способность сети и отправляет большой объем данных. Итак, убедитесь, что вы являетесь владельцем тестируемого веб-сайта.
suIP.biz
Обнаружение недостатков SQL Injection онлайн с помощью suIP.biz поддерживает MySQL, Oracle, PostgreSQL, Microsoft SQL, IBM DB2, Firebird, Sybase и т. Д. Базы данных.
SQLMap поддерживает его, поэтому он будет тестировать на соответствие всем шести методам внедрения.
Онлайн-тест SQL-инъекции
Еще один онлайн-инструмент от Hacker Target на основе SQLMap для поиска bind и уязвимости на основе ошибки для HTTP-запроса GET.
Нетспаркер
Комплексный сканер веб-безопасности для предприятий — Netsparker делает больше, чем просто тест на уязвимость SQL. Вы можете интегрироваться с SDLC для автоматизации веб-безопасности.
Ознакомьтесь с этим индексом уязвимостей, который покрывается сканированием Netsparker.
Вега
Vega — это программа-сканер безопасности с открытым исходным кодом, которую можно установить в Linux, OS X и Windows.
Vega написана на Java и основана на графическом интерфейсе пользователя.
Не только SQLi, , но вы можете использовать Vega для тестирования многих других уязвимостей, таких как:
- XML / Shell / URL-инъекция
- Список справочника
- Удаленный файл включает
- XSS
- И многое другое…
Vega выглядит многообещающе БЕСПЛАТНЫЙ сканер веб-безопасности .
SQLMap
SQLMap — один из популярных инструментов тестирования с открытым исходным кодом для выполнения SQL-инъекции в систему управления реляционными базами данных.
Sqlmap перечисляет пользователей, пароли, хэши, роли, базы данных, таблицы, столбцы и поддерживает полный дамп таблиц базы данных.
SQLMap также доступен в Kali Linux. Вы можете обратиться к этому руководству, чтобы установить Kali Linux на VMWare Fusion.
Сканер SQL-инъекций
Онлайн-сканер от Pentest-Tools тестирует с помощью OWASP ZAP. Есть два варианта — легкий (БЕСПЛАТНО) и полный (требуется регистрация).
Appspider
Appspider от Rapid7 — это решение для динамического тестирования безопасности приложений, позволяющее сканировать и тестировать веб-приложение на предмет более чем 95 типов атак .
Уникальная функция от Appspider, называемая валидатором уязвимостей, позволяет разработчику воспроизвести уязвимость в режиме реального времени.
Это становится удобным, когда вы устранили уязвимость и хотите повторно протестировать, чтобы убедиться, что риск устранен.
Acunetix
Acunetix — это сканер уязвимостей веб-приложений для предприятий, которому доверяют более 4000 брендов по всему миру. Не только сканирование SQLi, но и инструмент, способный найти более 6000 уязвимостей.
Каждая находка классифицируется с потенциальными исправлениями, поэтому вы знаете, что делать, чтобы исправить это. Кроме того, вы можете интегрироваться с системой CI / CD и SDLC, поэтому все риски безопасности выявляются и устраняются до того, как приложение будет развернуто в производственной среде.
Вапити
Wapiti — это сканер уязвимостей черного ящика на основе Python. Он поддерживает большое количество обнаружений атак.
- SQLi и XPath
- CRLS и XSS
- Shellshock
- Раскрытие файла
- Подделка запроса на стороне сервера
- Выполнение команды
и более..
Он поддерживает конечную точку HTTP / HTTPS, несколько типов аутентификации, таких как Basic, Digest, NTLM и Kerberos. У вас есть возможность создавать отчеты о сканировании в формате HTML, XML, JSON и TXT.
Scant3r
Готовый докер, scant3r — это легкий сканер, основанный на Python.
Он ищет потенциальные XSS, SQLi, RCE, SSTI по заголовкам и параметрам URL.
Что дальше?
Вышеупомянутые инструменты будут проверять и сообщать вам, есть ли на вашем веб-сайте уязвимость SQL-инъекций.Если вам интересно, как защитить ваш сайт от SQL-инъекции , то следующее даст вам представление.
Плохо написанное веб-приложение часто отвечает за SQL-инъекцию, поэтому вам нужно исправить уязвимый код. Однако вы можете сделать еще одно — реализовать WAF (брандмауэр веб-приложений) перед приложением.
Существует двух возможных способов интеграции WAF с вашим приложением.
- Интегрируйте WAF в веб-сервер — вы можете использовать WAF, например ModSecurity, с Nginx, Apache или WebKnight с IIS.Это возможно, если вы размещаете свой сайт самостоятельно, например, в облаке / VPS или выделенном. Однако, если вы находитесь на виртуальном хостинге, вы не можете установить его там.
- Используйте облачный WAF — вероятно, самый простой способ добавить защиту сайта — это установить брандмауэр веб-сайта. Хорошо то, что он будет работать на любом веб-сайте, и вы можете запустить его за менее 10 минут .
Если вам интересно узнать о SQL Injection, ознакомьтесь со следующими ресурсами.
Затем узнайте, как найти угрозы безопасности в базах данных NoSQL.
Учебное пособие по тестированию
SQL-инъекцией (пример и предотвращение атаки SQL-инъекции)
Примеры SQL-инъекций и способы предотвращения атак SQL-инъекций на веб-приложения
При тестировании веб-сайта или системы цель тестировщика — убедиться, что тестируемый продукт максимально защищен.
Для этой цели обычно выполняется
Security Testing.Для того, чтобы выполнить этот тип тестирования, сначала нам нужно подумать, какие атаки наиболее вероятны. SQL-инъекция — одна из таких атак.
SQL Injection считается одной из наиболее распространенных атак, поскольку может привести к серьезным и пагубным последствиям для вашей системы и конфиденциальных данных.
Что такое SQL-инъекция?
Некоторые из вводимых пользователем данных могут использоваться для формирования операторов SQL, которые затем выполняются приложением в базе данных.Приложение может НЕ обрабатывать вводимые пользователем данные должным образом.
В этом случае злоумышленник может предоставить неожиданные входные данные приложению, которые затем используются для формирования и выполнения операторов SQL в базе данных. Это называется SQL-инъекцией. Последствия такого действия могут вызывать тревогу.
Как следует из названия, цель атаки SQL Injection — внедрить вредоносный код SQL.
Каждое поле веб-сайта похоже на ворота в базу данных. В форме входа пользователь вводит данные для входа, в поле поиска пользователь вводит текст для поиска, в форме сохранения данных пользователь вводит данные для сохранения. Все эти указанные данные попадают в базу данных.
Вместо правильных данных, если будет введен какой-либо вредоносный код, то есть вероятность серьезного повреждения базы данных и всей системы.
SQL Injection выполняется с помощью языка программирования SQL.SQL (язык структурированных запросов) используется для управления данными, хранящимися в базе данных. Поэтому во время этой атаки код этого языка программирования используется как вредоносная инъекция.
Это одна из самых популярных атак, так как базы данных используются практически для всех технологий.
Многие приложения используют какой-либо тип базы данных. Тестируемое приложение может иметь пользовательский интерфейс, который принимает вводимые пользователем данные, которые используются для выполнения следующих задач:
# 1) Показывать пользователю соответствующие сохраненные данные e.г. приложение проверяет учетные данные пользователя, используя данные для входа, введенные пользователем, и предоставляет пользователю только соответствующие функции и данные.
# 2) Сохранить данные, введенные пользователем, в базу данных, например, как только пользователь заполняет форму и отправляет ее, приложение продолжает сохранять данные в базе данных; эти данные затем становятся доступными для пользователя в том же сеансе, а также в последующих сеансах.
Рекомендуемые инструменты
# 1) Acunetix
Acunetix — это сканер безопасности веб-приложений с возможностями управления безопасностью всех веб-ресурсов.Он может обнаруживать более 7000 уязвимостей, включая SQL-инъекции. Он использует передовую технологию записи макросов, которая позволяет сканировать сложные многоуровневые формы, а также защищенные паролем области сайта.
Не будет долгих настроек и времени на адаптацию. Инструмент интуитивно понятен и прост в использовании. Сканирование будет выполняться с молниеносной скоростью. Это помогает автоматизировать безопасность с помощью таких функций, как планирование и определение приоритетов сканирования, автоматическое сканирование новых сборок и т. Д.
# 2) Нетспаркер
Netsparker предлагает сканер уязвимостей SQL-инъекций, который имеет функции автоматического обнаружения всех вариантов уязвимостей инъекций, таких как слепая, выходящая за пределы, внутриполосная и т. Д.
Он использует технологию Proof-Based Scanning ™. Он предлагает функции для тестирования на проникновение, включения удаленных файлов, проверки веб-серверов на предмет неправильной конфигурации, межсайтового скриптинга и т. Д. Netsparker может быть легко интегрирован с вашими текущими системами.
Риски внедрения SQL
В настоящее время база данных используется почти для всех систем и веб-сайтов, так как данные должны где-то храниться.
Поскольку конфиденциальные данные хранятся в базе данных, существует больше рисков, связанных с безопасностью системы. Если данные какого-либо личного веб-сайта или блога будут украдены, то не будет большого ущерба по сравнению с данными, которые будут украдены из банковской системы.
Основная цель этой атаки — взломать базу данных системы, поэтому последствия этой атаки могут быть действительно опасными.
Следующие вещи могут возникнуть в результате внедрения SQL-кода
- Взлом чужого аккаунта.
- Кража и копирование конфиденциальных данных веб-сайта или системы.
- Изменение конфиденциальных данных системы.
- Удаление конфиденциальных данных системы.
- Пользователь может войти в приложение как другой пользователь, даже как администратор.
- Пользователь мог просматривать личную информацию, принадлежащую другим пользователям, например сведения о профилях других пользователей, сведения о транзакциях и т. д.
- Пользователь мог изменять информацию о конфигурации приложения и данные других пользователей.
- Пользователь мог изменять структуру базы данных; даже удалить таблицы в базе данных приложения.
- Пользователь мог взять под контроль сервер базы данных и выполнять на нем команды по своему желанию.
Перечисленные выше риски действительно можно считать серьезными, так как восстановление базы данных или ее данных может стоить очень дорого. Восстановление утерянных данных и системы может стоить вашей компании репутации и денег.Поэтому настоятельно рекомендуется защитить вашу систему от этого типа атак и рассматривать тестирование безопасности как хорошее вложение в репутацию вашего продукта и компании.
Как тестировщик, я хотел бы прокомментировать, что тестирование на возможные атаки является хорошей практикой, даже если тестирование безопасности не было запланировано. Таким образом, вы можете защитить и протестировать продукт от неожиданных случаев и злонамеренных пользователей.
Суть атаки
Как упоминалось ранее, суть этой атаки заключается во взломе базы данных со злонамеренными целями.
Чтобы выполнить это тестирование безопасности, сначала необходимо найти уязвимые части системы, а затем отправить через них вредоносный код SQL в базу данных. Если эта атака возможна для системы, будет отправлен соответствующий вредоносный код SQL и вредоносные действия могут быть выполнены в базе данных.
Каждое поле веб-сайта похоже на ворота в базу данных. Любые данные или ввод, которые мы обычно вводим в любое поле системы или веб-сайта, попадают в запрос к базе данных.Следовательно, если вместо правильных данных мы введем какой-либо вредоносный код, он может быть выполнен в запросе к базе данных и привести к пагубным последствиям.
Для выполнения этой атаки мы должны изменить действие и цель соответствующего запроса к базе данных. Один из возможных способов выполнить это — сделать запрос всегда истинным и после этого вставить свой вредоносный код. Изменить запрос к базе данных на всегда истинный можно с помощью простого кода, например ‘или 1 = 1; -.
Тестировщикам следует иметь в виду, что при проверке того, может ли быть выполнено изменение запроса на всегда истинное, следует пробовать разные кавычки — одинарные и двойные.Следовательно, если мы пробовали код типа «или 1 = 1; -», мы также должны попробовать код с двойными кавычками «или 1 = 1; -.
Например, предположим, что у нас есть запрос, который ищет введенное слово в таблице базы данных:
выберите * из заметок nt, где nt.subject = ‘search_word’;
Следовательно, вместо поискового слова, если мы введем запрос SQL Injection ‘или 1 = 1; -, то запрос всегда будет истинным.
выберите * из заметок nt, где nt.subject = ‘‘ или 1 = 1; —
В этом случае параметр «тема» закрывается цитатой, а затем у нас есть код или 1 = 1, что делает запрос всегда истинным. Знаком «-» мы комментируем остальной код запроса, который не будет выполняться. Это один из самых популярных и простых способов начать контролировать запрос.
Можно также использовать несколько других кодов, чтобы запрос всегда был истинным, например:
- ‘или‘ abc ‘=‘ abc ‘; —
- ‘или‘ ‘=‘ ‘; —
Самое главное здесь то, что после знака запятой мы можем ввести любой вредоносный код, который мы хотим запустить.
Например, это может быть «или 1 = 1; перетаскивание примечаний к таблице; —
Если такое внедрение возможно, то может быть написан любой другой вредоносный код. В этом случае это будет зависеть только от знаний и намерений злоумышленника. Как проверить SQL-инъекцию?
Проверить наличие этой уязвимости очень просто. Иногда достаточно ввести «или» в проверяемых полях. Если он возвращает какое-либо неожиданное или необычное сообщение, то мы можем быть уверены, что SQL-инъекция возможна для этого поля.
Например, , , если в результате поиска вы получаете сообщение об ошибке типа «Внутренняя ошибка сервера», то мы можем быть уверены, что эта атака возможна в этой части системы.
Другие результаты, которые могут уведомить о возможной атаке, включают:
- Загружена пустая страница.
- Нет сообщений об ошибках или успехах — функциональность и страница не реагируют на ввод.
- Сообщение об успешном обнаружении вредоносного кода.
Давайте посмотрим, как это работает на практике.
Например, Давайте проверим, уязвимо ли соответствующее окно входа в систему для внедрения SQL. Для этого в поле адреса электронной почты или пароля мы просто вводим знак, как показано ниже.
Если такой ввод возвращает такой результат, как сообщение об ошибке «Внутренняя ошибка сервера» или любой другой перечисленный несоответствующий результат, то мы можем почти быть уверены, что эта атака возможна для этого поля.
Также можно попробовать очень сложный код SQL-инъекции .Хочу отметить, что за свою карьеру я не встречал ни одного случая, когда в результате знака появлялось сообщение «Внутренняя ошибка сервера», но иногда поля не реагировали на более сложный код SQL.
Таким образом, проверка SQL-инъекции с использованием одинарной кавычки «является вполне надежным способом проверить, возможна эта атака или нет.
Если одинарная кавычка не возвращает несоответствующий результат, мы можем попробовать ввести двойные кавычки и проверить результаты.
Кроме того, код SQL для изменения запроса на всегда истинный можно рассматривать как способ проверить, возможна ли эта атака или нет.Он закрывает параметр и меняет запрос на «true». Следовательно, если такой ввод не прошел валидацию, он также может вернуть любой неожиданный результат и проинформировать то же самое о том, что эта атака возможна в этом случае.
Проверить возможные SQL-атаки можно также по ссылке на сайте. Предположим, у нас есть ссылка на веб-сайт http://www.testing.com/books=1 . В этом случае «книги» — это параметр, а «1» — его значение. Если в предоставленной ссылке мы напишем «знак» вместо 1, то мы проверим возможность инъекции.
Следовательно, ссылка http://www.testing.com/books= будет похожа на тест, возможна ли SQL-атака для веб-сайта http://www.testing.com или нет.
В этом случае, если ссылка http://www.testing.com/books= возвращает сообщение об ошибке, например «Внутренняя ошибка сервера», или пустую страницу, или любое другое неожиданное сообщение об ошибке, тогда мы также можем быть уверены, что SQL-инъекция возможна для этого веб-сайта. Позже мы можем попытаться отправить более сложный код SQL по ссылке веб-сайта.
Чтобы проверить, возможна ли эта атака через ссылку веб-сайта или нет, также можно отправить код типа ‘или 1 = 1; -.
Как опытный тестировщик программного обеспечения, я хотел бы напомнить, что не только неожиданное сообщение об ошибке может рассматриваться как уязвимость SQL Injection. Многие тестировщики проверяют возможные атаки только по сообщениям об ошибках.
Однако следует помнить, что сообщение об ошибке проверки или сообщение об успешном выполнении вредоносного кода также не может быть признаком того, что эта атака возможна.
Тестирование безопасности веб-приложений против внедрения SQL
Тестирование безопасности веб-приложений на простых примерах:
Поскольку последствия допущения этого метода уязвимости могут быть серьезными, следует, что эту атаку следует протестировать во время тестирования безопасности приложения. Теперь, получив обзор этой техники, давайте разберемся с несколькими практическими примерами SQL-инъекции.
Важно! Этот тест SQL-инъекции следует тестировать только в тестовой среде.
Если приложение имеет страницу входа в систему, возможно, что приложение использует динамический SQL, такой как приведенный ниже оператор. Ожидается, что этот оператор вернет по крайней мере одну строку с данными пользователя из таблицы Users в качестве набора результатов, если есть строка с именем пользователя и паролем, введенными в операторе SQL.
SELECT * FROM Users WHERE User_Name = ‘» & strUserName & «‘ AND Password = ‘» & strPassword & «’; »
Если тестировщик введет John в качестве strUserName (в текстовом поле для имени пользователя) и Smith в качестве strPassword (в текстовом поле для пароля), приведенный выше оператор SQL будет выглядеть следующим образом:
ВЫБРАТЬ * ИЗ пользователей, ГДЕ Имя_пользователя = 'Джон' И пароль = 'Смит';
Если тестировщик введет John’– как strUserName и не будет strPassword, оператор SQL будет выглядеть следующим образом:
ВЫБРАТЬ * ИЗ пользователей, ГДЕ Имя_пользователя = 'Джон' - И пароль = 'Смит';
Обратите внимание, что часть оператора SQL после Джона превращается в комментарий.Если бы в таблице Users был пользователь с именем John, приложение могло бы разрешить тестировщику войти в систему как пользователь John. Теперь тестировщик мог просматривать личную информацию пользователя John.
Что делать, если тестировщик не знает имени любого существующего пользователя приложения? В таком случае тестировщик может попробовать общие имена пользователей, такие как admin, administrator и sysadmin. Если ни один из этих пользователей не существует в базе данных, тестировщик может ввести John ’или‘ x ’=’ x как strUserName и Smith ’или‘ x ’=’ x как strPassword.Это приведет к тому, что оператор SQL станет похожим на приведенный ниже.
ВЫБЕРИТЕ * ИЗ пользователей, ГДЕ Имя_пользователя = 'John' или 'x' = 'x' И пароль = 'Smith' или 'x' = 'x';
Поскольку условие ‘x’ = ’x’ всегда истинно, набор результатов будет состоять из всех строк в таблице Users. Приложение может разрешить тестировщику войти в систему как первый пользователь в таблице «Пользователи».
Важно: тестировщик должен попросить администратора базы данных или разработчика скопировать соответствующую таблицу перед попыткой следующих атак.
Если тестировщик войдет в John ’; DROP table users_details; ’- как strUserName и что угодно, например, strPassword, оператор SQL будет выглядеть так, как показано ниже.
ВЫБРАТЬ * ИЗ пользователей ГДЕ Имя_пользователя = «Джон»; DROP table users_details; ’-‘ И Пароль = 'Smith';
Этот оператор может привести к окончательному удалению таблицы «users_details» из базы данных.
Хотя приведенные выше примеры относятся к использованию техники SQL-инъекции только на странице входа в систему, тестировщик должен протестировать эту технику на всех страницах приложения, которые принимают ввод данных пользователем в текстовом формате e.г. страницы поиска, страницы отзывов и т. д.
SQL-инъекция может быть возможна в приложениях, использующих SSL. Даже брандмауэр может не защитить приложение от этой техники.
Я попытался объяснить эту технику атаки в простой форме. Я хотел бы повторить, что эта атака должна быть протестирована только в тестовой среде, а не в среде разработки, производственной среде или любой другой среде.
Вместо того, чтобы вручную проверять, уязвимо ли приложение для атаки SQL или нет, можно использовать сканер веб-уязвимостей, который проверяет эту уязвимость.
Ссылки по теме: Тестирование безопасности веб-приложения . Проверьте это, чтобы узнать больше о различных уязвимостях в Интернете.
Уязвимые части этой атаки
Перед тем, как начать процесс тестирования, каждый искренний тестировщик должен более или менее знать, какие части будут наиболее уязвимы для возможной этой атаки.
Также рекомендуется планировать, какая область системы должна быть протестирована точно и в каком порядке. За время своей карьеры в области тестирования я узнал, что не рекомендуется тестировать поля на предмет защиты от SQL-атак случайным образом, поскольку некоторые поля могут быть пропущены.
Поскольку эта атака выполняется в базе данных, уязвимы все части системы ввода данных, поля ввода и ссылки на веб-сайты.
К уязвимым частям относятся:
- Поля для входа
- Поля поиска
- Поля комментариев
- Любые другие поля для ввода и сохранения данных
- Ссылки на веб-сайт
Важно отметить, что при тестировании против этой атаки недостаточно проверять только одно или несколько полей.Довольно часто одно поле может быть защищено от SQL-инъекции, а другое — нет. Поэтому важно не забыть протестировать все поля сайта.
Автоматизация тестов SQL-инъекций
Поскольку некоторые протестированные системы или веб-сайты могут быть довольно сложными и содержать конфиденциальные данные, ручное тестирование может быть очень сложным и требует много времени. Поэтому тестирование против этой атаки с помощью специальных инструментов иногда может быть действительно полезным.
Одним из таких инструментов внедрения SQL является пользовательский интерфейс SOAP.Если у нас есть автоматические регрессионные тесты на уровне API, мы также можем переключить проверку на эту атаку с помощью этого инструмента. В инструменте SOAP UI уже есть готовые шаблоны кода для проверки против этой атаки. Эти шаблоны также могут быть дополнены вашим собственным написанным кодом.
Довольно надежный инструмент.
Однако тест уже должен быть автоматизирован на уровне API, что не так просто. Другой возможный способ автоматического тестирования — использование различных подключаемых модулей браузера.
Следует отметить, что даже если автоматизированные инструменты экономят ваше время, они не всегда считаются очень надежными. Если мы тестируем банковскую систему или какой-либо веб-сайт с очень конфиденциальными данными, настоятельно рекомендуется протестировать его вручную. Где вы можете увидеть точные результаты и проанализировать их. Также в этом случае мы можем быть уверены, что ничего не было пропущено.
Сравнение с другими атаками
SQL Injection можно рассматривать как одну из самых серьезных атак, поскольку она влияет на базу данных и может нанести серьезный ущерб вашим данным и всей системе.
Конечно, это может иметь более серьезные последствия, чем инъекция Javascript или HTML-инъекция, поскольку оба они выполняются на стороне клиента. Для сравнения: с помощью этой атаки вы можете получить доступ ко всей базе данных.
Следует отметить, что для тестирования этой атаки вы должны неплохо знать язык программирования SQL и в целом знать, как работают запросы к базам данных. Также при выполнении этой атаки с использованием инъекций вы должны быть более осторожными и наблюдательными, поскольку любая неточность может быть оставлена уязвимостью SQL.
Заключение
Надеюсь, вы получили четкое представление о том, что такое SQL-инъекция и как нам предотвратить эти атаки.
Тем не менее, настоятельно рекомендуется тестировать против этого типа атаки каждый раз, когда тестируется система или веб-сайт с базой данных. Любая оставшаяся уязвимость базы данных или системы может стоить репутации компании и значительных ресурсов для восстановления всей системы.
Поскольку тестирование против этой инъекции помогает найти наиболее важные уязвимости в системе безопасности, также рекомендуется инвестировать в свои знания и инструменты тестирования.
Если планируется тестирование безопасности, то тестирование против внедрения SQL-кода следует запланировать как одну из первых частей тестирования.
Сталкивались ли вы с какой-либо типичной инъекцией SQL? Не стесняйтесь делиться своим опытом в разделе комментариев ниже.
SQL Injection Test | Проверьте безопасность веб-сайта для SQLi Online
Безопасность веб-сайта
- Проверьте безопасность веб-сайта на предмет внедрения кода SQL
Сайт тестирования SQL-инъекций
SQL Injection (SQLi) — одна из самых распространенных атак в киберпространстве.SQL-инъекция (SQLi) относится к атаке с использованием инъекции, при которой злоумышленник может выполнять вредоносные операторы SQL (также обычно называемые вредоносной полезной нагрузкой), которые управляют сервером базы данных веб-приложения (также обычно называемым системой управления реляционными базами данных — RDBMS). Любой слабо защищенный веб-сайт или веб-приложение, использующее базу данных на основе SQL, может столкнуться с уязвимостью SQL Injection . Это один из самых популярных и старых типов уязвимостей. Кроме того, это одна из самых опасных уязвимостей веб-приложений.
Как проверить уязвимости, связанные с внедрением SQL-кода?
Когда хакер рассматривает возможность атаки SQL Injection , он / она может использовать ее для обхода механизмов аутентификации и авторизации веб-приложений. Это может полностью дать ему / ей возможность получить содержимое всей базы данных. Эта онлайн-инъекция SQL также может добавлять, изменять и удалять записи в базе данных, что влияет на целостность данных.
Если я тщательно проанализирую возможности атаки SQLi, она определенно может предоставить хакеру несанкционированный доступ к конфиденциальным данным, таким как данные клиентов, личная информация (PII), коммерческие тайны, интеллектуальная собственность и многое другое. Это действительно ужасно, как эту информацию можно использовать против меня.
Как протестировать атаки и уязвимости SQL-инъекций
Уязвимости, связанные с внедрением SQL-кода уже долгое время занимают первое место в рейтинге OWASP Top 10.Это связано с тем, что оба они до сих пор широко распространены и могут привести к очень серьезным последствиям. Многие серьезные нарушения безопасности были вызваны SQL-инъекциями даже в последние месяцы. Например, этот тип уязвимости вызвал утечку финансовых данных более чем у 70 процентов граждан Болгарии.
Однако уязвимости SQL также легко обнаружить автоматически с помощью сканеров веб-уязвимостей . Усовершенствованное программное обеспечение для сканирования веб-безопасности, такое как Acunetix , может обнаруживать даже более продвинутые типы SQL-инъекций, такие как слепые SQL-инъекции .SQL-инъекции также легко исправить и избежать. Разработчики могут использовать параметризованных запросов ( подготовленных операторов ) или хранимых процедур , чтобы избежать основной причины SQL-инъекций, которая заключается в прямом использовании ненадежных пользовательских данных в SQL-запросах.
В этой статье мы покажем вам , как сканировать ваши веб-приложения на предмет SQL-инъекций , используя последнюю версию Acunetix . Сканирование будет выполнено на сайте VulnWeb компанией Acunetix, который намеренно уязвим для атак.В статье предполагается, что вы загрузили и установили демо-версию Acunetix .
Вот обзор того, что мы рассмотрели:
Бесплатная загрузка — сканер уязвимостей веб-приложений и сети
Чтобы начать тестирование веб-приложения на SQL-инъекции, необходимо добавить URL-адрес веб-приложения в качестве цели.
- Щелкните значок Targets в меню слева. Отображается панель Targets .
- Нажмите кнопку Добавить цель .Откроется диалоговое окно Добавить цель . В поле Address введите полный URL-адрес вашего веб-приложения. При желании в поле Описание введите удобочитаемое описание цели.
- Нажмите кнопку Добавить цель в диалоговом окне Добавить цель . Отображается панель Информация о цели .
- На панели Информация о цели можно настроить дополнительные свойства цели.Например, вы можете использовать технологию AcuSensor , которая требует установки агента AcuSensor на вашем веб-сервере. Мы рекомендуем вам использовать эту технологию для повышения точности сканирования.
После того, как ваша цель добавлена и настроена, вы можете сканировать ее в любое время. Вы также можете запланировать сканирование на будущее. В зависимости от ваших текущих потребностей существуют разные типы сканирования. В этой статье мы выполним сканирование SQL-инъекции .
- Нажмите кнопку Сканировать на панели Информация о цели . Вы также можете щелкнуть значок Сканирует в левом меню, чтобы открыть панель Сканирует , выберите цель, щелкнув крайний левый столбец, и нажмите кнопку Новое сканирование . Сканирование запущено. Вы можете увидеть ход сканирования в разделе Activity .
- Когда сканирование будет завершено, в разделе Activity появится значок Завершено .
По завершении сканирования вы можете подробно проанализировать обнаруженные уязвимости, чтобы знать, как их устранить. Acunetix предоставляет дополнительную информацию обо всех уязвимостях, а также полезные ссылки, которые научат вас, как исправить проблему.
- Чтобы просмотреть подробную информацию об уязвимостях, обнаруженных в ходе сканирования, перейдите на вкладку Уязвимости . Вы также можете щелкнуть значок Уязвимости в левом меню, чтобы увидеть уязвимости для всех целей одновременно.
- Чтобы просмотреть подробную информацию о выбранной уязвимости, щелкните строку в таблице, которая представляет уязвимость. Отображается панель сведений об уязвимости.
Как видно выше, Acunetix предоставляет точные сведения о полезной нагрузке и результирующем запросе SQL. Поскольку использовалась технология AcuSensor, отчет также показывает исходный файл и строку кода, вызывающую уязвимость SQL Injection.
В этой статье показано , как обнаружить уязвимости , связанные с внедрением SQL-кода на вашем веб-сайте , , веб-приложение , и система CMS .Мы увидели, насколько легко и быстро можно использовать сканер Acunetix Web Vulnerability Scanner для сканирования и получения полного отчета обо всех SQL Injection уязвимостях и эксплойтах , которым подвержены ваши системы.
Назад к разделу сканеров безопасности веб-приложений
Статьи по теме
Использование Burp для обнаружения недостатков внедрения SQL
Уязвимости внедрения SQL возникают, когда контролируемые пользователем данные включаются в SQL-запросы базы данных небезопасным образом.Злоумышленник может предоставить созданный ввод, чтобы вырваться из контекста данных, в котором появляется его ввод, и вмешаться в структуру окружающего запроса.
Широкий спектр вредоносных атак часто может быть осуществлен с помощью SQL-инъекции, включая чтение или изменение важных данных приложения, вмешательство в логику приложения, повышение привилегий в базе данных и получение контроля над сервером базы данных.
В этом примере мы продемонстрируем, как обнаруживать недостатки SQL-инъекций с помощью Burp Suite.В этом руководстве используются упражнения из обучающих инструментов DVWA, WebGoat и Mutillidae, взятые из проекта сломанного веб-приложения OWASP. Узнайте, как скачать, установить и использовать этот проект.
Сканирование дефектов SQL-инъекций
Во-первых, убедитесь, что Burp правильно настроен в вашем браузере.
Убедитесь, что «Перехват выключен» на вкладке «Перехват» прокси.
Посетите веб-страницу тестируемого приложения.
Вернитесь в Burp и убедитесь, что «Перехват включен» на вкладке «Перехват» прокси.
Теперь отправьте запрос на сервер. В этом примере, нажав кнопку «Отправить».
Запрос будет зафиксирован на вкладке «Перехват» прокси.
Один из способов проверить приложение на уязвимости SQL-инъекций — отправить запрос в Burp Scanner.
Щелкните правой кнопкой мыши в любом месте запроса, чтобы открыть контекстное меню.
Нажмите «Провести активное сканирование».
Примечание: Вы также можете отправлять запросы в Сканер через контекстное меню в любом месте, где отображаются HTTP-запросы, например на карте сайта или истории прокси.
После завершения сканирования перейдите на вкладку Target «Карта сайта».
В этом примере сканер обнаружил ряд проблем с SQL-инъекцией.
Щелкните отдельную проблему, чтобы просмотреть вкладку «Рекомендации», на которой представлены сведения о каждой конкретной уязвимости.
Вы также можете просмотреть запросы и ответы, на основании которых Burp сообщил о проблеме.
Ручное тестирование ошибок SQL-инъекций
В качестве альтернативы вы можете использовать Burp, чтобы вручную протестировать приложение на наличие уязвимостей, связанных с инъекциями.
С отключенным перехватом на вкладке «Перехват» прокси-сервера, посетите тестируемое веб-приложение в своем браузере.
Посетите тестируемую веб-страницу.
Вы часто можете обнаружить SQL-инъекцию, введя определенные символы в параметры приложения.
В этом примере отправка ‘(одинарная кавычка) приводит к появлению настраиваемого сообщения об ошибке.
Однако ввод «(две одинарные кавычки) — нет.
Причина этого различия в том, что строки SQL заключены в разделители одинарных кавычек. Отправка одной кавычки нарушает представление строки и, следовательно, более широкого оператора SQL.Две одинарные кавычки — это escape-последовательность, представляющая буквальную одинарную кавычку. Таким образом, отправка двух кавычек внутри строки просто изменяет значение строки и не нарушает оператор SQL,
Если вы еще не знакомы с SQL и SQL Injection, вы можете узнать об этом больше здесь и здесь.
Теперь, когда вы обнаружили потенциальную уязвимость SQL, вы можете использовать Burp для дальнейшего исследования уязвимости.
Лучшие бесплатные инструменты SQL-инъекций с открытым исходным кодом [обновлено в 2021 г.]
SQL-инъекции — одна из наиболее распространенных атак на веб-приложения.Это используется против веб-сайтов, которые используют SQL для запроса данных с сервера базы данных. Успешная атака с использованием SQL-инъекции может считывать конфиденциальные данные, включая электронную почту, имя пользователя, пароль и данные кредитной карты из вашей базы данных. Злоумышленник может не только прочитать, но и изменить или удалить данные из базы данных. Итак, SQL-инъекция может быть очень вредной.
Существуют различные виды SQL-инъекций, которые определяются в зависимости от области действия. Это:
- Классическая SQL-инъекция
- Слепая SQL-инъекция
- SQL-инъекция для конкретной базы данных
- Составной SQLI
Я не буду вдаваться в подробности этих классов.В прошлом мы уже рассматривали различные руководства по SQL-инъекции. Вы можете изучить наши ресурсы, используя функцию поиска.
Уязвимость
SQL-инъекций существует потому, что разработчики не заботятся о проверке данных и безопасности. Перед передачей в SQL-запросы вводимые пользователем данные необходимо дезинфицировать, но разработчики забывают это сделать или не дезинфицируют должным образом. Это делает веб-приложение уязвимым для атак с использованием SQL-инъекций.
Выполнить классическую SQL-инъекцию легко с помощью атаки на основе браузера, вводя запросы с различными параметрами.Но это также требует знания SQL-запросов. Для слепого внедрения SQL-кода или чего-то другого вам нужно быть экспертом с глубокими знаниями запросов к базе данных, архитектурой базы данных и опытом. А использование ручных способов занимает много времени.
Чтобы упростить процесс атаки SQL-инъекции, разработчики также разработали инструменты SQL-инъекции, создав хороший механизм обнаружения. С каждым новым выпуском эти инструменты становятся умнее. Эти инструменты принимают уязвимый URL-адрес в качестве параметра и затем начинают атаковать цель.На основе своего механизма обнаружения и атаки эти инструменты способны определять тип атаки. Иногда уязвимый URL-адрес защищен через сеанс и требует входа в систему. Таким образом, эти инструменты также получили возможность входа в веб-приложение через предоставленное имя пользователя и пароль для выполнения SQL-инъекции в целевом приложении. Эти инструменты могут без проблем выполнять SQL-инъекцию на основе GET, POST или файлов cookie.
Эти инструменты могут автоматически выполнять атаку, и через несколько минут вы получите успешный результат атаки.Эти инструменты также позволяют получить доступ к любой таблице или любому столбцу базы данных одним щелчком мыши и атаковать. В инструментах CLI вы можете использовать команды для доступа к данным. Эти инструменты также позволяют запускать SQL-запросы в целевой базе данных. Таким образом, вы можете получить доступ, изменить или удалить данные на целевом сервере. Эти инструменты также позволяют злоумышленникам загружать или скачивать файлы с сервера.
В этом посте мы добавляем несколько инструментов SQL-инъекций с открытым исходным кодом. Эти мощные инструменты могут выполнять автоматические атаки с использованием SQL-инъекций против целевых приложений.Я также добавлю ссылку для скачивания, чтобы скачать инструмент и попробовать. Я изо всех сил старался перечислить лучшие и самые популярные инструменты SQL-инъекций.
BSQL-хакер
BSQL hacker — это хороший инструмент SQL-инъекций, который помогает выполнять атаку SQL-инъекций против веб-приложений. Этот инструмент предназначен для тех, кому нужен автоматический инструмент SQL-инъекций. Это специально сделано для слепой SQL-инъекции. Этот инструмент быстрый и выполняет многопоточную атаку для получения лучших и быстрых результатов.
Он поддерживает 4 различных типа атак SQL-инъекций:
- Слепое внедрение SQL-кода
- Слепое внедрение SQL на основе времени
- Deep Blind (на основе расширенных временных задержек)
- Внедрение SQL на основе ошибок Внедрение SQL
Этот инструмент работает в автоматическом режиме и может извлекать большую часть информации из базы данных.Он поддерживает как графический интерфейс, так и консоль. Вы можете попробовать любой из указанных режимов пользовательского интерфейса. В режиме графического интерфейса вы также можете сохранять или загружать сохраненные данные об атаках.
Он поддерживает несколько точек внедрения, включая строку запроса, заголовки HTTP, POST и файлы cookie. Он поддерживает прокси для выполнения атаки. Он также может использовать данные аутентификации по умолчанию для входа в веб-учетные записи и выполнения атаки с данной учетной записи. Он поддерживает URL-адреса, защищенные SSL, а также может использоваться для URL-адресов SSL с недействительными сертификатами.
BSQL Hacker Инструмент для внедрения SQL-кода поддерживает MSSQL, ORACLE и MySQL. Но поддержка MySQL является экспериментальной и не так эффективна на этом сервере базы данных, как на других двух.
SQLmap
SQLMap — это инструмент с открытым исходным кодом для SQL-инъекций, наиболее популярный среди всех доступных инструментов для SQL-инъекций. Этот инструмент упрощает использование уязвимости веб-приложения, связанной с внедрением SQL, и захват сервера базы данных. Он поставляется с мощным механизмом обнаружения, который может легко обнаружить большинство уязвимостей, связанных с SQL-инъекциями.
Он поддерживает широкий спектр серверов баз данных, включая MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB и HSQLDB. Большинство популярных серверов баз данных уже включены. Он также поддерживает различные виды атак с использованием SQL-инъекций, включая слепые на основе логических значений, слепые на основе времени, основанные на ошибках, запросы на основе UNION, составные запросы и внеполосные запросы.
Хорошей особенностью этого инструмента является то, что он поставляется со встроенной системой распознавания хэшей паролей.Это помогает определить хэш пароля, а затем взломать пароль, выполнив атаку по словарю.
Этот инструмент позволяет загружать или выгружать любой файл с сервера базы данных, если сервером базы данных является MySQL, PostgreSQL или Microsoft SQL Server. И только для этих трех серверов баз данных он также позволяет выполнять произвольные команды и получать их стандартный вывод на сервере базы данных.
После подключения к серверу базы данных этот инструмент также позволяет искать конкретное имя базы данных, определенные таблицы или определенные столбцы на всем сервере базы данных.Это очень полезная функция, когда вы хотите найти определенный столбец, но сервер базы данных огромен и содержит слишком много баз данных и таблиц.
Загрузите карту SQL по приведенной ниже ссылке:
https://github.com/sqlmapproject/sqlmap
SQLninja
SQLninja — это инструмент SQL-инъекции, который использует веб-приложения, использующие SQL-сервер в качестве сервера базы данных. Это средство может сначала не найти место укола. Но если он обнаружен, он может легко автоматизировать процесс эксплуатации и извлечь информацию с сервера базы данных.
Этот инструмент может добавлять удаленные снимки в реестр ОС сервера базы данных для отключения предотвращения выполнения данных. Общая цель инструмента — позволить злоумышленнику получить удаленный доступ к серверу базы данных SQL.
Он также может быть интегрирован с Metasploit для получения доступа через графический интерфейс к удаленной базе данных. Он также поддерживает прямую и обратную привязку, как TCP, так и UDP.
Этот инструмент недоступен для платформ Windows. Он доступен только для операционных систем Linux, FreeBSD, Mac OS X и iOS.
Загрузите SQLninja по ссылке ниже:
http://sqlninja.sourceforge.net/
Инжектор Safe3 SQL
Safe3 SQL-инжектор — еще один мощный, но простой в использовании инструмент для SQL-инъекций. Как и другие инструменты SQL-инъекций, он также делает процесс SQL-инъекций автоматическим и помогает злоумышленникам получить доступ к удаленному SQL-серверу, используя уязвимость SQL-инъекций. Он имеет мощную систему искусственного интеллекта, которая легко распознает сервер базы данных, тип внедрения и лучший способ использования уязвимости.
Он поддерживает веб-сайты HTTP и HTTPS. Вы можете выполнить SQL-инъекцию с помощью GET, POST или файлов cookie. Он также поддерживает аутентификацию (базовая, дайджест-аутентификация, NTLM HTTP) для выполнения атаки с использованием SQL-инъекции. Инструмент поддерживает широкий спектр серверов баз данных, включая MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase и системы управления базами данных SAP MaxDB.
Для MYSQL и MS SQL он также поддерживает чтение, список или запись любого файла с сервера базы данных.Он также позволяет злоумышленникам выполнять произвольные команды и получать свои выходные данные на сервере базы данных в Oracle и Microsoft SQL Server. Он также поддерживает угадывание веб-пути, взлом MD5, запрос домена и полное сканирование SQL-инъекций.
Загрузите инструмент инжектора Safe3 SQL по ссылке ниже:
http://sourceforge.net/projects/safe3si/
SQLSus
SQLSus — еще один инструмент SQL-инъекций с открытым исходным кодом, который в основном представляет собой MySQL-инъекцию и инструмент подмены. Этот инструмент написан на Perl, и вы можете расширить его функции, добавив свои собственные коды.Этот инструмент предлагает командный интерфейс, который позволяет вам вводить свои собственные SQL-запросы и выполнять атаки с использованием SQL-инъекций.
Этот инструмент утверждает, что он быстрый и эффективный. Он утверждает, что использует мощный алгоритм атаки слепой инъекции для максимизации собранных данных. Для достижения лучших результатов он также использует составные подзапросы. Чтобы сделать процесс еще быстрее, он имеет многопоточность для выполнения атак в нескольких потоках.
Как и другие доступные инструменты SQL-инъекций, он также поддерживает HTTPS. Он может выполнять атаки как через GET, так и через POST.Он также поддерживает файлы cookie, прокси-сервер socks, HTTP-аутентификацию и получение двоичных данных.
Если доступ к information_schema невозможен или таблица не существует, он может выполнить атаку грубой силой, чтобы угадать имя таблицы. С помощью этого инструмента вы также можете клонировать базу данных, таблицу или столбец в локальную базу данных SQLite и продолжить работу в разных сеансах.
Если вы хотите использовать инструмент SQL-инъекции против атаки MySQL, вы предпочтете этот инструмент, потому что он специализирован для этого конкретного сервера базы данных.
Загрузите SQLsus по приведенной ниже ссылке:
http://sqlsus.sourceforge.net/
Моль
Mole или (The Mole) — это бесплатный инструмент для автоматической SQL-инъекции. Это проект с открытым исходным кодом, размещенный на Sourceforge. Вам нужно только найти уязвимый URL-адрес и затем передать его в инструмент. Этот инструмент может обнаружить уязвимость в указанном URL-адресе с помощью методов запросов на основе Union или Boolean. Этот инструмент предлагает интерфейс командной строки, но интерфейс прост в использовании.Он также предлагает автозаполнение как для команд, так и для аргументов команд. Таким образом, вы можете легко использовать этот инструмент.
Mole поддерживает серверы баз данных MySQL, MsSQL и Postgres. Таким образом, вы можете выполнять атаки с использованием SQL-инъекций только против этих баз данных. Этот инструмент был написан на Python и требует только Python3 и Python3-lxml. Этот инструмент также поддерживает атаки на основе GET, POST и файлов cookie. Но вам нужно выучить команды для работы с этим инструментом. Команды нетипичны, но вы должны их иметь. Перечислите эти команды или учитесь, это ваш личный выбор.
Загрузите инструмент для инъекций Mole SQL по ссылке ниже:
http://sourceforge.net/projects/themole/files/
Заключение
Это несколько автоматических инструментов SQL-инъекций, с помощью которых вы можете попытаться выполнить атаку с помощью SQL-инъекций. Если я что-то пропустил, поделитесь этим с нами в комментариях. Некоторые из этих инструментов также поставляются с определенными операционными системами для тестирования на проникновение. Если вы используете Backtrack или Kali Linux, у вас уже есть некоторые из этих инструментов.