Basic server-side template injection (code context)

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

Description:

This lab is vulnerable to server-side template injection due to the way it unsafely uses a Tornado template. To solve the lab, review the Tornado documentation to discover how to execute arbitrary code, then delete the morale.txt file from Carlos's home directory.

You can log in to your own account using the following credentials: wiener:peter

Proof of concept:

  1. Lakukan analisa pada setiap fitur yang ada pada sistem target

  2. Dari hasil analisa terdapat fitur Preferred Name yang berfungsi untuk mengatur tampilan nama ketika melakukan posting comment pada blog yang ada

  3. Kirim request perubahan preffered name tersebut ke burp suite intercept. Inputkan basic payload SSTI. Sebagai contoh disini menggunakan payload {{7*7}}

  4. Namun yang ditampilkan terdapat {{}}, seharusnya hanya nilai dari 7*7saja yang tampil. Inputkan payload7*7tanpa {{}}. Maka berhasil, dapat diasumsikan bahwa sudah terdapat {{}}pada parameter tersebut

  5. Seperti yang terdapat pada informasi lab, target menggunakan teknologi tornadi python. maka dari itu dapat menggunakan informasi payload SSTI seperti yang terdapat di SSTI (Server Side Template Injection) | HackTricks

  6. Error tersebut terjadi karena kemungkinan asumsi sebelumnya yang memungkinkan sudah terdapat {{}} pada function tersebut. Jadi kita harus melakukan perumusan payload dengan menyesuaikan function tersebut dengan cara melakukan analisa lebih lanjut

  7. Dari hasil analisa didapatkan payload yang tidak menampilkan error yaitu payload 7*7}}{1*1}{{4*4 . Maka tidak akan terdapat error

  8. Dari sturkur payload 7*7}}{1*1}{{4*4 ubah 7*7}}

    {{os.system('id') menjadi untuk menjalankan perintah pada OS target

  9. Dengan payload diatas berhasil menjalankan perintah OS mendapatkan data id OS target. Maka dari itu, untuk menyelesaikan lab ini, hapus data morale.txt milik carlos. dengan payload 7*7}}

    {{os.system('rm /home/carlos/morale.txt')

Thanks, Stay Ethical & Happy Hacking! 🍻

Last updated