Старый 02.07.2010, 20:32   #1
Grey
 
Аватар для Grey
 
Регистрация: 30.06.2010
Сообщений: 38
По умолчанию Cкрипт для работы со слепыми инъекциями

Скрипт для работы со слепыми инъекциями.

Наверное аналогов очень много, но этот скрипт заточен под слепые инъекции, а так же я постарался включить в него все возможные функции (к примеру работа с information_schema (очень полезно если версия БД = 5) или вывод файла (что будет применимо если версия БД = 3)).

Скрипт заточен для работы с MySQL.

Текущая версия: 3.8

Изменения версии 3.8 (05.07.09):

  1. !!!Исправлены ошибки из-за которых не правильно работали функции: определения длины результата запроса, быстрого получения цифровых символов и символов хеша.
  2. Незначительно оптимизированы почти все опции.За счет создания ещё одной функции. Код также стал ещё более читабельным.
  3. Убрана опция для быстрого получения хеша, вместо неё к некоторым* опциям добавлена возможность указывать предполагаемый набор символов (все символы, символы хеша или цифровые символы). Это намного разумнее и удобнее.
    *опции: получения результата запроса, получение указанной части результата запроса, вывод нескольких строк результата запроса.

Изменения версии 3.7 (26.06.09):

  1. Добавлена возможность передачи POST'овых переменных при работе с инъекцией в куках.
  2. Формирование отправляемого пакета вынесено в отдельную функцию. Это делает код более читабельным.
  3. Оптимизировано получение длины строки. Теперь в среднем нужно всего 3.4 запроса для получения одной цифры.
  4. Немного изменена опция отладки. Теперь в файл сохраняется только отправляемый пакет и получаемая страница - этого более чем достаточно.

Изменения версии 3.6 (15.06.09):

  1. Оптимизированы почти все функции. Ускорено определение длины строки, ускорен бинарный поиск.
  2. Код приведён к читабельному виду.
  3. Добавлена опция для быстрого получения хешей. Всего 4 запроса на 1 символ. Таким образом для получения md5 хеша нужно всего 128 запросов.
  4. Изменены и дополнены некоторые опции.
  5. Исправлено множество мелких ошибок. К примеру добавлено использование функции rawurlencode(), что позволяет более корректно отправлять данные.
  6. Появилась возможность работать с несколькими строками таблицы. Т.е, в своём роде, возможность дампа таблиц.
  7. Добавлена возможность отладки скрипта. Это должно помочь с настройкой скрипта.
  8. Возможность работать при фильтрации символов `>` и `<` без потерии скорости. Благодаря использованию конструкции `between n1 and n2`.

Описание скрипта:

Скрипт создан для облегчения достаточно рутинной задачи - эксплуатирования `слепых` sql инъекций.
Скрипт может работать с инъекциями в переменных разных типов (POST/GET/COOKIE).
Достаточно простая структура скрипта позволяет без особого труда создавать эксплойты на основе этого скрипта - либо простой настройкой файла config.php, либо использованием готовых функций (дополнить которые, в случае необходимости, труда не составит).
Возможность определять правильность выполнения результата запроса как по наличию текста так и по отсутствию ошибки, а так же возможность использования `more than 1 row` делают скрипт достаточно гибким.
В архив со скриптом входят два словаря - для брута имён таблиц (около 1500 записей) и для брута имён столбцов (около 300 записей).


!!!Всю информацию скрипт сохраняет в файл (файл создаётся скриптом автоматически после завершения работы), т.е. держать браузер открытым не нужно: залил на какой нидь сайт, настроил, поставил вывод нужной информации, выключил комп, лёг спать, а на утро всё будет готово - вся информация будет сохранена в файле.

Производительность:

Оптимизированный бинарный поиск позволяет получать один символ за 8 запросов, а символ хеша всего за 4 запроса.
Таким образом для получения хеша md5 достаточно 128 запросов.

Есть три функции для определения символа:

Логический поиск с использованием символов `>` и `<`. 8 запросов на 1 символ / 4 запроса на 1 символ хеша.
Полный брут. От 1 до 255 запросов на 1 символ / от 1 до 16 запросов на 1 символ хеша.
Логический поиск с использованием конструкции `between n1 and n2`. 8 запросов на 1 символ / 4 запроса на 1 символ хеша.

Для работы с числовыми данными есть оптимизированная функция, получающая одну цифру за 3.4 запроса (для получения 6 из 10 цифр нужно всего 3 запроса, а для остальных 4).


!!!Время работы некоторых опций (к примеру получение файла или вывод всех таблиц из information_schema) очень велико.

Основные функции скрипта:

Цитата:
1. Вывод version(), user(), database()
Требуется версия mysql >= 3

