Загрузка...

Инструкция по использованию jSQL Injection — многофункциональной программы эксплуатации SQL инъекций

Тема в разделе Веб уязвимости создана пользователем toyenowena 25 фев 2017. 3615 просмотров

  1. toyenowena
    toyenowena Автор темы 25 фев 2017 Заблокирован(а) 132 10 фев 2017
    jSQL Injection может пригодиться в ситуациях, когда вас интересуют: поиск SQL-инъекций и админок, закачка шеллов, файлов и чтение содержимого файлов сервера, ****-форс хешей, массовая проверка сайтов, использование ****** и многое другое.

    Т.е. это весьма разносторонний комбайн, в котором прекрасно реализована главная функция — эксплуатация SQL-инъекций, и при этом весьма хорошо реализует все сопутствующие операции, которые обычно проделываются при обнаружении уязвимого сайта.

    Для обнаружения и эксплуатации SQL-инъекций мне всегда нравилась sqlmap. Это утилита командной строки, она умеет очень многое, использует всевозможные методы SQL-инъекций, пытается обходить защиты сервера, может закачивать шеллы и многое другое. Она также кроссплатформенная, актуальная и очень эффективная. Эта программа мне не перестала нравиться, но я считаю: чем больше альтернатив хороших и разных — тем лучше. К тому же, поскольку sqlmap крайне мощная и гибкая, то для программы командной строки это означает огромное количество разнообразных опций. Для новичков, особенно такие «продвинутые» операции как залив шелла, это может показаться слишком сложным.

    У jSQL Injection отличный графический интерфейс. Программа написана на Java, она является кроссплатформенной и очень нетребовательной к ресурсам. Файл программы, между прочим, занимает всего 2.3 мегабайта.

    Но начнём по порядку — с поиска кандидатов на взлом. Не будет лишним напомнить, что взлом является уголовно наказуемым преступлением. Поэтому проявляйте благоразумность — не делайте ничего такого, что нарушает закон. Идеальным (с точки зрения юридической чистоты) является использование для обучения уязвимого скрипта на локалхосте или в одной из специализированных сред, которых сейчас имеется большое количество.

    1. Поиск уязвимых к SQL-инъекциям сайтов.
    Самым лучшим способом является поиск в Гугл по доркам.
    Код

    inurl:item_id= inurl:review.php?id= inurl:hosting_info.php?id=
    inurl:newsid= inurl:iniziativa.php?in= inurl:gallery.php?id=
    inurl:trainers.php?id= inurl:curriculum.php?id= inurl:rub.php?idr=
    inurl:news-full.php?id= inurl:labels.php?id= inurl:view_faq.php?id=
    inurl:news_display.php?getid= inurl:story.php?id= inurl:artikelinfo.php?id=
    inurl:index2.php?option= inurl:look.php?ID= inurl:detail.php?ID=
    inurl:readnews.php?id= inurl:newsone.php?id= inurl:index.php?=
    inurl:top10.php?cat= inurl:aboutbook.php?id= inurl:profile_view.php?id=
    inurl:newsone.php?id= inurl:material.php?id= inurl:category.php?id=
    inurl:event.php?id= inurl:opinions.php?id= inurl:publications.php?id=
    inurl:product-item.php?id= inurl:announce.php?id= inurl:fellows.php?id=
    inurl:sql.php?id= inurl:rub.php?idr= inurl:downloads_info.php?id=
    inurl:index.php?catid= inurl:galeri_info.php?l= inurl:prod_info.php?id=
    inurl:news.php?catid= inurl:tekst.php?idt= inurl:shop.php?do=part&id=
    inurl:index.php?id= inurl:newscat.php?id= inurl:productinfo.php?id=
    inurl:news.php?id= inurl:newsticker_info.php?idn= inurl:collectionitem.php?id=
    inurl:index.php?id= inurl:rubrika.php?idr= inurl:band_info.php?id=
    inurl:trainers.php?id= inurl:rubp.php?idr= inurl:product.php?id=
    inurl:buy.php?category= inurl:offer.php?idf= inurl:releases.php?id=
    inurl:article.php?ID= inurl:art.php?idm= inurl:ray.php?id=
    inurl:play_old.php?id= inurl:title.php?id= inurl:produit.php?id=
    inurl:declaration_more.php?decl_id= inurl:news_view.php?id= inurl:pop.php?id=
    inurl:pageid= inurl:select_biblio.php?id= inurl:shopping.php?id=
    inurl:games.php?id= inurl:humor.php?id= inurl:productdetail.php?id=
    inurl:page.php?file= inurl:aboutbook.php?id= inurl:post.php?id=
    inurl:newsDetail.php?id= inurl:ogl_inet.php?ogl_id= inurl:viewshowdetail.php?id=
    inurl:gallery.php?id= inurl:fiche_spectacle.php?id= inurl:clubpage.php?id=
    inurl:article.php?id= inurl:communique_detail.php?id= inurl:memberInfo.php?id=
    inurl:show.php?id= inurl:sem.php3?id= inurl:section.php?id=
    inurl:staff_id= inurl:kategorie.php4?id= inurl:theme.php?id=
    inurl:newsitem.php?num= inurl:news.php?id= inurl:page.php?id=
    inurl:readnews.php?id= inurl:index.php?id= inurl:shredder-categories.php?id=
    inurl:top10.php?cat= inurl:faq2.php?id= inurl:tradeCategory.php?id=
    inurl:historialeer.php?num= inurl:show_an.php?id= inurl:product_ranges_view.php?ID=
    inurl:reagir.php?num= inurl:preview.php?id= inurl:shop_category.php?id=
    inurl:Stray-Questions-View.php?num= inurl:loadpsb.php?id= inurl:transcript.php?id=
    inurl:forum_bds.php?num= inurl:opinions.php?id= inurl:channel_id=
    inurl:game.php?id= inurl:spr.php?id= inurl:aboutbook.php?id=
    inurl:view_product.php?id= inurl:pages.php?id= inurl:preview.php?id=
    inurl:newsone.php?id= inurl:announce.php?id= inurl:loadpsb.php?id=
    inurl:sw_comment.php?id= inurl:clanek.php4?id= inurl:pages.php?id=
    inurl:news.php?id= inurl:participant.php?id=
    inurl:avd_start.php?avd= inurl:download.php?id=
    inurl:event.php?id= inurl:main.php?id=
    inurl:product-item.php?id= inurl:review.php?id=
    inurl:sql.php?id= inurl:chappies.php?id=
    inurl:material.php?id= inurl:read.php?id=
    inurl:clanek.php4?id= inurl:prod_detail.php?id=
    inurl:announce.php?id= inurl:viewphoto.php?id=
    inurl:chappies.php?id= inurl:article.php?id=
    inurl:read.php?id= inurl:person.php?id=
    inurl:viewapp.php?id= inurl:productinfo.php?id=
    inurl:viewphoto.php?id= inurl:showimg.php?id=
    inurl:rub.php?idr= inurl:view.php?id=
    inurl:galeri_info.php?l= inurl:website.php?id=
    Открывайте сайты по одному из результатов поиска и пробуйте добавлять кавычку к переменной. Например, адрес сайта:

    http://rsite.ru/rub.php?id=5

    Тогда я пробую так:

    http://rsite.ru/rub.php?id=5'

    Если появляется какое-либо сообщение об ошибке SQL, то высока вероятность того, что сайт уязвим к SQL-инъекции.

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

    Ещё можно попытать удачу поиском по ошибкам:

    • inurl:index.php?id= intext:"mysql_fetch_array"
    • inurl:advsearch.php?module= & intext:sql syntax
    • "CHARACTER_SETS" "COLLATION_CHARACTER_SET_APPLICABILITY"
    • "Unable to jump to row" "on MySQL result index" "on line"
    • "[SQL Server Driver][SQL Server]Line 1: Incorrect syntax near" -forum -thread -showthread
    • "Warning: mysql_query()" "invalid query"
    • intitle:"Error Occurred While Processing Request"
    • "You have an error in your SQL syntax near"
    • "mySQL error with query"
    • intext:"Access denied for" intitle:"Shopping cart"
    • "supplied argument is not a valid MySQL result resource"
    Алгоритм действий такой же — открывайте сайты по одному и пробуйте вставлять кавычку.

    Совершенно точно не стоит искать SQL-инъекции в популярных движках. Даже если они там и обнаруживаются, то практически всегда оказываются трудно эксплуатируемыми. Если вы читаете эту инструкцию, то это точно (пока) не ваш уровень. Популярные движки могут стать уязвимыми из-за уязвимых плагинов (особенно самописных). Но, опять же, это пока не наш уровень.

    2. Установка jSQL Injection
    jSQL Injection уже предустановлена в Kali Linux. Но версия там (по крайней мере на момент написания) уже довольно старая (0.5), а доступна уже 0.72. Учитывая, что jSQL Injection ставится элементарно — в одну команду, то можно загрузить самую свежую с официального сайта:
    Код
    https://github.com/ron190/jsql-injection/releases

    [IMG]
    Согласитесь, это было совсем просто — потраченные 5 секунд времени стоят того, чтобы работать в самой свежей версии.

    Между прочим, это одна из тех программ для пентестинга, которые прекрасно работают в Windows.

    Скачайте последнюю версию с официального сайта: https://github.com/ron190/jsql-injection/releases

    Запустите скаченный файл двойным кликом (нужно иметь виртуальную машину Java).

    3. Анонимность при проверке сайта на SQL-инъекции
    Настройка ****** в Kali Linux
    [Раздел в разработке]

    Настройки работы через ****** в jSQL Injection
    [Раздел в разработке]

    [IMG]

    4. Проверка сайта на SQL-инъекции с jSQL Injection
    Работа с программой крайне проста. Достаточно ввести адрес сайта и нажать ENTER.

    На следующем скриншоте видно, что сайт уязвим сразу к трём видам SQL-инъекций (информация о них указана в правом нижнем углу). Кликая на названия инъекций можно переключить используемый метод:

    [IMG]
    Также нам уже выведены имеющиеся базы данных.

    Можно посмотреть содержимое каждой таблицы:

    [IMG]
    Обычно, самым интересным в таблицах являются учётные данные администратора.

    Если вам повезло и вы нашли данные администратора — то радоваться рано. Нужно ещё найти админку, куда эти данные вводить.

    5. Поиск админок с jSQL Injection
    Для этого переходите на следующую вкладку. Здесь нас встречает список возможных адресов. Можете выбрать одну или несколько страниц для проверки:

    [IMG]
    Удобство заключается в том, что не нужно использовать другие программы.

    К сожалению, нерадивых программистов, которые хранят пароли в открытом виде, не очень много. Довольно часто в строке пароля мы видим что-нибудь вроде

    8743b52063cd84097a65d1633f5c74f5

    Это хеш. Расшифровать его можно ****форсом. И… jSQL Injection имеет встроенный ****форсер.

    6. ****форсинг хешей с помощью jSQL Injection
    Несомненным удобство является то, что не нужно искать другие программы. Здесь имеется поддержка множества самых популярных хешей.

    Это не самый оптимальный вариант. Для того, чтобы стать гуру в расшифровке хешей, рекомендуется Книга «Продвинутый взлом паролей с *Hashcat» на русском языке.

    Но, конечно, когда под рукой нет другой программы или нет времени на изучение, jSQL Injection со встроенной функцией ****-форса придётся очень кстати.

    [IMG]
    Присутствуют настройки: можно задать какие символы входят в пароль, диапазон длины пароля.

    7. Операции с файлами после обнаружения SQL-инъекций
    Кроме операций с базами данных — их чтение и модификация, в случае обнаружения SQL-инъекций возможно выполнение следующих файловых операций:




      • чтение файлов на сервере
      • выгрузка новых файлов на сервер
      • выгрузка шеллов на сервер
    И всё это реализовано в jSQL Injection!

    Есть ограничения — у SQL-сервера должны быть файловые привилегии. У разумных системных администраторов они отключены и доступа к файловой системе получить не удастся.

    Наличие файловых привилегий достаточно просто проверить. Перейдите в одну из вкладок (чтение файлов, создание шелла, закачка нового файла) и попытайтесь выполнить одну из указанных операций.

    Ещё очень важное замечание — нам нужно знать точный абсолютный путь до файла с которым мы будем работать — иначе ничего не получится.


    Посмотрите на следующий скриншот:

    [IMG]
    На любую попытку операции с файлом нам отвечают: No FILE privilege (нет файловых привелегий). И ничего здесь поделать нельзя.

    Если вместо этого у вас другая ошибка:
    Код
    Problem writing into [название_каталога]
    Это означает, что вы неправильно указали абсолютный путь, в который нужно записывать файл.

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

    Такая запись (строка Win64) даёт основание нам предположить, что мы имеем дело с ОС Windows:
    Код

    Keep-Alive: timeout=5, max=99
    Server: Apache/2.4.17 (Win64) PHP/7.0.0RC6
    Connection: Keep-Alive
    Method: HTTP/1.1 200 OK
    Content-Length: 353
    Date: Fri, 11 Dec 2015 11:48:31 GMT
    X-Powered-By: PHP/7.0.0RC6
    Content-Type: text/html; charset=UTF-8

    Здесь у нас какой-то из Unix (*BSD, Linux):
    Код

    Transfer-Encoding: chunked
    Date: Fri, 11 Dec 2015 11:57:02 GMT
    Method: HTTP/1.1 200 OK
    Keep-Alive: timeout=3, max=100
    Connection: keep-alive
    Content-Type: text/html
    X-Powered-By: PHP/5.3.29
    Server: Apache/2.2.31 (Unix)
    А здесь у нас CentOS:
    Код

    Method: HTTP/1.1 200 OK
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Set-Cookie: PHPSESSID=9p60gtunrv7g41iurr814h9rd0; path=/
    Connection: keep-alive
    X-Cache-Lookup: MISS from t1.hoster.ru:6666
    Server: Apache/2.2.15 (CentOS)
    X-Powered-By: PHP/5.4.37
    X-Cache: MISS from t1.hoster.ru
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Date: Fri, 11 Dec 2015 12:08:54 GMT
    Transfer-Encoding: chunked
    Content-Type: text/html; charset=WINDOWS-1251
    В Windows типичной папкой для сайтов является C:\Server\data\htdocs\. Но, на самом деле, если кто-то «додумался» делать сервер на Windows, то, весьма вероятно, этот человек ничего не слышал о привилегиях. Поэтому начинать попытки стоит прямо с каталога C:/Windows/:
    [IMG]
    Как видим, всё прошло прекрасно с первого раза.

    Но вот сами шеллы jSQL Injection у меня вызывают сомнения. Если есть файловые привилегии, то вы вполне можете закачать что-нибудь с веб-интерфейсом.

    8. Массовая проверка сайтов на SQL-инъекции
    И даже эта функция есть у jSQL Injection. Всё предельно просто — загружаете список сайтов (можно импортировать из файла), выбираете те, которые хотите проверить и нажимаете соответствующую кнопку для начала операции.
    [IMG]
    Вывод по jSQL Injection
    jSQL Injection хороший, мощный инструмент для поиска и последующего использования найденных на сайтах SQL-инъекций. Его несомненные плюсы: простота использования, встроенные сопутствующие функции. jSQL Injection может стать лучшим другом новичка при анализе веб-сайтов.

    Из недостатков я бы отметил невозможность редактирования баз данных (по крайней мере я этого функционала не нашёл). Как и у всех инструментов с графическим интерфейсом, к недостаткам этой программы можно приписать невозможность использования в скриптах. Тем не менее некоторая автоматизация возможна и в этой программе — благодаря встроенной функции массовой проверки сайтов.

    Программой jSQL Injection пользоваться значительно удобнее чем sqlmap. Но sqlmap поддерживает больше видов SQL-инъекций, имеет опции для работы с файловыми файерволами и некоторые другие функции.

    Итог: jSQL Injection — лучший друг начинающего хакера.
    #моястатья
     
    25 фев 2017 Изменено
  2. yasher1_inactive69485
    Если не копипаст, то очень даже годно!
     
  3. Limbo49005
    Limbo49005 25 фев 2017 ♛๑۩۩๑ VIP ๑۩۩๑♛ 3275 5 сен 2016
    Если сам , то крос , я бы не стал столько расписывать . хоть и не так уж и крутая тема . но всё же для новичков пойдёт .
     
Загрузка...
Top