Регистрация: 30.06.2010
Сообщений: 38
|
Cкрипт для работы со слепыми инъекциями
Скрипт для работы со слепыми инъекциями.
Наверное аналогов очень много, но этот скрипт заточен под слепые инъекции, а так же я постарался включить в него все возможные функции (к примеру работа с information_schema (очень полезно если версия БД = 5) или вывод файла (что будет применимо если версия БД = 3)).
Скрипт заточен для работы с MySQL.
Текущая версия: 3.8
Изменения версии 3.8 (05.07.09):
- !!!Исправлены ошибки из-за которых не правильно работали функции: определения длины результата запроса, быстрого получения цифровых символов и символов хеша.
- Незначительно оптимизированы почти все опции.За счет создания ещё одной функции. Код также стал ещё более читабельным.
- Убрана опция для быстрого получения хеша, вместо неё к некоторым* опциям добавлена возможность указывать предполагаемый набор символов (все символы, символы хеша или цифровые символы). Это намного разумнее и удобнее.
*опции: получения результата запроса, получение указанной части результата запроса, вывод нескольких строк результата запроса.
Изменения версии 3.7 (26.06.09):
- Добавлена возможность передачи POST'овых переменных при работе с инъекцией в куках.
- Формирование отправляемого пакета вынесено в отдельную функцию. Это делает код более читабельным.
- Оптимизировано получение длины строки. Теперь в среднем нужно всего 3.4 запроса для получения одной цифры.
- Немного изменена опция отладки. Теперь в файл сохраняется только отправляемый пакет и получаемая страница - этого более чем достаточно.
Изменения версии 3.6 (15.06.09):
- Оптимизированы почти все функции. Ускорено определение длины строки, ускорен бинарный поиск.
- Код приведён к читабельному виду.
- Добавлена опция для быстрого получения хешей. Всего 4 запроса на 1 символ. Таким образом для получения md5 хеша нужно всего 128 запросов.
- Изменены и дополнены некоторые опции.
- Исправлено множество мелких ошибок. К примеру добавлено использование функции rawurlencode(), что позволяет более корректно отправлять данные.
- Появилась возможность работать с несколькими строками таблицы. Т.е, в своём роде, возможность дампа таблиц.
- Добавлена возможность отладки скрипта. Это должно помочь с настройкой скрипта.
- Возможность работать при фильтрации символов `>` и `<` без потерии скорости. Благодаря использованию конструкции `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
|
Дополнительные возможности:
Мелочи, которые могут быть очень полезны в некоторых случаях.
- Можно использовать различные символы-комментарии.Это может пригодиться при фильтрации каких то символов.
- Можно указывать различные символы-разделители.Это может пригодиться при фильтрации каких то символов.
- Можно указывать COOKIE/User-Agent/Referer.
- Можно установить задержку (в секундах) перед отправкой очередного пакета.На случай если целевой сервер не выдерживает большое количество запросов или если на сервере используется антиДДоС.
- Можно выбирать различные функции определения символа.Опять же - на случай фильтрации каких то символов.
- Есть опции отладки скрипта.
- Для некоторых опций есть возможность указывать предполагаемый набор символов (все символы, символы хеша или цифровые символы).Это позволяет значительно ускорить работу скрипта.
Как юзать:
- Залить все файлы на какой нидь сайт (можно и на локалку, но лучше сайт).
- Сделать директорию в которой находиться скрипт доступной на запись (результат работы и сообщения отладки помещаются в файл).
- Отредактировать файл config.php (в нём все прокомментировано), другие файлы редактировать не нужно.
- В браузере открываем main.php, тем самым запуская скрипт.
- Если в течение 30 секунд сообщения об ошибке не появляются - браузер можно закрыть - работу это не прервёт.
- Результат смотреть в файле 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; 04.07.2010 в 18:46..
|