# Basic server-side template injection (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\\

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FsB8d5KOJukuld6VGGENg%2Fimage.png?alt=media&#x26;token=f001e2c9-e683-40b4-9099-4b615b3785c0" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2Fh7KcwRtIySV8VctiMU3n%2Fimage.png?alt=media&#x26;token=e3f90ec4-7376-4dab-8e3b-a35a4c24cb6e" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2F1xkUvrsGYrxHWHANs3Ry%2Fimage.png?alt=media&#x26;token=f142b5c6-aff1-45bb-9981-54cc2d29a7a8" alt=""><figcaption></figcaption></figure>
3. Kirim request perubahan preffered name tersebut ke burp suite intercept. Inputkan basic payload SSTI. Sebagai contoh disini menggunakan payload `{{7*7}}`\\

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FhdmGkqg1Bm1e04Fg1w8j%2Fimage.png?alt=media&#x26;token=a82ba7df-c4b8-4bf5-9885-dd7874a2904b" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2F8CNe7F3ECRkZaFsV94Lt%2Fimage.png?alt=media&#x26;token=5be88363-5c04-4f5f-a3ce-ef17a309fa5c" alt=""><figcaption></figcaption></figure>
4. Namun yang ditampilkan terdapat `{{}}`, seharusnya hanya nilai dari `7*7`saja yang tampil. Inputkan payload`7*7`tanpa `{{}}`. Maka berhasil, dapat diasumsikan bahwa sudah terdapat `{{}}`pada parameter tersebut\\

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FtaIyCnvaX4ZFLRwRvT1u%2Fimage.png?alt=media&#x26;token=eb9b3395-9ca4-4660-8bd8-b75c747055fd" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FCt0dd0gfzq3p99lIjhY1%2Fimage.png?alt=media&#x26;token=86b812b9-2f1f-4f03-a105-f8d69e7c27e1" alt=""><figcaption></figcaption></figure>
5. Seperti yang terdapat pada informasi lab, target menggunakan teknologi tornadi python. maka dari itu dapat menggunakan informasi payload SSTI seperti yang terdapat di [![](https://2783428383-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/collections%2FmuMguNrsRx2mNyNqEox4%2Ficon%2F1qCJ0VIDlWcvGSecYCDq%2Ffondo.png?alt=media\&token=1e721267-450f-43f3-861b-6c4f93278e93)SSTI (Server Side Template Injection) | HackTricks](https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection#tornado-python)\
   ​

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FjFiuEMP18x9BLH67zkhz%2Fimage.png?alt=media&#x26;token=2be29bce-fd6b-4236-b144-2ed87948b8a6" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FglgSCifFjWDNoqVu8wpo%2Fimage.png?alt=media&#x26;token=3e97d5cb-d708-42c1-83e7-01d1219575dc" alt=""><figcaption></figcaption></figure>
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\\

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FV6nVrbOVAGeYdeDxX08X%2Fimage.png?alt=media&#x26;token=2349667d-d825-4a44-af0c-0b105386f408" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FsWz2KNlN8JpVwWMq5HNo%2Fimage.png?alt=media&#x26;token=ef3dcf32-7cf5-4869-a871-f5107384d87f" alt=""><figcaption></figcaption></figure>
8. Dari sturkur payload `7*7}}{1*1}{{4*4` *ubah* `7*7}}`

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

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FP3tE6twfbHBJJ8tcqrOj%2Fimage.png?alt=media&#x26;token=c6b4913c-5a9a-4c2e-86f3-17512fb83515" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FJ5cRLBpruXq9STv9W9Cb%2Fimage.png?alt=media&#x26;token=3f2d0e01-08b8-4d9a-91de-edd34aec8976" alt=""><figcaption></figcaption></figure>
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')`\\

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2F8LF0R1W0aHJoBWFpAdQM%2Fimage.png?alt=media&#x26;token=8e4ad487-bca4-429a-80ea-d5c90af63587" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FHnls3VVudkz2xRr9MtTl%2Fimage%20(57).png?alt=media&#x26;token=9cf19991-cac7-4871-a60c-b9141fd14059" alt=""><figcaption></figcaption></figure>

Thanks, Stay Ethical & Happy Hacking! 🍻
