DVWA, JavaScript, Уязвимости

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

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

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

Переходим на вкладку «JavaScript», и видим ту же картину, которая была на предыдущих настройках безопасности:

уязвимая страница JavaScript

Попробуем ввести слово «ChangeMe» в поле для ввода:

Попробуем ввести слово «ChangeMe» в поле для ввода

Получаем неправильную фразу.

Попробуем также ввести слово «success», которое указано в описании на странице:

Попробуем также ввести слово «success», которое указано в описании на странице

Получаем невалидный токен.

Просмотрим «исходники» данной страницы. Это кнопка «View Source» внизу справа:

View Source

Видим небольшой кусок кода на php, и обфусцированный код JavaScript:

исходный код страницы JavaScript

Копируем код «js», и идем в деобфускатор:

деобфускатор кода JavaScript

Жмем кнопку «Deobfuscate», и идем в самый низ по коду:

деобфусцированный код JavaScript

Данные функции на js представляют собой поэтапную генерацию токена, который нам необходим для обхода авторизации.

Далее нам необходимо открыть инспектор элементов «Inspect Element» на странице:

открываем инспектор кода - "inspect element"

Выделяем курсор, с помощью кнопки на панели инструментов. Это левый верхний угол, и наводим курсор на поле для ввода:

Выделяем курсор, с помощью кнопки на панели инструментов. Это левый верхний угол, и наводим курсор на поле для ввода
наводим курсор мыши в поле для ввода

Меняем значение параметра «Value» на «success»:

Меняем значение параметра «Value» на «success»

Также меняем значение «value» скрытого тега «input» на «success»:

Также меняем значение «value» скрытого тега «input» на «success»

Выделяем тег «script», и отправляем его в консоль, с помощью вкладки «Use in Console»:

Use in Console

Ниже по ссылке кода js, прописываем значение «token_part_1(«ABCD”, 44)»:

token_part_1(«ABCD”, 44)

После ввода значение «value», скрытого тега «input» поменялось на «sseccus»:

После ввода значение «value», скрытого тега «input» поменялось на «sseccus»

Вводим в консоли вторую часть токена: «token_part_2(“XX”)»:

Вводим в консоли вторую часть токена: «token_part_2(“XX”)»

В итоге получаем захешированное значение токена:

В итоге получаем захешированное значение токена

Переходим в терминал, и прописываем там следующую команду: «echo –n “XXsseccus | sha256sum”»:

echo –n “XXsseccus | sha256sum”

Значения хешей совпадают.

Вновь переходим в консоль и пишем третью часть токена: «token_part_3(null, “ZZ”)»:

token_part_3(null, “ZZ”)

В поле «input hidden» генерируется новое значение токена:

В поле «input hidden» генерируется новое значение токена

Для проверки захешированного значения, нам понадобится инструмент BurpSuite. Запускаем его, и коннектим с браузером.

У меня есть плагин в браузере, который называется «FoxyProxy»:

FoxyProxy

Отлично. Теперь осталось настроить интерфейс в BurpSuite:

интерфейс burpsuite

Предварительно копируем полученное значение токена, для вставки его в Burp.

Предварительно копируем полученное значение токена, для вставки его в Burp.

Жмем кнопку «Forward», и переходим на страницу JavaScript:

Жмем кнопку «Forward», и переходим на страницу JavaScript

Отлично. Мы успешно обошли авторизацию.

На этом все. Всем хорошего дня!

#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).

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

#19 Уязвимость DVWA. JavaScript — Уровень «Low».

#20 Уязвимость DVWA. JavaScript — уровень «Medium».

#21 DVWA — reCAPTCHA (API key missing).

#22 Уязвимость DVWA. Insecure Captcha (уровень Low).

#23 Уязвимость DVWA. Insecure Captcha (уровень Medium).

#24 Уязвимость DVWA. Insecure Captcha (уровень «High»).

#25 Уязвимость DVWA. XSS DOM (Уровень Low).

#26 Уязвимость DVWA. XSS DOM (уровень Medium).

#27 Уязвимость DVWA. XSS DOM — (уровень High).

#28 Уязвимость DVWA. XSS (Reflected) — (уровень Low).

#29 Уязвимость DVWA. XSS (Reflected) — (уровень Medium).

#30 Уязвимость DVWA. XSS (Reflected) — уровень (High).

#31 Уязвимость DVWA. XSS (Stored) — уровень (Low).

#32 Уязвимость DVWA. XSS (Stored) — уровень (Medium).

#33 Уязвимость DVWA. XSS (Stored) — уровень (High).

#34 Уязвимость DVWA. Content Security Policy (Bypass) — Уровень (Low).

#35 Уязвимость DVWA. Content Security Policy (Bypass) — Уровень (Medium).

#36 Уязвимость DVWA. Content Security Policy (Bypass)- Уровень (High).

#37 Уязвимость DVWA. Weak Session IDs — Уровень (Low).

#38 Уязвимость DVWA. Weak Session IDs — Уровень (Medium).

#39 Уязвимость DVWA. Weak Session IDs — Уровень (High).