Загрузка...

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

Тема в разделе Веб уязвимости создана пользователем pentest 23 фев 2023. (поднята 5 авг 2023) 1801 просмотр

Загрузка...
  1. pentest
    pentest Автор темы 23 фев 2023 Заблокирован(а)
    Приветствую на моем втором уроке по SQL INJ.В прошлом уроке я рассказал про базовый синтаксис SQL и в целом , что такое SQL INJ в этом уроке я буду рассказывать по порядку обо всем.Поработаем с burp suite и другими инструментами:ok_love:
    Кто не читал первый урок , начните с него: https://zelenka.guru/threads/4992983

    Для начала разберемся , а какие угрозы могут быть , если на сайте есть SQL INJ?По факту ваш ресурс уже принадлежит на вам и с ним можно делать всё , что угодно.Удалять таблицы , выгружать дамп базы данных , обходить авторизацию , изменять контент и многое другое.Давайте попробуем обойти авторизацию используя только SQL INJECTION и Burp Suite intruder.

    В прошлом уроке пользователь попросил меня рассказать про дорки.Они нам понадобятся , ведь мы хотим найти сайт (жертву).Дорк оператор - это функция гугл поиска , то есть гугл поиск можно настроить как вам угодно , например , чтобы он искал определенные сайты с определенным контентом.Допустим я хочу найти сайт , который имеет домен .it и содержит страничку логин.Дорк запрос будет выглядеть вот так site:it inurl:login
    [IMG]
    Отлично , мы нашли итальянский сайт с авторизацией
    [IMG]
    Для начала нам нужно определить есть ли скуля , если да , то в каком поле:)
    Подставляем одинарную кавычку в поле Login , а пароль вводим любой и жмем войти
    [IMG]
    [IMG]
    Ошибка!Неверные данные.Значит поле login нам не подходит.Попробуем подставить в пароль одинарную кавычку.
    [IMG]
    Отлично , ошибка sql!Значит поле пароль уязвимо.

    " и ") - эти обрамления не выдают никакие ошибки , а значит они нам не подходят.У нас есть два варианта обрамления ' и ')

    Можно создать полезные нагрузки с этими обрамлениями и запустить через intruder.По сути , когда нас впустят , когда условие будет true.Как мы можем добиться true условия.Очень просто через математические равенства например.Вот пример полезных нагрузок:
    'or 1=1 -- -
    ' or true -- -
    'or 1*0=0 -- -
    1') or '2'='2' -- -
    1') or "2"="2" -- -
    b') or "2"="2" -- -
    можно придумать и много других , но суть проста.Найти уязвимое поле , подобрать обрамление и найти полезную нагрузку , которая подойдет.Нужно пробовать делать true условия , как с int (числами) так и со строчными значениями (они указываются в кавычках)

    Давайте запустим бурп и попробуем найти нужное.Ведь полезных нагрузок может быть много и к тому же нам нужно видеть больше полезной информации.
    [IMG]
    У бурпа есть собственный браузер , поэтому нет смысла настраивать ****** в вашем основном браузере - это неудобно.Жмем Open browser.
    [IMG]
    Жмем Intercept(перехватчик)
    Вводим любые данные в логин и пароль и жмем войти
    [IMG]
    У вас войти не получится , браузер просто залагает , т.к работает перехватчик.Моментально должен был прийти запрос.Давайте его посмотрим.
    [IMG]
    Ctrl+a (ВЫДЕЛЯЕМ ВСЁ) и отправляем в Intruder или можно использовать сочетание горячих клавиш CTRL + I.
    Нам бурп сам предложит места , которые он посчитает , что нужно поменять , но мы жмем clear И выделяем в параметре пароля наш пароль , который мы вводили на сайте.
    [IMG]
    [IMG]
    Далее щёлкаем на Payloads и настраиваем уже нашу атаку.
    [IMG]
    Нажимаем paste и наша полезная нагрузка вставилась.
    Прежде , чем нажать start attack перейдем в полезное поле
    [IMG]
    Настраиваем нашу атаку , чтобы она не была супер быстрой , иначе нас могут забанить или же сайт просто ляжет.Я настрою так:
    [IMG]
    Теперь жмём start attack!
    [IMG]
    у нас появляется вот такая таблица.Тут есть разные поля time, ответ от сервера , длина и т.д.Как вы понимаете результат , либо true , либо false и нам нужно найти значения , которые подойдут нам по ответу.
    [IMG]
    через Render мы можем смотреть , что происходит на сайте , если вписать полезную нагрузку , которую мы выбрали.Пока что просто ошибка SQL.

    Отлично!Мы нашли полезную нагрузку , которая отличается от других по длине
    [IMG]
    [IMG]
    Authorization
    В разметке видно , что мы авторизованы!

    Intruder имеет много и других настроек.Давайте расскажу про одну хитровыделанную)))
    Идем в options
    [IMG]
    [IMG]
    Добавляем ключевые слова , которые должно быть в response.Например я добавил authorization , т.к именно это мне надо.Но вы можете добавить свои например SQL, ERROR и другие , чтобы искать ошибку.
    [IMG]
    Теперь мы можем легко увидеть какая полезная нагрузка нам подошла.

    Отлично , мы узнали про burp suite intruder и про bypass admin.Теперь самое время узнать про DIOS (Dump IN one Shot) по названию уже можно понять , что будет вывод баз данных , таблиц , колонок одновременно и в красом виде.Эта атака основана на технике UNION.А значит нам надо будет определить кол-во колонок , т.к UNION не будет работать , если кол-во колонок отличается в запросе.
    [IMG]
    На сайте есть вот такое поле поиска.Для начала определим обрамление , вот виды их:
    '
    "
    ')
    ")
    и пустое
    Я нашел обрамление - одинарную кавычку.Теперь определим кол-во колонок.Воспользуемся запросом ниже , если будет ошибка , то значит колонок на одну меньше , чем указано.Сейчас покажу более понятнее...
    SQL
    'order by 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50 -- -
    Или можно так
    SQL
    'order by 1,10,20,30,40,50,60,70,80,90,100 -- -
    Появляется вот такая ошибка:
    [IMG]
    Неизвестная пятая колонка , а значит колонок всего четыре.Далее идет просто шаблонная раскрутка ( пэйлоады вы можете найти легко в интернете)

    Если вам понравился урок , то пишите отзывы.Могу в след.раз рассказать про BLIND и автоматизацию)
     
  2. overlocker_inactive5415977
    а зачем все далеко заходить если после того как ты подтвердил уязвимость не воспользоваться sqlmap и бюрпом(во вкладке user options -> display можешь поставить dark схему чтобы себе глаза не мазолить)
    ну сохраняешь реквест с бюрпа в отдельный файл и отдаешь все sqlmap
    затем он автоматически через найденную тобою форму попытается получить доступ к самой базе.
     
    1. Посмотреть предыдущие комментарии (2)
    2. pentest Автор темы
      overlocker_inactive5415977, Если ты умеешь только раскручивать с помощью SQLMAP, то ты не пентестер - ты каха -какаха)Надо уметь ручками , чтобы обходить WAF и просто понимать
    3. overlocker_inactive5415977
      pentest, ты реально аут ,я тебе говорю о том чтобы "ПОПРОБЫВАТЬ" получить доступ а не обойти WAF,перебирать руками.
      24 фев 2023 Изменено
    4. pentest Автор темы
  3. QuarNET
    QuarNET 28 фев 2023 # UniversalChecker: zelenka.guru/threads/5047602 1142 23 ноя 2022
    Дружище, это годно! Жду третью часть.
     
    1. pentest Автор темы
      QuarNET, она готова)Кстати ты можешь подписаться на мой профиль , чтобы уведы приходили о новых статьях
  4. RedixeL
    RedixeL 6 мар 2023 2 7 окт 2021
    Немного не понял, что значит "обрамление"
     
    1. pentest Автор темы
      RedixeL, Мы не видим бэк php от этого зависит какое обрамление нашего запроса будет , как кодер выбралю. Он мог сделать так "hello world" , а мог так 'world' , А Мог вообще вот ('hello world')
  5. ShadySoul
    ShadySoul 20 май 2023 0 15 апр 2023
  6. MasuriDev
    MasuriDev 29 май 2023 Best замена VINFO -> zelenka.guru/threads/5558083/ 6566 5 июн 2021
    годно, для начинающих пентестеров имба
     
  7. CrazyRacoon
    CrazyRacoon 13 дек 2023 13 29 июл 2018
    Ошибка ProgrammingError высвечивается не на всех сайтах при вводе одинарной кавычки, я правильно понимаю?
     
  8. CrazyRacoon
    CrazyRacoon 16 дек 2023 13 29 июл 2018
    Где мне взять сайт, на котором при вводе одинарной кавычки в login или пароль мне выдаст ошибку :what2:
     
Top