Задание.
Сегодня разберём задание "SQL Truncation". По названию может показаться, что это очередное задание на SQL-инъекции, но это не совсем так. Данное задание скорее показывает некоторые особенности работы SQL.
Как всегда посмотрим описание, хотя в последнее время в веб-тасках на root-me достаточно просто прочитать название.
Всё как обычно, нам нужно получить доступ к зоне администратора.
Перейдём на сайт и посмотрим, что нам предлагают.
Есть меню для регистрации и администраторская.
Посмотрим исходный код страницы регистрации.
Сразу обратим внимание на то, как сохраняется login. Про отличия типа VARCHAR и CHAR можно узнать здесь - https://phpclub.ru/mysql/doc/char.html
В названии задания нам говорят про SQL Truncate. Про данную атаку известно уже довольно давно и она довольно простая с точки зрения реализации (подробнее тут - https://blog.lucideus.com/2018/03/sql-truncation-attack-2018-lucideus.html)
Как и во всех других "truncate" ошибках, проблема связана с усечением некоторого значения. В данном случае усекается значение, которое будет помещено в таблицу. Таким образом регистрируя нового пользователя с похожим login'ом, но отличающимся например количеством пробелов после имени и ещё некоторыми символами, в базу будет добавлено усечённое имя и таким образом при обращении к базе с верным паролем для созданного пользователя мы можем получить привилегии другого пользователя.
К заданию.
Создадим пользователя с именем "admin qwe123" и паролем "0123456789".
Отлично пользователя сохранён. Теперь попробуем авторизоваться в админ-панели с помощью этого пароля.
И мы получим флаг, потому что как раз сработает уязвимость с усечением логина.
(с) Telegram-канал "Убежище Хакера"
Сегодня разберём задание "SQL Truncation". По названию может показаться, что это очередное задание на SQL-инъекции, но это не совсем так. Данное задание скорее показывает некоторые особенности работы SQL.
Как всегда посмотрим описание, хотя в последнее время в веб-тасках на root-me достаточно просто прочитать название.
Всё как обычно, нам нужно получить доступ к зоне администратора.
Перейдём на сайт и посмотрим, что нам предлагают.
Есть меню для регистрации и администраторская.
Посмотрим исходный код страницы регистрации.
Сразу обратим внимание на то, как сохраняется login. Про отличия типа VARCHAR и CHAR можно узнать здесь - https://phpclub.ru/mysql/doc/char.html
В названии задания нам говорят про SQL Truncate. Про данную атаку известно уже довольно давно и она довольно простая с точки зрения реализации (подробнее тут - https://blog.lucideus.com/2018/03/sql-truncation-attack-2018-lucideus.html)
Как и во всех других "truncate" ошибках, проблема связана с усечением некоторого значения. В данном случае усекается значение, которое будет помещено в таблицу. Таким образом регистрируя нового пользователя с похожим login'ом, но отличающимся например количеством пробелов после имени и ещё некоторыми символами, в базу будет добавлено усечённое имя и таким образом при обращении к базе с верным паролем для созданного пользователя мы можем получить привилегии другого пользователя.
К заданию.
Создадим пользователя с именем "admin qwe123" и паролем "0123456789".
Отлично пользователя сохранён. Теперь попробуем авторизоваться в админ-панели с помощью этого пароля.
И мы получим флаг, потому что как раз сработает уязвимость с усечением логина.
(с) Telegram-канал "Убежище Хакера"