#40 Уязвимость DVWA. JavaScript. — Уровень (High).
Здравствуйте, дорогие друзья. Продолжаем рассматривать уязвимости DVWA, и сегодня остановимся на JavaScript высокого уровня настроек безопасности. Для начала выставим настройки безопасности на High:
![настройки безопасности dvwa - high](https://timcore.ru/wp-content/uploads/2021/05/screenshot_1-10.png)
Переходим на вкладку «JavaScript», и видим ту же картину, которая была на предыдущих настройках безопасности:
![уязвимая страница JavaScript](https://timcore.ru/wp-content/uploads/2021/05/screenshot_2-10.png)
Попробуем ввести слово «ChangeMe» в поле для ввода:
![Попробуем ввести слово «ChangeMe» в поле для ввода](https://timcore.ru/wp-content/uploads/2021/05/screenshot_3-10.png)
Получаем неправильную фразу.
Попробуем также ввести слово «success», которое указано в описании на странице:
![Попробуем также ввести слово «success», которое указано в описании на странице](https://timcore.ru/wp-content/uploads/2021/05/screenshot_4-10.png)
Получаем невалидный токен.
Просмотрим «исходники» данной страницы. Это кнопка «View Source» внизу справа:
![View Source](https://timcore.ru/wp-content/uploads/2021/05/screenshot_5-10.png)
Видим небольшой кусок кода на php, и обфусцированный код JavaScript:
![исходный код страницы JavaScript](https://timcore.ru/wp-content/uploads/2021/05/screenshot_6-10.png)
Копируем код «js», и идем в деобфускатор:
![деобфускатор кода JavaScript](https://timcore.ru/wp-content/uploads/2021/05/screenshot_7-7.png)
Жмем кнопку «Deobfuscate», и идем в самый низ по коду:
![деобфусцированный код JavaScript](https://timcore.ru/wp-content/uploads/2021/05/screenshot_8-5.png)
Данные функции на js представляют собой поэтапную генерацию токена, который нам необходим для обхода авторизации.
Далее нам необходимо открыть инспектор элементов «Inspect Element» на странице:
![открываем инспектор кода - "inspect element"](https://timcore.ru/wp-content/uploads/2021/05/screenshot_9-3-1024x227.png)
Выделяем курсор, с помощью кнопки на панели инструментов. Это левый верхний угол, и наводим курсор на поле для ввода:
![Выделяем курсор, с помощью кнопки на панели инструментов. Это левый верхний угол, и наводим курсор на поле для ввода](https://timcore.ru/wp-content/uploads/2021/05/screenshot_10-2.png)
![наводим курсор мыши в поле для ввода](https://timcore.ru/wp-content/uploads/2021/05/screenshot_11.png)
Меняем значение параметра «Value» на «success»:
![Меняем значение параметра «Value» на «success»](https://timcore.ru/wp-content/uploads/2021/05/screenshot_12.png)
Также меняем значение «value» скрытого тега «input» на «success»:
![Также меняем значение «value» скрытого тега «input» на «success»](https://timcore.ru/wp-content/uploads/2021/05/screenshot_13.png)
Выделяем тег «script», и отправляем его в консоль, с помощью вкладки «Use in Console»:
![Use in Console](https://timcore.ru/wp-content/uploads/2021/05/screenshot_14.png)
Ниже по ссылке кода js, прописываем значение «token_part_1(«ABCD”, 44)»:
![token_part_1(«ABCD”, 44)](https://timcore.ru/wp-content/uploads/2021/05/screenshot_15.png)
После ввода значение «value», скрытого тега «input» поменялось на «sseccus»:
![После ввода значение «value», скрытого тега «input» поменялось на «sseccus»](https://timcore.ru/wp-content/uploads/2021/05/screenshot_16.png)
Вводим в консоли вторую часть токена: «token_part_2(“XX”)»:
![Вводим в консоли вторую часть токена: «token_part_2(“XX”)»](https://timcore.ru/wp-content/uploads/2021/05/screenshot_17.png)
В итоге получаем захешированное значение токена:
![В итоге получаем захешированное значение токена](https://timcore.ru/wp-content/uploads/2021/05/screenshot_18.png)
Переходим в терминал, и прописываем там следующую команду: «echo –n “XXsseccus | sha256sum”»:
![echo –n “XXsseccus | sha256sum”](https://timcore.ru/wp-content/uploads/2021/05/screenshot_19.png)
Значения хешей совпадают.
Вновь переходим в консоль и пишем третью часть токена: «token_part_3(null, “ZZ”)»:
![token_part_3(null, “ZZ”)](https://timcore.ru/wp-content/uploads/2021/05/screenshot_20.png)
В поле «input hidden» генерируется новое значение токена:
![В поле «input hidden» генерируется новое значение токена](https://timcore.ru/wp-content/uploads/2021/05/screenshot_21.png)
Для проверки захешированного значения, нам понадобится инструмент BurpSuite. Запускаем его, и коннектим с браузером.
У меня есть плагин в браузере, который называется «FoxyProxy»:
![FoxyProxy](https://timcore.ru/wp-content/uploads/2021/05/screenshot_22.png)
Отлично. Теперь осталось настроить интерфейс в BurpSuite:
![интерфейс burpsuite](https://timcore.ru/wp-content/uploads/2021/05/screenshot_23.png)
Предварительно копируем полученное значение токена, для вставки его в Burp.
![Предварительно копируем полученное значение токена, для вставки его в Burp.](https://timcore.ru/wp-content/uploads/2021/05/screenshot_24-1024x540.png)
Жмем кнопку «Forward», и переходим на страницу JavaScript:
![Жмем кнопку «Forward», и переходим на страницу JavaScript](https://timcore.ru/wp-content/uploads/2021/05/screenshot_25.png)
Отлично. Мы успешно обошли авторизацию.
На этом все. Всем хорошего дня!
#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).