| Что такое SQL injection и как найти ее с помощью программы SQLmap | 
| 01.11.2018 00:00 | 
| 
 SQL injection — это  уязвимость, в которой злоумышленник создает или изменяет текущие  SQL-запросы для отображения скрытых данных, их изменения или даже  выполнения опасных команд операционной системы на стороне сервера базы  данных. Атака выполняется на базе приложения, строящего SQL-запросы из  пользовательского ввода и статических параметров.  SQLmap — это инструмент с открытым исходным кодом для тестирования на проникновение, который автоматизирует процесс выявления и эксплуатирования уязвимостей SQL-инъекций и захват серверов баз данных. Команды для работы с приложением:  -u для указания URL  -random-agent для снижения подозрительной активности  -tor для использования защищенного канала  -dbs смотрим какие базы доступны  -table смотрим таблицу  -columns смотрим колонки  -dump скачиваем путь к базе  -current-user инфо базы данных, включая ее название, номер версии, а также текущего пользователя  -passwords сохраненные пароли в базе  -level Эта  опция требует аргумента, который определяет уровень тестов для  выполнения. Существует пять уровней. Значение по умолчанию — 1, где  выполняется ограниченное количество тестов (запросов). Напротив, уровень  5 будет тестировать гораздо больше скриптов и границ. Полезные  значения, используемые sqlmap, указаны в текстовом файле xml /  payloads.xml. Следуя инструкциям, если sqlmap пропускает инъекцию, вы  должны иметь возможность добавлять свою собственный полезный скрипт для  тестирования тоже! Что проверяется при разном уровне тестирования:  1) запросы GET и POST level 1  2) значения заголовка HTTP Cookie тестируются в level 2  3) значение HTTP-агента User-Agent / Referer проверяется на level 3  В целом, чем  сложнее обнаружить инъекцию SQL, тем выше должен быть установлен  уровень. Настоятельно рекомендуется увеличить это значение, прежде чем  сообщать в список рассылки, что sqlmap не может обнаружить определенную  точку входа.  -risk Эта  опция требует аргумента тоже, который определяет риск выполнения  тестов. Существует три значения риска. Значение по умолчанию равно 1,  что является безобидным для большинства точек ввода SQL. Значение риска 2  добавляет к уровню по умолчанию тесты для сильных SQL-запросов,  основанных на запросах, и значение 3 добавляет также тесты SQL-инъекций  на основе OR. В некоторых случаях, например, SQL-инъекция в инструкции  UPDATE, инъекция полезной нагрузки на основе OR может привести к  обновлению всех записей таблицы, что, конечно же, не так, как хочет  злоумышленник. Согласно предыдущей опции скрипты для применения этой  опции лежат в текстовом файле xml / payloads.xml, и вы можете свободно  редактировать и добавлять свои собственные.  Как защитится: 1. Не помещать в БД данные без обработки. 2. Не помещать в запрос управляющие структуры и идентификаторы, введенные пользователем. 3. Добавить капчу 4. Ввести лимиты на поступление запросов с одного IP 
 |