2. Подбор имён таблиц.
Подборка может осуществляться не только по встроенной базе имён таблиц (содержит 30 имён таблиц), но и по указанному файлу-словарю.
Требуется версия mysql >= 4.1

3. Подбор имён колонок к указанной таблице.
Подборка может осуществляться не только по встроенной базе имён колонок (содержит 35 имён колонок), но и по указанному файлу-словарю.
Требуется версия mysql >= 4.1

4. Вывод результата указанного запроса.
Ну к примеру "(select pass from user limit 0,1)". Длина определяется автоматически, т.е. результат выводится польностью.
Требуется версия mysql >= 4.1

5. Вывод содержимое указанного файла.
Конечно, это требует времени, но иногда бывает нужным и такое.
Требуется версия mysql >= 3

6. Вывод нескольких строк указанного запроса (дамп).
Требуется версия mysql >= 4.1

7. Вывод части указанного запроса.
К примеру, часть файла для экономии времени.
Требуется версия mysql >= 4.1 (для вывода части файла достаточно 3-ей версии, но для выполнения подзапросов нужна 4-ая версия)

8. Вывод имён таблиц и БД в которых они находятся через information_schema.tables.
Выводит имена всех таблиц, в том числе и системных таблиц, находящихся в БД information_schema.
Требуется версия mysql >= 5

9. Вывод имён колонок к указанной таблице, находящейся в указанной БД, через information_schema.columns.
Требуется версия mysql >= 5

10. Вывод имён таблиц из указанной БД через information_schema.tables.
Более оптимизированный вариант одной из предудыщих опций.
Требуется версия mysql >= 5


Дополнительные возможности:


Мелочи, которые могут быть очень полезны в некоторых случаях.

  1. Можно использовать различные символы-комментарии.Это может пригодиться при фильтрации каких то символов.
  2. Можно указывать различные символы-разделители.Это может пригодиться при фильтрации каких то символов.
  3. Можно указывать COOKIE/User-Agent/Referer.
  4. Можно установить задержку (в секундах) перед отправкой очередного пакета.На случай если целевой сервер не выдерживает большое количество запросов или если на сервере используется антиДДоС.
  5. Можно выбирать различные функции определения символа.Опять же - на случай фильтрации каких то символов.
  6. Есть опции отладки скрипта.
  7. Для некоторых опций есть возможность указывать предполагаемый набор символов (все символы, символы хеша или цифровые символы).Это позволяет значительно ускорить работу скрипта.

Как юзать:

  1. Залить все файлы на какой нидь сайт (можно и на локалку, но лучше сайт).
  2. Сделать директорию в которой находиться скрипт доступной на запись (результат работы и сообщения отладки помещаются в файл).
  3. Отредактировать файл config.php (в нём все прокомментировано), другие файлы редактировать не нужно.
  4. В браузере открываем main.php, тем самым запуская скрипт.
  5. Если в течение 30 секунд сообщения об ошибке не появляются - браузер можно закрыть - работу это не прервёт.
  6. Результат смотреть в файле result.txt.

Отладка и сообщения об ошибках:

Если не указан один из обязательных параметров - будет выведено сообщение с ошибкой.
Если все параметры указаны, но скрипт выводит ошибку `Невозможно провести sql инъекцию...`, то это говорит о том, что параметры введены не верно - следует проверить правильность заполнения параметров (путь до уязвимого скрипта, переменные и т.д.).

Для отладки есть две опции debug1 и debug2.
При включенном debug1 будет создаваться файл с сообщениями о неправильном заполнение некоторых данных.
При включенном debug2 будет создаваться файл с отправляемым пакетом и полученной страницей.


Содержимое архива:

main.php - управляющий файл
config.php - файл с настройками
lib_and_data/grey_data.php - небольшой словарь с именами таблиц и колонок.
lib_and_data/grey_function.php - библиотека функций для работы со слепыми sql инъекциями.
dic/grey_table_name.txt - большой словарь с имена тиблиц
dic/grey_field_name.txt - большой словарь с именами колонок

© Grey
Вложения
Тип файла: zip script_for_bsql.zip (14.5 Кб, 1158 просмотров)

Последний раз редактировалось Grey; 04.07.2010 в 18:46..
Grey вне форума   Ответить с цитированием
Старый 02.03.2011, 11:40   #2
durito
 
Регистрация: 02.03.2011
Сообщений: 76
Репутация: 2
По умолчанию

а нельзя ли сделать, чтобы сохранение в result.txt делалось построчно, а не в конце всего сеанса. так как сейчас базы нередко насчитывают 1К и более таблиц, и ожидание вывода всего лога очень напрягает. а так софт имхо один из лучших из того, чем я пользовался, очень гибко надстраиваемый. респект автору.
durito вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot