Basic server-side template injection
Link: https://portswigger.net/web-security/server-side-template-injection/exploiting/lab-server-side-template-injection-basic
Last updated
Link: https://portswigger.net/web-security/server-side-template-injection/exploiting/lab-server-side-template-injection-basic
Last updated
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:
Analisa pada web target
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
Inputkan basic payload SSTI yaitu {{7*7}}
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 sebagai contoh disini menggunakan payload <%= 7*7 %>
maka akan ditampilkan nilai 49
. Artinya sistem rentan terhadap SSTI Attack
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
Setelah berhasil, cari tahu username dari user yang berjalan pada server target dengan menggunakan perintah atau payload SSTI ERB ruby berikut <%= system("whoami") %>
Dan cari informasi mengenai direktori yang ada pada direktori home dengan menggunakan payload <%= Dir.entries('/home') %>
Selanjutnya, untuk menyelesaikan tangtangan lab ini gunakan payload <%= system('rm /home/carlos/morale.txt') %>
Thanks, Stay Ethical & Happy Hacking! 🍻