CSRF - Cross Site Request Forgery, DVWA, Уязвимости

#18 Уязвимость DVWA. CSRF (Уровень High).

Здравствуйте, дорогие друзья. Продолжаем рассматривать уязвимости DVWA, и сегодня остановимся на CSRF высокого уровня безопасности.

На самом деле она очень проста в реализации. Не буду останавливаться на том, что такое CSRF (смотрите про данную уязвимость на уровне Low), а перейдем непосредственно к решению. Начнем с того, что установим уровень сложности на high:

ностройки безопасности dvwa high

Переходим на вкладку «CSRF», и видим два поля для изменения пароля:

вкладка csrf

Смысл данной страницы состоит в том, чтобы менять пароли в учетной записи «admin».

Просмотрев исходный код странички, мы можем увидим параметр name=”user_token” и value c кодом токена, который меняет свое значение сессии при каждой перезагрузке приложения.

Для того, чтобы проэксплуатировать эту уязвимость, нам нужно сохранить код с открывающим и закрывающим тегом «form»:

сохраняем код с открывающим и закрывающим тегом form

  В данный код нужно внести правки, которые помогут нам при реализации нашей задачи.

Создадим файл, который называется «csrf.html» и вставим в него код формы:

создаем файл csrf.html

Во-первых, в параметр action вставим ссылку на уязвимую страницу:

 в параметр action вставим ссылку на уязвимую страницу

Во-вторых, в двух полях автозаполнения (AUTOCOMPLETE) ставим значение «on»:

в двух полях автозаполнения (AUTOCOMPLETE) ставим значение «on»

В-третьих, прописываем новый параметр «value». Он означает изменение пароля. Я поставил цифровое обозначение нового пароля: «123»

прописываем новый параметр «value». Он означает изменение пароля.

Сохраняем данный файл с расширением .html, и запускаем его двойным щелчком мыши:

Сохраняем данный файл с расширением .html

Нас перебрасывает в браузер. Мы видим автозаполненную форму паролей:

автозаполненная форму паролей

Жмем кнопку «Change» и переходим на уязвимую страничку CSRF:

пароль был изменен

Можно протестировать пароль. Для этого выйдем из приложения и повторно авторизуемся по дефолтному паролю:

авторизация по дефолтному паролю

А если ввести измененный пароль, то он корректно сработает:

ввод измененного пароля

#1 Уязвимость DVWA. SQL-Injection (уровень Low).

#2 Уязвимость DVWA. Brute Force (Уровень Low).

#3 Уязвимость DVWA — File Upload (Уровень Low).

#4 Уязвимость DVWA. File Upload (Уровень Medium).

#5 Уязвимость DVWA File Upload (Уровень High).

#6 Уязвимость DVWA. Brute Force (Уровень Medium).

#7 Уязвимость DVWA. Command Execution (Уровень Low).

#8 Уязвимость DVWA. Command Execution (Уровень Medium).

#9 Уязвимость DVWA. CSRF (Уровень Low).

#10 Уязвимость DVWA. CSRF (Уровень Medium).

#11. Уязвимость DVWA — (Local File Inclusion). Уровень Low.

#12 Уязвимость DVWA. LFI (Local File Inclution) — Уровень Medium.

#13 Уязвимость DVWA LFI — Local File Inclusion (Уровень High).

#14 Уязвимость DVWA. Command Execution (Уровень High).

#15 Уязвимость DVWA. SQL-Injection (Уровень Medium).

#16 Уязвимость DVWA — Brute Force (Уровень High).

#17 Уязвимость DVWA. SQL-Injection (Уровень High).