Мне не всегда понятно по какому критерию определяется число выдаваемых баллов за задание, но вот очередное простецкое задание за которое дают 3 очка! Приступим
В самом начале в лоб дается подсказка о условии в SQL запросе, куда уж проще, единственное затруднение которое здесь есть (если это конечно можно назвать затруднением) данные из запроса закодированы в base64:
?id=MQ== //1 после декодирования
Сразу скажу что если сделать инъекцию с id=0, то вернет сообщение о том что пользователя с таким id не существует (или что то типа того), в задании так явно фигурирует NULL, что прям напрашивалось чтоб попробовать. Инъекцию написал сходу, возможно есть варианты и короче, но даже не интересно было искать варианты проще:
-1) OR id IS NULL OR(1=2
после перевода в base64 и подстановки в адресную строку:
?id=LTEpIE9SIGlkIElTIE5VTEwgT1IoMT0y
Итоговый запрос получается (естественно только condition WHERE):
WHERE (id IS NOT NULL) AND (ID = -1) OR id IS NULL OR(1=2 AND display = 1)
Соответственно единственное условие здесь которое выполнится это id IS NULL. И получаем заветный флаг!
Согласитесь что было очень просто.
That's all, folks!