Давайте посмотрим, как мы можем получить первый флаг в этой задаче CTF:
Ниже первый экран:
Давайте сначала попробуем войти.
1. Войти
Теперь, когда мы прошли демонстрационный экземпляр Ticketastic, мы знаем, что есть пользователь-администратор, который позволяет войти в систему для демонстрационных целей. Мы можем попробовать с тем же именем пользователя, но я не думаю, что у него будет тот же пароль :)
Попробуйте с admin/admin, это будет неверный пароль. Это означает, что пользователь с правами администратора существует, но пароль не является администратором. Мы попробовали с помощью Burp Suite Intruder провести грубую силу. Но это не сработало.
Давайте посмотрим, работает ли тот же трюк для Live Instance и для «Submit Ticket» — CSRF.
2. Отправить билет
Используйте приведенный ниже код в теле заявки и создайте пользователя.
https://localhost/newUser?username=user&password=user&password2=user
Для CSRF — прочитайте мой другой блог
Хорошо, теперь давайте отправим новый тикет с текстом ниже:
<a href="http://localhost/newUser?username=test&password=test&password2=test">TEST</a>
3. Войдите с вновь созданной учетной записью
4. ФЛАГ
И вот, первый найденный флаг:
Теперь давайте посмотрим, как мы можем получить второй флаг:
Если вы внимательно посмотрите, в URL-адресе билета есть SQL-инъекция:
При перечислении вы обнаружите, что есть две таблицы базы данных:
Лимит 0,1 -билетов
Лимит 1,1 — пользователи
Теперь давайте посмотрим, какие столбцы у нас есть в таблице пользователей:
результат: идентификатор
Пронумеруем далее и все столбцы таблицы users.
результат: имя пользователя
результат: пароль
В таблице пользователей больше нет столбцов.
Теперь давайте посмотрим, что мы получили в имени пользователя и пароле:
Идем вторым флагом:
Позвольте мне открыть вам секрет. Если перечислить таблицу -tickets. Вы бы нашли флаг1 :), так что CSRF не нужен.
Вот и все ребята!!
Заботиться!!!
Муниш