[1] Давайте учиться SQL-инъекциям вместе!

Поддерживаете мою идею?


  • Всего проголосовало
    39

iBragimoff

Green Team
09.07.2019
83
19
BIT
0
Привет! Сегодня решил воплотить идею в жизнь, которую вынашиваю уже давно. Суть идеи в том что многие изучают ИБ (Информационную безопасность) в одиночестве и прогорают через пару часов изучения из-за неудачных попыток и безрезультатного поиска информации. И сегодня, после очередного такого дня, я всё таки решился воплотить свою идею в жизнь. Нашёл сайт для оттачивания навыков этичного хакинга и выбрал уровни с SQL-инъекциями. Предлагаю всем желающим присоединиться ко мне и решать поставленные перед нами задачи вместе, чтобы было не скучно и плодотворно, ибо все будут обмениваться своими знаниями с другими участниками.

ВНИМАНИЕ: Если вы знаете решение задачи, то в ответ расписывайте подробно, так чтобы поняли все, иначе от вашего ответа не будет пользы. Скопировать и вставить могут все, а вот через некоторое время повторить тоже самое действие без чьей-либо подсказки сможет не каждый.

Основной сайт:
Ссылка на задание:

Screenshot_1.png


Не важная информация: Данная задачка мною решена, но благоразумнее, думаю, будет начать с начала.

Так-с. Перед нами стоит задача вытащить пароль пользователя с ID = 12.
Задачка очень легкая и требуется всего лишь знание основ SQL синтаксиса.



Подсказка: Нужно с помощью ключевого слова SELECT выбрать нужные нам поля через запятую,
указать из какой таблицы будем брать поля ключевым словом FROM и самое главное, не забудьте поставить точку с запятой в конце.


Я новичок в этом деле и если говорю что-то не так исправляйте в комментариях, всегда буду рад исправиться!
 
  • Нравится
Реакции: hanau16

iBragimoff

Green Team
09.07.2019
83
19
BIT
0
Свои ответы, предположения пишите в комментарии, будем обдумывать их все вместе!
Новую задачку залью уже через 1-2 часа, ибо эта легкая и на её решение хватит и 5 минут :)
 

mrOkey

Well-known member
14.11.2017
967
975
BIT
0
Точно! А почему? В основах синтаксиса SQL языка говорится просто, что точка с запятой должна быть в конце.
потмоу что ; исполузуется для разделения команд. Если бы написали так:
Код:
Select * from users Select * from secret
то нам нужна была бы ; после каждой команды. Тут же у нас только один запрос => точка с запятой не обязательна
 

iBragimoff

Green Team
09.07.2019
83
19
BIT
0
потмоу что ; исполузуется для разделения команд. Если бы написали так:
Код:
Select * from users Select * from secret
то нам нужна была бы ; после каждой команды. Тут же у нас только один запрос => точка с запятой не обязательна
Понял, спасибо.
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
Подсказка: Нужно с помощью ключевого слова SELECT выбрать нужные нам поля через запятую,
указать из какой таблицы будем брать поля ключевым словом FROM и самое главное, не забудьте поставить точку с запятой в конце.
Всё неправильно - ни точка с запятой не нужна как выше сказали, ни поля через запятую.
В задаче нужно получить пароль пользователя с id=12 значит всё остальное будет лишним. Правильное решение очень короткое:
select pass from users where id =12

Выбери столбец pass для таблицы users где id =12
 

iBragimoff

Green Team
09.07.2019
83
19
BIT
0
Всё неправильно - ни точка с запятой не нужна как выше сказали, ни поля через запятую.
В задаче нужно получить пароль пользователя с id=12 значит всё остальное будет лишним. Правильное решение очень короткое:
select pass from users where id =12

Выбери столбец pass для таблицы users где id =12
Моё решение было таким: SELECT id,pass FROM users; Отсюда и подсказка :)
 

explorer

Platinum
05.08.2018
1 080
2 475
BIT
0
Моё решение было таким: SELECT id,pass FROM users; Отсюда и подсказка
А если в задаче будет id 500, и в базе 1000 id, будешь в списке ковыряться, выискивая нужную строку? Всегда используй условие, когда нужно вывести что-то конкретное )
 
  • Нравится
Реакции: kservice

iBragimoff

Green Team
09.07.2019
83
19
BIT
0
Все прошло, а задачи все нет и нет. Вернее задача есть, а вот с решением к ней туго.
Раз дискуссии не было, объясню всё сам.
Если ещё остались вопросы, задавайте.

SELECT pass FROM users WHERE id = 12

Screenshot_1.png
ВЫБРАТЬ ПОЛЕ (SELECT) pass ИЗ СТОЛБЦА (FROM) users ГДЕ (WHERE) id = 12
То есть мы командой SELECT выбираем поле, которое нужно взять из столбца, которое указано после ключевого слова FROM, далее ключевым словом WHERE находим нужный ID и выводим только его.
 

pp11

Green Team
16.09.2018
201
82
BIT
1
Раз дискуссии не было, объясню всё сам.
Если ещё остались вопросы, задавайте.

SELECT pass FROM users WHERE id = 12

Посмотреть вложение 32486
ВЫБРАТЬ ПОЛЕ (SELECT) pass ИЗ СТОЛБЦА (FROM) users ГДЕ (WHERE) id = 12
То есть мы командой SELECT выбираем поле, которое нужно взять из столбца, которое указано после ключевого слова FROM, далее ключевым словом WHERE находим нужный ID и выводим только его.
Опечатался с "все". Эта задача всем давно понятна, никогда SQL не изучал и сразу ее решил. Я про второй лвл.
 

iBragimoff

Green Team
09.07.2019
83
19
BIT
0
Опечатался с "все". Эта задача всем давно понятно, никогда SQL не изучал и сразу ее решил. Я про второй лвл.
Голова раскалывается просто, поэтому от компьютера отошёл, чтобы отдохнуть. Сейчас постараюсь второй лвл выложить.
 

Elementallio

One Level
19.11.2018
3
1
BIT
0
Круто. Я только за. так намного интереснее и понятнее. Для новичка самое то
 

iBragimoff

Green Team
09.07.2019
83
19
BIT
0
Круто. Я только за. так намного интереснее и понятнее. Для новичка самое то
Хей. Мы уже на 7 задании :)
Вот все части: ; ; ;
 

Elementallio

One Level
19.11.2018
3
1
BIT
0
Хей. Мы уже на 7 задании :)
Вот все части: ; ; ;
да, спасибки я уже до 4 дошел, буду дальше разбираться
 
  • Нравится
Реакции: iBragimoff
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!