Можно ли использовать шаблонный движок EJS с помощью внедрения шаблона? - PullRequest
0 голосов
/ 22 марта 2019

Я занимаюсь разработкой веб-приложения, использующего EJS в качестве движка шаблонов (и одновременно изучаю web sec), и мне интересно, возможно ли использовать EJS с помощью внедрения шаблона для достижения RCE.

Я пробовал это: http://localhost:3000/ti2?a=console.log(2);

Но значение параметра запроса интерпретируется как строка на стороне сервера, а не как код JS, поэтому ничего не происходит.

// app.js

app.get("/ti2", function(req, res) {
  const param = req.query.a;
  console.log(typeof param);
  res.render("ti", {
    msg: param
  });
});

// ti.ejs

<% msg %>

Не могли бы вы дать мне PoC, если SSTI возможен при использовании EJS?

Кроме того, какие теги EJS (если они есть) будут уязвимы для SSTI в EJS? просто <%?

...