Загрузка...

SQL INJECTION from Beginner to Professional (Lesson Two)

Thread in Web vulnerabilities created by pentest Feb 23, 2023. (bumped Aug 5, 2023) 1878 views

  1. pentest
    pentest Topic starter Feb 23, 2023 Banned
    Приветствую на моем втором уроке по 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. View previous comments (1)
    2. overlocker_inactive5415977
      pentest, ну понимать ты конечно будешь, а при реальном тестировании на проникновение вместо того чтобы разово попробывать получить доступ ко всей базе данных с помощью sqlmap ты будешь ручками колонки перебирать или как.
    3. pentest Topic starter
      overlocker_inactive5415977, Если ты умеешь только раскручивать с помощью SQLMAP, то ты не пентестер - ты каха -какаха)Надо уметь ручками , чтобы обходить WAF и просто понимать
    4. overlocker_inactive5415977
      pentest, ты реально аут ,я тебе говорю о том чтобы "ПОПРОБЫВАТЬ" получить доступ а не обойти WAF,перебирать руками.
    5. View the next comments (2)
  3. QuarNET
    QuarNET Feb 28, 2023 # UniversalChecker: zelenka.guru/threads/5047602 1142 Nov 23, 2022
    Дружище, это годно! Жду третью часть.
     
    1. pentest Topic starter
      QuarNET, она готова)Кстати ты можешь подписаться на мой профиль , чтобы уведы приходили о новых статьях
  4. RedixeL
    RedixeL Mar 6, 2023 2 Oct 7, 2021
    Немного не понял, что значит "обрамление"
     
    1. pentest Topic starter
      RedixeL, Мы не видим бэк php от этого зависит какое обрамление нашего запроса будет , как кодер выбралю. Он мог сделать так "hello world" , а мог так 'world' , А Мог вообще вот ('hello world')
  5. ShadySoul
    ShadySoul May 20, 2023 0 Apr 15, 2023
  6. MasuriDev
    MasuriDev May 29, 2023 Best замена VINFO -> zelenka.guru/threads/5558083/ 6774 Jun 5, 2021
    годно, для начинающих пентестеров имба
     
  7. CrazyRacoon
    CrazyRacoon Dec 13, 2023 13 Jul 29, 2018
    Ошибка ProgrammingError высвечивается не на всех сайтах при вводе одинарной кавычки, я правильно понимаю?
     
  8. CrazyRacoon
    CrazyRacoon Dec 16, 2023 13 Jul 29, 2018
    Где мне взять сайт, на котором при вводе одинарной кавычки в login или пароль мне выдаст ошибку :what2:
     
Loading...
Top