解题思路:
知识点:
SSTI 就是服务器端模板注入(Server-Side Template Injection),SSTI漏洞的代码通常是使用不受信任的用户输入作为模板引擎的变量。
如 Python-Flask Php 的twig、smarty,更多内容参考https://blog.csdn.net/huangyongkang666/article/details/123628875
1、点击查看flag 展示用户Ip,点击查看hint 在源码中查看到注释<!-- Do you know why i know your ip? -->
2、添加x-forwarded-for:1.1.1.1 结果返回伪造的ip地址
3、查看robots.txt、备份文件、修改请求方法、目录扫描均未发现有用信息
4、尝试是否存在ssti 漏洞x-forwarded-for:{1+1} 返回ip为2 说明存在ssti漏洞 ,其中{}是标识符,不同模板中的标识符也不相同。将标识符中的内容作为代码执行
(检测是否存在ssti 一般都是在Url、参数、header 输入{1+1}或者{{1+1}} 看看返回信息是否包含2)
5、x-forwarded-for:{system('ls')} 查看目录文件 x-forwarded-for:{system('cat ../../../../flag')} 读取flag