Basic server-side template injection

Link: https://portswigger.net/web-security/server-side-template-injection/exploiting/lab-server-side-template-injection-basic

Description:

This lab is vulnerable to server-side template injection due to the unsafe construction of an ERB template.

To solve the lab, review the ERB documentation to find out how to execute arbitrary code, then delete the morale.txt file from Carlos's home directory.

Proof of concept:

  1. Analisa pada web target

  2. Dari hasil analisa didapati ketika product tidak tersedia atau out of stock akan mengirim pesan melalui parameter message. Jika stok product tersedia, akan diarahkan ke halaman detail product

  3. Inputkan basic payload SSTI yaitu {{7*7}}

  4. Outputnya akan tetap {{7*7}} dikarenakan dari informasi yang didapati pada lab description sistem target menggunakan teknologi ERB ruby, maka inputkan payload basic SSTI ERB seperti yang dapat dilihat di https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection#erb-ruby sebagai contoh disini menggunakan payload <%= 7*7 %> maka akan ditampilkan nilai 49. Artinya sistem rentan terhadap SSTI Attack

  5. Selanjutnya, untuk memastikan lainnya coba gunakan payload SSTI ERB ruby <%= system('cat /etc/passwd') %> untuk menampilkan data-data sensitive yang berada pada file /etc/passwd

  6. Setelah berhasil, cari tahu username dari user yang berjalan pada server target dengan menggunakan perintah atau payload SSTI ERB ruby berikut <%= system("whoami") %>

  7. Dan cari informasi mengenai direktori yang ada pada direktori home dengan menggunakan payload <%= Dir.entries('/home') %>

  8. Selanjutnya, untuk menyelesaikan tangtangan lab ini gunakan payload <%= system('rm /home/carlos/morale.txt') %>

Thanks, Stay Ethical & Happy Hacking! 🍻

Last updated