Наш партнер GENESIS HACKSPACE

Хакспейс: Клуб — физическое место, где собираются увлеченные техникой, IT, электроникой, роботами и физикой люди. Первая сеть бесплатных хакспейсов в г.Тверь и области.

SQLChop — это новый механизм обнаружения SQL инжектов, построенный на выявлении определённых маркеров SQL и анализе синтаксиса. Принимаемые данные (URLадрес, body, cookie и т. д.) вначале будут декодированы и приведены к виду, наиболее близкому к виду, соответствующему выполняемой в веб-приложении функции, затем будет произведён анализ для классификации результата. SQLChop основывается на знании компилятора и теории автоматов и работает на временной сложности O(N).

Исходный код доступен здесь: https://github.com/chaitin/sqlchop

Документация: http://sqlchop.chaitin.com/doc.html

Есть возможность проверить свои запросы онлайн, поиграться с SQLChop. По этой ссылке введите интересующие вас SQL запросы и посмотрите, будут ли они классифицированы как попытка SQL-инъекции.

01

Зависимости SQLChop

Альфа релиз SQLChop, предназначенный для тестирования, включает C++ заголовок и разделяемые объекты, библиотеку python, а также несколько примеров использования. Этот выпуск был протестирован на большинстве дистрибутивов Linux.

Если будете использовать с Python'ом, то нужно установить protobuf-python, например, так:

Если вы используете C++, то вам нужно установить protobuf, protobuf-compiler и protobuf-devel, например так:

Собираем SQLChop

Загрузите последний выпуск с https://github.com/chaitin/sqlchop/releases

Make

Запустите python2 test.py или LD_LIBRARY_PATH=./ ./sqlchop_test

is_sqli

Получив строку запрос определим, является ли SQL-инъекцией

Параметр: строка

Возвращаемое значение: тип bool, возвращает True для SQLi (инжект), возвращает False для нормальных случаев.

classify

Получив ввод для веб-приложения, classify API декодирует этот ввод и ищут возможный SQL-инжект внутри. Если SQLi найден, то будет выведен запрос.

  • Параметр 1: объект со следующими ключами
  1. urlpath: полный адрес веб-запроса
  2. body: строка, тело http запроса POST/PUT
  3. cookie: строка, содержимое куки веб-запроса
  4. raw: строка, другое обычное поле, которое нуждается в обычном декодировании.
  • Параметр 2: детали, если возвращаемое значение True, то будут возвращены детали по запросу, если False, то будет возвращён только результат, которые выполняется быстрее.
  • Return: объект содержит результат и запрос
  1. result: int, положительная величина, показывающая содержит ли веб-запрос sql-инжект
  2. payloads: список объектов, содержащих key, score, value и source
  • key: строка, зарезервирована
  • source: строка, показывает, как рабочий запрос включён в оригинальный веб-запрос и как рабочий запрос раскодирован
  • value: раскодированный sqli запрос
  • score: источник декодированного запроса sqli

Пример:

Настройка

is_sqli API (в sqlchop.py) выявляют SQLi, дают оценку в качестве некоторой величины, вы можете настроить порог этой величины и вызвать действие в соответствии со сценарием использования.


Мегаконкурс в апреле "Приведи друзей на codeby". Дарим деньги, подписку на журнал хакер и выдаем статус "Paid Access". Подробнее ...

Похожие темы

Metasploit — Совместная работа команды... Перейти к содержанию полного руководства пользователя Metasploit на русском языке. Совместная работа команды ...
Взлом NullByte VM В этой статье я опишу взлом уязвимой машины в рамках соревнований CTF. Называется она NullByte VM (CTF Challenge) Для начала скачаем образ виртуальн...
Как сделать так, чтобы при включении компьютера ср... Предположим, вы попробовали новую операционную систему в VirtualBox. Она вам понравилась, но вы ещё не решаетесь перейти на неё. Тем не менее, вам х...
FTP-Map: определяем программное обеспечение и его ... Ftpmap сканирует удалённые FTP-сервера для идентификации, какое программное обеспечение и какой версии они используют. Она использует специфичн...
Как установить Pyrit в Kali Linux Эта инструкция (Как установить Pyrit в Kali Linux) из серии о том, Как установить GLRX, AMD APP SDK, CAL++ и Pyrit в Kali Linux. Идея в том, чтобы у...