===> Toolza1.0 <=== (*Nix/Windows/Mac) - UTF-8 perlscript
SQL injection DB supported: Mysql, Mssql, Sybase, Postgresql, Access, Oracle, Firebird/Interbase
include Blind Mysql injection + alternative methods
Other functions:
- LFI/Reader/Loade_file() bruter
- Scan site for folders & files
- FTP checker
- FTP bruter
- Proxy checker
- Proxy grabber
Post/Get/Proxy/SOCKS4-5/Cookies/Timeout/Multithread/HTTPS+Authorization supported
include video instructions for all modes
Для всех режимов работы:
- Выбор POST или GET
- Поддержка прокси (файл proxy.txt) - авточекинг, работает с первой рабочей
- Поддержка SOCKS4-5 (файл socks.txt) - авточекинг, автоопределение типа носка(4-5), без авторизации, работает с первой рабочей
- Выбор таймаута соединения
- Возможность вставить cookies
формат:
$cookie ="__utma=115146457;__utmz=115146457;PHPSID=201301d f5788f6f187342cdfe45abea0a";
- Возможность изменить user agent
- Возможность изменить реферер
- Возможность выбора HTTP-протокола ( 0 - HTTP/1.0; 1 - HTTP/1.1; Default - 1)
MySql=>5:
1. Многопоточный (можно вручную менять кол-во потоков, оптимально на практике 10)
2. Вывод на монитор + логирование в файл (имя_хоста.txt)
3. Нормальная поддержка UNHEX(HEX(SQL))
4. Нормальная поддержка AES_DECRYPT(AES_ENCRYPT(SQL,aes_key),aes_key)
5. Выбор пробелов (+,/**/,%20 и etc.)
6. Выбор лимитов (no limit; limit+0,1; limit+1,1)
7. Выбор фильтров (/*,--+,# и etc)
8. Выбор паузы между пачкой запросов в секундах (антиддос сканируемого сайта)
9. Предварительный вывод на экран вашего URL со всеми вашими настройками
10. Возможность выбора дампа таблиц из information_schema - все или с "номер_записи" по "номер_записи"
11. Возможность выбора дампа данных из выбранной таблицы - все или с "номер_записи" по "номер_записи"
12. Возможность вставить свое условие при дампе данных из таблицы - where ID=1, чтобы не дампить, ну например,
всех пользователей какого-нибудь форума и сразу получить данные админа. Или админов, т.к. они могут не находится рядом в таблице и алгоритм "с ... по..." тут не подойдет. Поддерживаются как числовые так и mix условия (автоопределение, авто- HEX).
13. Автопроверка на file_priv
14. Скрипт полностью интерактивный, поддерживается ввод данных пользователем с клавиатуры.
MySql4 bruter - таблицы и колонки:
- Многопоточный
- Возможность добавлять префикс для таблиц и префикс для колонок(PHPBB_, IPB_ & etc.)
- Словарь таблиц - 3434
- Словарь колонок - 760
Site scanner for folders & files:
- Многопоточный
- Словарь 3455 позиций
- Возможность редактировать ошибки при ответе сайта на запрос при не существующем URL (файл scaner_errors_list.txt)
- Возможность пополнять словарь (файл scaner_folder_list.txt, новая позиция с новой строки без слеша в начале)
LFI/READER/Load_file() bruter:
Многопоточный, поддержка GET | POST, прокси (не для всех режимов)
6 режимов работы:
[1] LFI/Reader - visual error when wrong query
[2] LFI/Reader - unvisual error when wrong query
[3] Mysql load_file - visual error when wrong query, magic_quotes=OFF
[4] Mysql load_file - unvisual error when wrong query, magic_quotes=OFF
[5] Mysql load_file - visual error when wrong query, magic_quotes=ON
[6] Mysql load_file - unvisual error when wrong query, magic_quotes=ON
2-4-6 режимы к сожалению только GET и без прокси, т.к. там идет получение содержимого страниц и пришлось выбирать - либо многопоточность, либо так.
+
записал видео для новой фичи:
1. LFI, ошибки ВИДНЫ при неправильном запросе (классика)
2. LFI, ошибки НЕ ВИДНЫ при неправильном запросе
3. LOAD_FILE, magic_quotes=on, ошибки НЕ ВИДНЫ при неправильном запросе
т.е. классический вариант и два "фактически безнадежных" с первого взгляда
Blind Mysql injection:
- Многопоточный
- POST/GET/Прокси/Куки и прочее
- Полный цикл - от системной информации до получения значений из таблицы (явки-пароли)
- Брут для Blind MySql4 таблиц и колонок с возможностью добавить свой префикс
- В общем все возможности, что в секции обычных скулей, только чуть подольше подождать
- Normal MODE брута (диапазон 0-255) - неграниченное кол-во записей, универсальный, вывод ошибок необязателен
- Fast MODE брута - (диапазон 0-255) - кол-во записей <= 10, универсальный, вывод ошибок необязателен
- TURBO-MODE брута в режиме дампа "1 запись 1 колонка" (диапазон 0-255) - универсальный, вывод ошибок необязателен
- MD5-TURBO-MODE брута в режиме дампа "1 запись 1 колонка" (диапазон 48-102) - универсальный, вывод ошибок необязателен
-Blind inj get DB-names from information_schema.schemata
-Blind inj get tables from DB-name
-Blind inj get column_name from tables from DB-name
-Blind inj get LOAD_FILE (file_priv = Y)
предварительно определяется размер файла и есть возможность выбирать, читать весь файл или часть файла (начиная и заканчивая любым байтом), весь процесс чтения виден на мониторе. Видео прилагается.
MySql inj bruter кол-ва колонок:
- Многопоточный
- Post/Get/Cookies/Proxy & etc.
- Метод union+select
- Возможность менять максимальное кол-во колонок - по умолчанию 100
- Возможность менять фильтр
- Возможность менять знак пробела
- Определение правильности запроса по наличию или отсутствию уникального текста на странице
- автоопрделениe limit (без лимита, limit+0,1, limit+1,1)
- определение принтабельной колонки
- Алгоритм работы:
1) сначала прогоняется по 20 колонок без лимита, с limit+0,1, c limit+1,1, затем, если не нашлось кол-во колонок, прогоняется от 21 до максимально выставленного кол-ва колонок (100 - default) также без лимита, с limit+0,1, c limit+1,1
2) после нахождения кол-ва колонок ищется принтабельная колонка также без лимита, с limit+0,1, c limit+1,1
в видео рассмотрен нестандартный случай - правильное кол-во колонок определяется без лимита, принтабельная колонка появляется только с limit+1,1
MySql inj NAME_CONST:
- Многопоточный
- Post/Get/Cookies/Proxy & etc.
- Все те же возможности, что и при обычной скуле +
та же скорость
- просто заменить два раза "version()" на "^" (shift+6), т.е. было:
Код:
http://site.com/index.php?site=profile&id=1'/**/and/**/1=(SELECT/**/*/**/FROM(SELECT/**/*/**/FROM(SELECT/**/NAME_CONST((version()),14)d)/*/as/**/t/**/JOIN/**/(SELECT/**/NAME_CONST((version()),14)e)b)a)/**/and/**/'1'='1/*
стало:
Код:
http://site.com/index.php?site=profile&id=1'/**/and/**/1=(SELECT/**/*/**/FROM(SELECT/**/*/**/FROM(SELECT/**/NAME_CONST((^),14)d)/*/as/**/t/**/JOIN/**/(SELECT/**/NAME_CONST((^),14)e)b)a)/**/and/**/'1'='1/*
Отдельный риспект хотелось бы выразить
Qwazar и
jokester за
эту тему.
PS: Видео прилагается
MySql inj floor(rand()):
- Многопоточный
- Post/Get/Cookies/Proxy & etc.
- Все те же возможности, что и при обычной скуле +
та же скорость
скуля:
Код:
http://example.com/?id=1+or(1,2)=(select+count(*),concat((select+version()+from+information_schema.tables+limit+0,1),0x3a,floor(rand()*2))+from+information_schema.tables+group+by+2+limit+0,1)--+
переменные в скрипте:
Код:
$f_table = "information_schema.tables"; # default 'information_schema.tables' if MySQL>=5 and if MySQL<5 - you must brute table_name before and print here
$f_url = "http://example.com/?id=1+or(1,2)="; # url
$f_plus = "+"; # %20,%2b & etc.
$f_filtr = "--+"; # close SQL
скуля:
Код:
http://example.com/?id=(select+1+from+(select+count(*),concat((select+version()+from+information_schema.tables+limit+0,1),0x3a,floor(rand()*2))+from+information_schema.tables+group+by+2+limit+0,1)a)--+
переменные в скрипте:
Код:
$f_table = "information_schema.tables"; # default 'information_schema.tables' if MySQL>=5 and if MySQL<5 - you must brute table_name before and print here
$f_url = "http://example.com/?id=(select+1+from+"; # url
$f_plus = "+"; # %20,%2b & etc.
$f_filtr = "a)--+"; # close SQL
MSSQL inj:
- Многопоточный
- Post/Get/Cookies/Proxy & etc.
- Определение кол-ва колонок и принтабельной колонки не требуется
- авто-CHAR всех данных
Вывод на экран и сохранение в файл. Видео прилагается
PostgreSQL injection:
1. UNION+SELECT method:
- Многопоточный
- Post/Get/Cookies/Proxy & etc.
- Возможность задавать в настройках data type принтабельного поля ("text" - default)
- Авто CHR(data)||
- Остальное все тоже самое, что и в mysql
2. SUBQUERY method:
- Многопоточный
- Post/Get/Cookies/Proxy & etc.
- Возможность задавать в настройках тип конвертации данных для вызова ошибки
- Авто CHR(data)||
- Остальное все тоже самое, что и в mysql
Пример метода UNION+SELECT:
Код:
http://site.com/index.phtml?pid=7+union+select+null,version(),null--
Настройки в скрипте:
$p_union_select_url = "http://site.com/index.phtml?pid=7+union+select+null,^,null"; # url UNION+SELECT method
$p_subquery_url = ""; # url SUBQUERY method
$p_method = 0; # 0 - UNION+SELECT method, 1 - SUBQUERY method
$p_filtr = "--"; # close SQL
$p_plus = "+"; # %20,%2b & etc.
$p_convert = "text"; # convert data type(text,int ... etc.)
Пример метода SUBQUERY:
Код:
http://site.com/index.php?id=1+and+1=cast(select+version()+as+int)
или
http://site.com/index.php?id=1+and+1=version()::int
что тоже самое
Настройки в скрипте:
$p_union_select_url = ""; # url UNION+SELECT method
$p_subquery_url = "http://site.com/index.php?id=1+and+1="; # url SUBQUERY method
$p_method = 1; # 0 - UNION+SELECT method, 1 - SUBQUERY method
$p_filtr = ""; # close SQL
$p_plus = "+"; # %20,%2b & etc.
$p_convert = "int"; # convert data type(text,int ... etc.)
Вывод на экран и сохранение в файл. Видео прилагается
Sybase SQL injection:
- Пока в один поток (специфика sybase sql inj)
- Post/Get/Cookies/Proxy & etc.
- Не требуется подбор кол-ва колонок и поиск принтабельной
- Возможность задавать тип конвертации данных для вызова ошибки (numeric, integer & etc)
- Авто hex(data)||
- Дампит все БД, все таблицы (плюс ID), все колонки из выбранной таблицы (плюс ID) + данные из таблиц
- Автоопределение типов данных при дампе
1 . UNION SELECT method:
Код:
http://site.com/index.phtml?pid=7+union+select+null,@@version,null
Настройки в скрипте:
$s_union_select_url = "http://site.com/index.phtml?pid=7+union+select+null,^,null"; # url UNION+SELECT method
$s_subquery_url = ""; # url SUBQUERY method
$s_method = 0; # 0 - UNION+SELECT method, 1 - SUBQUERY method
$s_filtr = "--"; # close SQL
$s_plus = "+"; # %20,%2b & etc.
$s_convert = "numeric"; # default type to convert - numeric (for subquery method)
1 . SUBQUERY method:
Код:
http://site.com/index.phtml?pid=-7+or+1=convert(numeric,(select+@@version))--+
Настройки в скрипте:
$s_union_select_url = ""; # url UNION+SELECT method
$s_subquery_url = "http://site.com/index.phtml?pid=-7+or+1="; # url SUBQUERY method
$s_method = 1; # 0 - UNION+SELECT method, 1 - SUBQUERY method
$s_filtr = "--+"; # close SQL
$s_plus = "+"; # %20,%2b & etc.
$s_convert = "numeric"; # default type to convert - numeric (for subquery method)
+ системные данные:
Код:
@@version
user_name()
@@boottime
@@errorlog
@@language
@@servername
db_name()
Вывод на экран и сохранение в файл. Видео прилагается
Ms Access SQL injection:
- POST/GET/Cookie/Proxy & etc.
- Возможности:
1. Определение кол-ва столбцов через order+by (надо указать ошибку, когда кол-во столбцов больше) - multithread
2. Брут имен таблиц - возможно добавлять префикс - tbl,tbl_, site_name & etc (multithread)
3. Брут имен колонок - возможно добавлять префикс - tbl,tbl_, site_name & etc (multithread)
4. Автоопределение принтабельной колонки
5. Дамп данных из таблицы (1 thread - специфика access)
6. Автоопределение типов данных при дампе (независимо от того, дампятся данные из одной колонки или нескольких и независимо от порядка их расстановки, т.е. дампите как обычно - id,name,email...)
Вывод на экран и запись в файл. Видео прилагается
Oracle SQL injection:
- Многопоточный
- POST/GET/Cookie/Proxy & etc.
- Возможность задать тип конвертации для принтабельного поля
- Авто CHR(data)||
- Остальное как в обычной скуле mysql
просто замените принтабельное поле на "^" (shift+6)
Вывод на экран и запись в файл. Видео прилагается
Firebird/Interbase SQL injection:
- Многопоточный
- POST/GET/Cookie/Proxy & etc.
- Возможность задать тип конвертации для выводимых данных
- Авто ascii_char(data)||
Исходная ссылка:
Код:
http://example.com/image.php?operator=2)+and+1=user--
или
http://example.com/image.php?operator=2)+and+1=cast(user+as+char(777))--
В скрипте:
Код:
$fi_source_sql = "http://example.com/image.php?operator=2)+and+1=";
$fi_filtr = "--"; # close SQL
$fi_plus = "+"; # %20,%2b & etc.
$fi_convert = "char(777)"; # default data type - char(777)
Вывод на экран и запись в файл. Видео прилагается
FTP checker:
- Многопоточный (50 потоков checked)
- Сохраняет проверенные ftp в файл
- Поддерживаемые форматы:
1) ftp://login : pass@host
2) ftp://login : pass@host : port
каждый с новой строки
- если порт не указан, выставляется дефолтный (можно менять в настроках - по умолчанию 21)
- возможны пробелы между строками(автоопределение)
- возможны любые символы в начале и в конце строки (автоопределение)
FTP bruter:
- Многопоточный (50 потоков checked)
- Три режима работы:
1) Брут login : password (любой делиметр, задается в настройках, по умолчанию ":")
2) Известен логин, брут паролей
3) Известен пароль, брут логинов
п. 3 может пригодиться, если вы желаете проверить найденный Вами пароль от SSH или phpmyadmin или просто от админки - вдруг подойдет и на FTP
В видео рассмотрены все три режима работы, словарь паролей взят из mil-dic.txt (83641 записей)
PS: Не забывайте, на некоторых хостах надо задавать обязательную паузу между попытками входа, например на ftp.narod.ru (5 сек) - выставляется в глобальных настройках скрипта
PROXY checker:
- Многопоточный
- Сохраняет хорошие proxy в файл
- формат ip : port - каждый с новой строки
PROXY grabber:
- Многопоточный
-
Кроме SOCKS4 и SOCKS5
- 16 актуальных сайтов с проксями
- Возможность грабить прокси через POST|GET|cookie и даже через proxy

