HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 21.08.2019, 22:20
iBragimoff
Познающий
Регистрация: 17.08.2019
Сообщений: 83
С нами: 3548433

Репутация: 0
По умолчанию

Предыдущая статья - ссылочка
Следующая статья: [6] Давайте учиться SQL-инъекциям вместе!
Ссылка на задание: SQL injection challenge

Ооо даа. Я решил 5й таск, отдельное спасибо моему сэнсэю explorer`y



Я начал копать в сторону команды union, так как особого представления о его работе не имел
И на первом же сайте нашёл решение моей проблемы - Команда UNION - слияние таблиц | Трепачёв Дмитрий
Проблема заключалась в том что оператор union объединяет столбцы первой и второй таблицы.
А из задания мы знаем, что в таблице users 3 столбца id, login, pass, а вот в таблице secret уже 2 столбца или поля - одно и тоже.
И вот из-за этого возникала наша ошибка. Все, наверное, уже догадались, чтобы решить проблему нужно в таблице secret заполнить 3й столбец.
Если вы уже почитали описание оператора union по ссылке которую, я вам дал, то уже наверняка знаете, что мы сейчас будем делать.



Следуя подсказке составляем наш запрос...



И получаем корректный вывод таблицы, теперь только остаётся вставить имена столбцов из таблицы secret, как их узнать разобрал в прошлой статье.



Пароль стёр, чтобы не спойлерить

Запрос составлен, задание пройдено, но меня не оставляет спокойно спать один вопрос.

Есть вот такой запрос: ' union SELECT id,login,pass, 0 FROM table_name -- -

Ноль подставляется автоматически в 4й столбец?

Цитата:

Какое-же всё таки блаженство, когда у тебя что-то получается. Не останавливайтесь перед трудностями и топите вперёд за знаниями!

 
Ответить с цитированием

  #2  
Старый 21.08.2019, 22:25
iBragimoff
Познающий
Регистрация: 17.08.2019
Сообщений: 83
С нами: 3548433

Репутация: 0
По умолчанию

Забыл упомянуть, что нашёл хороший курс по SQL, который советую смотреть параллельно решению тасков, ибо бывают моменты, когда ты не понимаешь откуда что берётся в такие моменты и надо погружаться глубже за пониманием происходящего.
 
Ответить с цитированием

  #3  
Старый 21.08.2019, 22:58
explorer
Новичок
Регистрация: 05.08.2018
Сообщений: 0
С нами: 4091032

Репутация: 0
По умолчанию

Рад, что ты сдвинулся с места и начал разбираться. Но ..... Всё гораздо проще )
 
Ответить с цитированием

  #4  
Старый 21.08.2019, 23:00
iBragimoff
Познающий
Регистрация: 17.08.2019
Сообщений: 83
С нами: 3548433

Репутация: 0
По умолчанию

Цитата:

explorer сказал(а):

Рад, что ты сдвинулся с места и начал разбираться. Но ..... Всё гораздо проще )
Охх. И вправду, всё гениальное просто
 
Ответить с цитированием

  #5  
Старый 23.08.2019, 00:29
InetTester
Новичок
Регистрация: 21.10.2018
Сообщений: 0
С нами: 3979841

Репутация: 0
По умолчанию

Как я прошел возможно далеко и не оптимально
1. Инфа о таблице: 1' union select 1, table_name, column_name from information_schema.columns#
2. Выборка по полученным именам колонок из предыдущего запроса: 1' union select dfgfddfgdfdfdf, dfgdfgfdg, 1 from secret#
 
Ответить с цитированием

  #6  
Старый 23.08.2019, 09:54
explorer
Новичок
Регистрация: 05.08.2018
Сообщений: 0
С нами: 4091032

Репутация: 0
По умолчанию

Цитата:

InetTester сказал(а):

Как я прошел возможно далеко и не оптимально
1. Инфа о таблице: 1' union select 1, table_name, column_name from information_schema.columns#
2. Выборка по полученным именам колонок из предыдущего запроса: 1' union select dfgfddfgdfdfdf, dfgdfgfdg, 1 from secret#
Пусть способ не за 1 приём, а за два, но тоже рабочий, только поправлю:
1. Это не инфа о таблице, в задании уже дано название таблицы secret, так мы вытаскиваем название колонок. Но так как название таблицы известно, но нужно ставить условие, и тогда не будет выводиться ненужная куча строк.

1' union select 1, 2, column_name from information_schema.columnswhere table_name='secret'#
 
Ответить с цитированием

  #7  
Старый 23.08.2019, 10:21
InetTester
Новичок
Регистрация: 21.10.2018
Сообщений: 0
С нами: 3979841

Репутация: 0
По умолчанию

Цитата:

explorer сказал(а):

Пусть способ не за 1 приём, а за два, но тоже рабочий, только поправлю:
1. Это не инфа о таблице, в задании уже дано название таблицы secret, так мы вытаскиваем название колонок. Но так как название таблицы известно, но нужно ставить условие, и тогда не будет выводиться ненужная куча строк.

1' union select 1, 2, column_name from information_schema.columnswhere table_name='secret'#
Я не знаю что меня так накрыло поздно ночью но мне казалось что моя миссия это найти имена колонок.... только это меня и с подвигло идти искать их имена...))
 
Ответить с цитированием

  #8  
Старый 23.08.2019, 10:53
iBragimoff
Познающий
Регистрация: 17.08.2019
Сообщений: 83
С нами: 3548433

Репутация: 0
По умолчанию

Цитата:

InetTester сказал(а):

Я не знаю что меня так накрыло поздно ночью но мне казалось что моя миссия это найти имена колонок.... только это меня и с подвигло идти искать их имена...))

Изначально, я тоже охотился за именами колонок, думал что только узнав имена колонок смогу вывести содержимое, оказалось, что можно было просто воспользоваться *
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.