Авторские статьи Мануал к SQL Injection TooL 3

Discussion in 'Статьи' started by SQLHACK, 21 May 2007.

  1. SQLHACK

    SQLHACK Остались только слоны

    Joined:
    27 Sep 2006
    Messages:
    437
    Likes Received:
    372
    Reputations:
    407
    1. Введение.
    Вообщем вот наконец то руки дошли до того чтобы написать мануал к моей проге :D . Так что на 95% вопросов по проге вы найдёте ответ тут.

    2.Начинаем юзать.

    Первое что надо ввести в строку URL путь к уязвимому скрипту, порт HTTP сервера, настроить прогу на работу с прокси сервером на вкладке SETTINGS-->MAIN, установить таймаут ответа сервера на вкладке SETTINGS-->MAIN в миллисекундах и выбрать метод атаки п.2.1.

    2.1.1 Метод GET
    Метод используется когда инъекция присутствует в GET параметре.
    Code:
    Пример: http://www.target.ru/vulnscript.php?id=1
    Если уязвим параметр id , запрос на сервер принимает вид
    Code:
    http://www.target.ru/vulnscript.php?id=1{SQL}
    2.1.2 Метод GET(With Cookie)
    Метод используется когда инъекция присутствует в кукисах, но используется GET
    Code:
    Пример: http://www.target.ru/vulnscript.php?id=1
    Если уязвим параметр VulnCook в кукисах, запрос на сервер принимает вид

    Code:
    GET /vulnscript.php?id=1 HTTP/1.0
    Host: www.target.ru
    Cookie: VulnCook={SQL}
    Connection: Close
    Стоит отметить , что если используются несколько параметров кукисов, то все неуязвимые параметры вводятся в таблицу, которая появляется по нажатии кнопки Cookie parameters, а уязвимый параметр вводится в поле Vulnerable parameter, а его обычное значение вводится в поле Value, собственно тот же принцип используется для POST параметров.

    2.1.3 Метод Cookie(GET)
    Метод используется когда инъекция присутствует в GET параметре, но на сервер надо отправлять в заголовке определённый кукис(NeedCook), например для авторизации
    Code:
    Пример: http://www.target.ru/vulnscript.php?id=1{SQL}
    Если уязвим параметр id, запрос на сервер принимает вид

    Code:
    GET /vulnscript.php?id=1{SQL} HTTP/1.0
    Host: www.target.ru
    Cookie: NeedCook=phpsession
    Connection: Close
    2.1.4 Метод POST
    Метод используется когда инъекция присутствует в POST параметре.
    Code:
    Пример: http://www.target.ru/vulnscript.php
    Если уязвим параметр id , запрос на сервер принимает вид

    Code:
    POST /vulnscript.php?id=1 HTTP/1.0
    Host: www.target.ru
    Connection: Close
    
    Id={SQL}
    2.1.5 Метод POST(With Cookie)-очень редкий случай
    Метод используется когда инъекция присутствует в кукисах, но используется POST
    Code:
    Пример: http://www.target.ru/vulnscript.php
    Если уязвим параметр VulnCook в кукисах, запрос на сервер принимает вид

    Code:
    POST /vulnscript.php HTTP/1.0
    Host: www.target.ru
    Cookie: VulnCook={SQL}
    Connection: Close
    2.1.6 Метод Cookie(POST)
    Метод используется когда инъекция присутствует в POST параметре, но на сервер надо отправлять в заголовке определённый кукис(NeedCook), например для авторизации
    Code:
    Пример: http://www.target.ru/vulnscript.php
    Если уязвим параметр id, запрос на сервер принимает вид

    Code:
    POST /vulnscript.php?id=1{SQL} HTTP/1.0
    Host: www.target.ru
    Cookie: NeedCook=phpsession
    Connection: Close
    
    id=1{SQL}
    
    2.2 Ключевое слово или фраза (Текстовое поле String)

    Сюда вводится слово которое мы можем найти таким способом.

    Пример для метода GET,
    Cначала смотрим
    Code:
    http://www.target.ru/vulnscript.php?id=1
    Потом смотрим
    Code:
    http://www.target.ru/vulnscript.php?id=2
    находим то что есть здесь
    Code:
    http://www.target.ru/vulnscript.php?id=1
    чего нет тут(сравниваем так сказать)
    Code:
    http://www.target.ru/vulnscript.php?id=2
    Рядом есть поле в котором есть значение FOUND и NOT FOUND, он как раз и нужен для того чтобы выбирать метод поиска,

    FOUND - Этот кусочек кода, или фразы берётся за основу правильности (положительного заключения о том , что инъекция произведена правильно)

    NOT FOUND - Этот кусочек кода, или фразы берётся за основу НЕ правильности
    (тоже положительного заключения о том , что инъекция произведена правильно)

    TIP: Для автоматизации поиска можно использовать кнопку AUTO DETERMINE, но стоит отметить что тут может быть ложное определение или ложное не определение, когда кусок ключевое слово находится внутри тегов.

    2.3 Галочка Use Basic Authorization и текстовые поля Login и Password служат для того чтобы проходить авторизацию для входа в определённые места сайта или для доступа к файлам.

    3.1 Далее надо определить количество полей которые используются в запросе к БД, это можно сделать нажав на кнопку «LET KNOW QUANTITY»

    Тут есть несколько вариантов для просчёта:

    3.1.1 Выпадающее меню «USE METHOD»
    Тут можно определить каким методом производить просчёт
    - UNION SELECT
    - ORDER BY
    - GROUP BY
    Вообще самым частым методом является ORDER BY и UNION SELECT
    Но предпочтительным методом для программы является UNION SELECT, так как этот метод сразу определяет и поля вывода(текстовое поле FIELD SUPPORTS PRINTING), необходимые для нескольких функций программы.

    Стоит отметить то что если вы определяли количество полей запроса методами ORDER BY и GROUP BY , и успешно определили, то стоит указать стартовое количество полей для поиска и конечное равным найденному кол-ву и выбрать метод UNION SELECT для определения полей с выводом, и нажать кнопку «LET KNOW QUANTITY» ещё раз.

    3.1.2 Галочка Determine suppots printing fields using LIMIT
    Она нужна как альтернативный способ поиска полей с выводом.

    NOTE: можно так же заменить значение уязвимого параметра на не существующее значение, чтобы определить поля с выводом, опять же комбинируя это с галочкой 3.1.2

    После удачного подбора количества полей, если вы используете метод GET, у вас появится строка в поле Work URL, нажав кнопку «Show in Browser» у вас откроется этот запрос в браузере.

    4.1 Идентификация БД (SQL Injections -->Identifying DB)
    4.1.1 Type of DB - В данный момент программа может определить два типа БД , это MySQL и MSSQL

    4.1.2 USER() – имя пользователя базы данных от лица которого осуществляется подключение к БД

    Есть 3 варианта определения.

    UNION – самый приемлемый способ определения, серверу при этом посылается 1 запрос для определения всего значения сразу.

    TAKE ONE SYMBOL – посимвольное определение, брутит по одному символу.
    Причем интервал можно указать на закладке настроек.
    BRUTE –посимвольное определение, брутит всю стоку.

    Оба варианта, для использования в MySQL 3, или при не возможности определения стандартными способами. Ну или для камикадзе.:)

    4.1.3 DATABASE() – имя базы данных к которой подключается скрипт для выполнения запроса.
    Способ работы аналогичен USER() п.4.1.2

    4.1.4 VERSION() – версия базы данных к которой подключается скрипт для выполнения запроса.
    Способ работы аналогичен USER() п.4.1.2

    4.1.5 выпадающее меню CONVERT может помочь при определении, значений используя UNION, когда база использует одну кодировку, а значения USER(),DATABASE(),VERSION() используют другую.

    5.1 Брут названий таблиц и полей полей.
    (SQL Injections -->Identifying DB-->MySQL/MSSQL)

    Используется для перебора названий , как сказано выше.+
    Для успешного перебора у вас должно быть подобрано количество полей по описанию в п.3.1.1

    Тут отмечу что при переборе используются слова из внешних текстовых словарей, поэтому их перед началом работы надо подключить на вкладке SETTINGS-->DICTIONARY.
    Словари имеют 4 типа
    - Словарь таблиц (Table dictionary)
    - Словарь полей (Field dictionary)
    - Словарь префиксов (Prefix dictionary)
    - Словарь суффиксов (Suffix dictionary)

    NOTE: На той же вкладке их можно отредактировать
    .
    Для использования словарей префиксов и суффиксов вы должны отметить соответствующие галочки на вкладке (SQL Injections -->Identifying DB-->MySQL/MSSQL)

    «Use prefix from file when bruteforce tables and fields»
    «Use suffix from file when bruteforce tables and fields»

    Для постоянного использования одного префикса или суффикса, вы можете их вписать в поля Prefix и Suffix. Тогда они не будут браться из словарей.

    Далее нажимаем «GET TABLE NAMES»

    При этом если у вас все слова из словаря оказываются в этом списке, то настройки программы не верны.

    После успешного перебора, у вас выведется существующие таблице в атакуемой базе, вам надо выбрать нужную вам таблицу так чтобы вверху в сером поле появилось её название и продолжить сканировать таблицу на предмет нахождения названий полей, нажав кнопку «GET FIELD NAMES»

    NOTE: к названиям полей можно добавлять префиксы и суффиксы из словарей, программа у вас это спросит когда вы нажмёте кнопку «GET FIELD NAMES».

    6.1 Получение названий таблиц и полей используя таблицу INFORMATION_SCHEMA.
    (SQL Injections -->Identifying DB-->DUMP INF_SCH)
    Актуально для MySQL5 и MSSQL


    Функция будет работать если у вас есть хотя бы одно поле вывода, и определено количество полей.

    Есть 2 варианта.
    -Table names only -- получение только названий таблиц
    -Table and column names – получение названий таблиц и колонок в них.

    Так же есть ограничитель получения данных , верхний уровень (FROM) по-умолчанию установлен 16, так как первых 15 таблиц стандартные и не несут большой информации.

    Кнопка «GO DUMP» , запускает процесс получения данных.
    Полученные данные можно сохранить в файл, нажав кнопку «SAVE TO FILE»

    Есть выпадающее меню «Convert», суть меню и его работа идентична п.4.1.5

    7.1 Посимвольный брут произвольных данных
    (SQL Injections -->OneChar BruteForce)
    Актуально MySQL начиная с версии 4.1 и MSSQL.
    Используется для посимвольного брута данных из таблицы

    Интервал брута берётся с вкладки SETTINGS-->MAIN.

    Можно использовать запросы типа, SELECT id FROM news

    Кнопка «Preview SQL query» показывает предварительный запрос к серверу

    Кнопка «GET RESULT» запускает процесс брута.

    8.1 Получение данных из БД. (SQL Injections-->Data BruteForce)
    Актуально для MySQL 4 и MSSQL


    Функция будет работать если у вас есть хотя бы одно поле вывода, и определено количество полей.

    Для начала надо заполнить поле Table названием нужной таблицы.
    Далее надо добавить в список названия нужных полей, вписывая эти названия в поле снизу от списка, и нажимая кнопку «ADD FIELD».

    Названия полей можно получить используя вкладки 5.1 и 6.1.

    NOTE: удалить ненужные поля из списка можно кнопкой «REMOVE FIELD»

    Далее настраивается стартовая и конечная позиция строки. Для того чтобы проверить правильность настроек можно нажать кнопку «TEST», если всё ок, то у вас должно будет появится значение выбранных полей разделённых двоеточием “:” в списке соответствующих первой строке в БД в поле слева от кнопки «TEST»

    Если значение появилось можно приступать к получению данных, для этого нажмите кнопку «GET IT».

    Полученные данные можно сохранить в файл , нажав кнопку «SAVE TO FILE»

    9.1 Back connect from MSSQL
    Используется для того чтобы сделать бэкконнект из БД. При этом используется процедура БД MSSQL master..xp_cmdshell , для осуществления бэкконекта, надо проверить IP-адрес в строке и установить путь к NetCat на вкладке SETTINGS-->MAIN.

    При удачной эксплуатации у вас появится командная консоль в которой будет открыто соединение с сервером.
    10.1 Работа с файлами

    10.1.1 MySQL
    Используется для работы с файлами через SQL – инъекцию

    10.1.1.1 Чтение файла

    Функция будет работать если у вас есть хотя бы одно поле вывода, и определено количество полей.

    Вам необходимо прописать абсолютный путь к файлу на сервере в поле нижнего фрейма.

    Пример: /home/user/public_hmtl/index.php

    И нажать кнопку «READ». В случае удачного чтения, файл появится на экране в окне редактора, где вы можете сохранить этот файл, воспользовавшись пунктом меню «SAVE FILE»

    10.1.1.2 Загрузка файла на сервер

    Функция будет работать если :
    1) у вас есть хотя бы одно поле вывода,
    2) определено количество полей.
    3) В КОНФИГУРАЦИИ СЕРВЕРА НЕ ДОЛЖНЫ ЭКРАНИРОВАТЬСЯ КАВЫЧКИ !!


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

    Тут есть 2 варианта заливки файла.
    - UNION – используется INTO OUTFILE (стандартный вариант)
    - ENCLOSED BY -- используется в MySQL начиная с версии 3 (Желательно использовать когда не работает 1 вариант)

    Текст файла для заливки на сервер вводятся в текстовое поле снизу.

    10.1.2 MSSQL
    Все делается по аналогии с п.10.1.1

    11.1 Терминал (Terminal)
    Используется для посылки произвольных пакетов на сервер, а также для просмотра ответа сервера (заголовка и тела ответа). Есть функция поиска в теле.

    Запрос пишется в «HTTP REQUEST»
    Заголовок ответа пишется «ANSWER: HTTP HEADER»
    Тело ответа пишется «ANSWER: HTTP BODY»

    Посылка запроса осуществляется по нажатию кнопки «SEND REQUEST»

    12.1 История (History)
    Тут отображаются все запросы к серверу, и дополнительная информация.
    Её можно сохранить , воспользовавшись пунктом меню «HISTORY-->SAVE LOG», или очистить её нажав там же «HISTORY-->CLEAR LOG»

    13.1 Настройки (Settings)
    13.1.1 Общие (Main)
    Перевод интерфейса (Path to language file).
    Путь для NetCat (Path to NetCat) – используется в п.9.1
    Настройки прокси (Proxy settings)
    - использовать прокси (галочка USE PROXY)
    - IP-адрес
    - Порт
    Символьный интервал (BruteForce symbol code interval) – используется в 4.1.2-4.1.5 и 7.1

    Меню 1 . Закрывать SQL выражение (Close SQL) – используется для того чтобы отрубить оригинальный запрос, что бы не появлялась ошибка.
    Для каждой базы используются разные «Закрывашки»
    - MySQL = /*
    - MSSQL = --

    Меню 2 . Изменить кавычки на аналог (Change quotes to)
    Используется чтобы обойти фильтрацию с скриптах.

    Меню 3 . Изменить пробел на аналог (Change space to)
    Используется чтобы обойти фильтрацию с скриптах

    Остальные возможности:

    Главное меню.

    Double Tools – увеличивается окно программы, можно произвольно компоновать вкладки программы, для удобства, например любое окно с терминалом или историей, кодерам и декодерами

    Default Settings – сбрасываются все настройки программы.

    STOP – останавливает работу программы.

    Раздел утилит (Tools)

    Содержит разнообразные кодеры и декодеры строк, таких как HEX,BASE64,URL-LIKE, PHP CHR


    Ваш SQLHack.

    PS прогу качать тут
     
    _________________________
    #1 SQLHACK, 21 May 2007
    Last edited: 22 Jun 2007
    35 people like this.
  2. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Наш SQLHack! Респект тебе и +++++
     
  3. cmpec

    cmpec Banned

    Joined:
    25 Oct 2007
    Messages:
    6
    Likes Received:
    2
    Reputations:
    0
    вот счас тока прочитал , слов нет просто РЕСПЕКТ (все круто и прога и статья тоже )Все таки есть люди в РОССИЙ так держать мен )))
     
  4. Spaise

    Spaise Elder - Старейшина

    Joined:
    21 Mar 2008
    Messages:
    33
    Likes Received:
    5
    Reputations:
    0
    Классная программа и мануал тоже! :D
     
    #4 Spaise, 29 Mar 2008
    Last edited: 30 Mar 2008
  5. sboy20042

    sboy20042 Banned

    Joined:
    7 Jul 2007
    Messages:
    318
    Likes Received:
    376
    Reputations:
    128
    большое спасибо!
     
    4 people like this.
  6. puyol

    puyol New Member

    Joined:
    8 Mar 2008
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    хороший мануал +
     
  7. tick

    tick Elder - Старейшина

    Joined:
    10 Nov 2007
    Messages:
    35
    Likes Received:
    11
    Reputations:
    -12
    спасиб
     
  8. Zolden

    Zolden Elder - Старейшина

    Joined:
    24 Jun 2007
    Messages:
    232
    Likes Received:
    37
    Reputations:
    -2
    Супер! Тока сегодня хотел узнать поближе об Sql атаках
     
  9. shawn3k

    shawn3k Banned

    Joined:
    11 Apr 2008
    Messages:
    3
    Likes Received:
    2
    Reputations:
    0
    Мда=\

    Спасибо ТС сейчас ломанул пачку сайтов с помощью тулзы и мануала...
     
  10. Blad94

    Blad94 New Member

    Joined:
    4 Nov 2007
    Messages:
    25
    Likes Received:
    2
    Reputations:
    0
    спасибо классная статейка, только прога что-то не качаецо
     
  11. 1SeTh

    1SeTh Elder - Старейшина

    Joined:
    17 Feb 2006
    Messages:
    164
    Likes Received:
    18
    Reputations:
    5
    а как убрать кавычку если мне в запросе не надо пользоватся им?

    Автор объясни для чего служит опция Quote analog?
     
    #11 1SeTh, 4 Jun 2008
    Last edited: 29 Jun 2008
  12. Grazdus

    Grazdus New Member

    Joined:
    9 Jul 2008
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Большое спс и за тулзу и за мануал к ней. Всё полноценно описанно!
     
  13. SQLHACK

    SQLHACK Остались только слоны

    Joined:
    27 Sep 2006
    Messages:
    437
    Likes Received:
    372
    Reputations:
    407
    http://dbattack.com/
     
    _________________________
  14. Devoldini

    Devoldini Elder - Старейшина

    Joined:
    28 Jun 2008
    Messages:
    18
    Likes Received:
    5
    Reputations:
    -6
    Обновите ссылку!

    Быстрее, мне срочно нуно. Эта тулза точно работает, кто тестил?
     
  15. xxx-xxx

    xxx-xxx Member

    Joined:
    12 Nov 2006
    Messages:
    17
    Likes Received:
    7
    Reputations:
    0
    http://dbattack.com/files/setup.sipt4.rar
     
  16. Omen666

    Omen666 Elder - Старейшина

    Joined:
    3 Aug 2006
    Messages:
    339
    Likes Received:
    503
    Reputations:
    36
    спасибо
     
  17. EvilHacker

    EvilHacker Elder - Старейшина

    Joined:
    22 Jan 2007
    Messages:
    0
    Likes Received:
    11
    Reputations:
    -3
    Cкиньте пожалуйста прогу ссылки непашут(
     
  18. EvilHacker

    EvilHacker Elder - Старейшина

    Joined:
    22 Jan 2007
    Messages:
    0
    Likes Received:
    11
    Reputations:
    -3
    где скачать рабочию? или еще вопрос) чем определить на сайте уязвимый скрипт и его название?
     
  19. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    неужели проект закрыт?
     
  20. SQLHACK

    SQLHACK Остались только слоны

    Joined:
    27 Sep 2006
    Messages:
    437
    Likes Received:
    372
    Reputations:
    407
    Проект делают (вроде !?:) ) другие люди, когда релиз не знаю(
     
    _________________________