- Возможность добавлять свои сайты для грабинга (никакого выбора "порт/страна/диапазон ip" - или сразу список или зря потерянное Ваше время, ищите сразу рабочую ссылку со списком проксей)
- Маска простейшая, на абсолютную корректность не проверяется (на то есть таймаут и ваш AI):
/([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\:[0-9]+)/g
(пример: 127.0.0.1:8080 )
ибо если не придерживаются стандарта - ну и ну их
Выложена видеодемонстрация:
- грабим прокси
- сразу чекаем на валидность (после того, как обошли и пропарсили все сайты из списка в режиме POST + 10 потоков - хотите больше - эксперементируйте, чем больше таймаут - тем корректней результат, но тем больше вероятность, что прокси фиговая)
-----------------------------------------------------------------
В комплекте ссылка на скрипт:
===> Toolza1.0 <===
и ссылки на видео(все тесты на реальных сайтах):
режим MySql5 - сжатый(2,06 Мб), распаковынный(89,5 Мб)
режим MySql4 brute tables & columns+proxy+POST-метод - сжатый(0,98 Мб), распаковынный(48 Мб)
режим LFI/READER/Load_file() bruter - сжатый(3,12 Мб), распаковынный(120 Мб)
режим Blind MySql5 - от версии до получения паролей - сжатый(4,90 Мб), распаковынный(336 Мб)
режим TURBO-MODE
режим MD5-TURBO-MODE
режим FTP checker
режим PROXY checker
режим MySql column number bruter
режим PROXY grabber
режим FTP bruter
режим MySql inj NAME_CONST
режим MSSQL injection
режим PostgreSQL injection
режим Sybase SQL injection
режим Ms Access SQL injection
режим Oracle SQL injection
режим SOCKS mode
режим Firebird/Interbase SQL injection
режим Blind SQL injection LOAD_FILE (file_priv=Y)
------------------------------
Работа скрипта в любом режиме реализована на сокетах, никаких дополнительных модулей не требуется