Здравия желаю! В статье я пройдусь по лабе со
План статьи:
Нам сказано:
Записали нужное.
Зайдём на главную страницу сайта и используем Burp Suite для перехвата и изменения запроса, содержащего TrackingId файла cookie. Для простоты предположим, что исходное значение файла cookie равно TrackingId=xyz
Докажем что параметр уязвим:
Проверяем существование базы данных!
Теперь нам сказали что там есть база users, давайте проверим
Почему? Да потому что. Сказал бы нуб, но я про хакер.
Допустим у нас в таблице users 5 записей и это означает, что будет выведено в 5 разных строк, что может нарушить наш кул-Запрос, и нам надо сказать WHERE rownum=1 и это гарантирует что выведется одна запись
Подтверждено!
Подтверждаем наличие 'administrator' в базе
Вы думайте вам это поможет?
нет давайте будем умнее, но сначала я докажу это.
Поэтому нам надо использовать некое выражение Oracle. И это будет похоже на операторы IF ELSE
И что же тут написано:
Когда 1=1 то выполни это, соответсвенно 1 будет всегда = 1, а TO_CHAR(1/0) даст нам сообщение об ошибке по понятной причине.
А тут мы перейдём к оператору ELSE, и выведет пустую строку, что значит мы получим ответ 200, т.е нет ошЫбок
Абалдеть хакеры мои, у нас получилось! Погладьте себя по голове если вы выполняйте практику со мной!!! Вы супер!
Такой запрос не каждый может написать.
Offensive Security
С новыми силами в путь хакинга!
Мы получаем ошибку 500, что означает что пользователь administrator существует
Это трудно понять, но я тебе скажу. Может крутые ребята дополнят этот момент в коментах.
Когда мы говорим,
то если 1=1, выполняй этот код THEN TO_CHAR(1/0), а в случае когда user не существует, он возвращает 200 OK, т.е он не выполнял эту часть запроса потому что его просто нет там.
Подтверждено!
Узнаём длину пароля!
Я могу вас поздравить что вы будете наконец то хакать пароли!!
Делаем вывод, что пароль меньше 666 символов, и больше 1.
Круто теперь узнаём точный результат, МЫЖ хакеры.
Берём burp, и отправляем запрос в Intruder (CTRL+I)
Тут всё просто если вы его там открывали.
Clear - очистить
Add - Добавить
Тыкаем сюда
И говорим Отрыжке, шагай по числовой прямой в сторону числа 44 с шагом 1. (Визуализировали?)
Тут ума тоже не надо, математика. Условие было больше 19, видим ещё 200OK, после 20 видим 500, т.е >20, УЖЕ НЕТ!! а что может быть между >19 и >20, 20 потому что строго больше 20, а не >=20
Ответ: 20
Подтверждено!
Узнаём пароль
Мы спрашиваем равна ли первая буква пароля букве 'a'
Intruder!
1. Ставим параграфы на 1, и на букву.
2. Ставим тип аттаки "Cluster bomb"
Payloads вы уже знайте.
и меняем Payload set, что бы брутить букву
Min/Max length, 1 потому что использовать один символ за раз, а не перестановки
После нашей суперской атаки, которую наверное вы повторяйте, мы получили ОГРОМНЫЙ результат
используем фильтры!
Поздравляю! Записываем наш пароль!
Ещё раз congrats, вы стали ближе к Pro-Cool Haцcker LEVEL!
Надеюсь вам нравится мой стиль статей, и если вы всё выполнили успешны по моей статье пишите в тг-чате Codeby #якулхацкер и я подарю вам Шампанского!
Жду реакций и жалоб, а также если вам зашло, то докажите реакцией и сделаю статью про автоматизацию с помощью крутого языка для крутых людей. (Эт Python)
Ссылка скрыта от гостей
. Надеюсь, у всех читающих эту статью стандартная тема Codeby. Это мощная статьяПлан статьи:
- Докажем, что параметр уязвим
- Проверим существование базы данных
- Подтвердим наличие 'administrator' в базе
- Узнаём длину пароля, используя Burp как Хацкер (настаиваю на использовании Pro версии)
- Узнаём пароль, используя Burp как Хацкер
Нам сказано:
Код:
Результаты SQL-запроса не возвращаются, и приложение не реагирует каким-либо образом в зависимости от того, возвращает ли запрос какие-либо строки. Если SQL-запрос вызывает ошибку, приложение возвращает пользовательское сообщение об ошибке.
База данных содержит другую таблицу с именем users, столбцы которой называются username и password. Вам необходимо использовать уязвимость слепой SQL-инъекции, чтобы узнать пароль administrator пользователя.
Чтобы решить лабораторную работу, войдите в систему как administrator пользователь.
Зайдём на главную страницу сайта и используем Burp Suite для перехвата и изменения запроса, содержащего TrackingId файла cookie. Для простоты предположим, что исходное значение файла cookie равно TrackingId=xyz
- Измените TrackingId файл cookie, добавив к нему одинарные кавычки:
Код:TrackingId=xyz'
- Теперь измените ее на две кавычки:
Код:
TrackingId=xyz''
- Теперь вам нужно подтвердить, что сервер интерпретирует внедрение как SQL-запрос, т. е. что ошибка является синтаксической ошибкой SQL, в отличие от ошибок любого другого типа. Для этого сначала нужно создать подзапрос, используя допустимый синтаксис SQL. Попробуйте отправить:
Код:TrackingId=xyz'||(SELECT '')||'
В этом случае обратите внимание, что запрос по-прежнему кажется недопустимым. Это значит что возможно используется база Oracle, т.к ей нужна какая та база, нельзя просто взять и достать из ничего. Это как я возьму и хочу захватить воздух в ладошках, а вот не получиться, либо дырки(SQL) либо я создаю вакум
Код:TrackingId=xyz'||(SELECT '' FROM dual)||'
- Подтверждено!
- Подтверждено!
Теперь нам сказали что там есть база users, давайте проверим
Код:
TrackingId=xyz'||(SELECT '' FROM 'users')||'
Почему? Да потому что. Сказал бы нуб, но я про хакер.
Допустим у нас в таблице users 5 записей и это означает, что будет выведено в 5 разных строк, что может нарушить наш кул-Запрос, и нам надо сказать WHERE rownum=1 и это гарантирует что выведется одна запись
Подтверждено!
Вы думайте вам это поможет?
Код:
xyz'||(SELECT+'' FROM users where username='administrator')||'
Поэтому нам надо использовать некое выражение Oracle. И это будет похоже на операторы IF ELSE
Код:
xyz'|| (SELECT CASE WHEN (1=1) THEN TO_CHAR(1/0) ELSE '' END FROM dual)||'
Когда 1=1 то выполни это, соответсвенно 1 будет всегда = 1, а TO_CHAR(1/0) даст нам сообщение об ошибке по понятной причине.
Код:
xyz'|| (SELECT CASE WHEN (1=0) THEN TO_CHAR(1/0) ELSE '' END FROM dual)||'
Абалдеть хакеры мои, у нас получилось! Погладьте себя по голове если вы выполняйте практику со мной!!! Вы супер!
Такой запрос не каждый может написать.
Код:
xyz'|| (SELECT CASE WHEN (1=1) THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator')||'
Это трудно понять, но я тебе скажу. Может крутые ребята дополнят этот момент в коментах.
Когда мы говорим,
Код:
xyz'|| (SELECT CASE WHEN (1=1) THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator')||'
Подтверждено!
Я могу вас поздравить что вы будете наконец то хакать пароли!!
Код:
xyz'|| (SELECT CASE WHEN (1=1) THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator' AND LENGTH(password)>1)||'
Делаем вывод, что пароль меньше 666 символов, и больше 1.
Круто теперь узнаём точный результат, МЫЖ хакеры.
Берём burp, и отправляем запрос в Intruder (CTRL+I)
Тут всё просто если вы его там открывали.
Clear - очистить
Add - Добавить
Тыкаем сюда
И говорим Отрыжке, шагай по числовой прямой в сторону числа 44 с шагом 1. (Визуализировали?)
Тут ума тоже не надо, математика. Условие было больше 19, видим ещё 200OK, после 20 видим 500, т.е >20, УЖЕ НЕТ!! а что может быть между >19 и >20, 20 потому что строго больше 20, а не >=20
Ответ: 20
Подтверждено!
Код:
xyz'|| (SELECT CASE WHEN (1=1) THEN TO_CHAR(1/0) ELSE '' END FROM users WHERE username='administrator' AND substr(password,1,1)='a')||'
Мы спрашиваем равна ли первая буква пароля букве 'a'
Intruder!
1. Ставим параграфы на 1, и на букву.
2. Ставим тип аттаки "Cluster bomb"
Payloads вы уже знайте.
и меняем Payload set, что бы брутить букву
Min/Max length, 1 потому что использовать один символ за раз, а не перестановки
После нашей суперской атаки, которую наверное вы повторяйте, мы получили ОГРОМНЫЙ результат
используем фильтры!
Поздравляю! Записываем наш пароль!
Ещё раз congrats, вы стали ближе к Pro-Cool Haцcker LEVEL!
Надеюсь вам нравится мой стиль статей, и если вы всё выполнили успешны по моей статье пишите в тг-чате Codeby #якулхацкер и я подарю вам Шампанского!
Жду реакций и жалоб, а также если вам зашло, то докажите реакцией и сделаю статью про автоматизацию с помощью крутого языка для крутых людей. (Эт Python)
Последнее редактирование модератором: