TGViewer
Monkey Hacker Monkey Hacker @monkey_hacker · 785 subscribers
Post #63 629
Prototype Pollution + child_process.fork() = RCE

Помимо моего пепла, который остался с ресерча винды, я прочитал про интерсные свойства у child_process.fork() в Node.js
child_process.fork() - предоставляет возможность создавать подпроцессы с помощью child_process.spawn(). Метод fork() принимает объект с именем options, в котором одним из потенциальных параметров является свойство execArgv. Это массив строк, содержащих аргументы командной строки, которые должны быть использованы при порождении дочернего процесса.

Т.е конструктор выглядит следующим образом

this.execArgv = options.execArgv;

Это позволяет нам напрямую управлять аргументами командной строки, и дает нам возможности для RCE. Особый интерес представляет аргумент --eval, который позволяет передавать произвольный JavaScript, а он уже будет выполняться дочерним процессом. Т.е мы можем загружать свои собственные модули.

"execArgv": [
"--eval=require('<moduele_name>')"
]



А значит потенциальный пейлоад будет выглядеть так

cat.__proto__.execArgv = ["-c", "touch /tmp/biba"]

Или в виде JSON

"__proto__": { "execArgv":[ "--eval=require('child_process').execSync('touch /tmp/biba')" ] }
  • 👍 5
More from @monkey_hacker
  1. Aug 28, 2024First hop, second hop Как-то увидел понятие Double Hop в Kerberos. Думал, что ничего в нем…
  2. Apr 10, 2024Вопрос собесов - один из самых популярных. Что надо знать, как собесят и как собесить - по…
  3. Apr 10, 2024У меня тут есть знакомый, который решил рассказывать про ИБ с перспективы менеджера, поэто…
  4. Apr 8, 2024Kubectl apply Йо, сегодня я принес несколько ссылочек, где можно почитать про работу разли…
  5. Jan 16, 2024Oh yes, ping pong Под конец прошлого года, прошла шумиха с Apache Ofbiz, который позволял…
  6. Dec 31, 2023Пора и мне сказать что-то ✨ В этом году я очень старался повысить свои навыки, а вы могли…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →