FlaskJinja2 开发中遇到的的服务端注入问题研讨 II

访客5年前关于黑客接单1089

0×01. 测验代码
为了更好地演示Flask/Jinja2 开发中的SSTI问题,咱们建立一个小的POC程序,主要由两个python脚本组成, 其间page_not_found 存在SSTI缝隙:
Flask-test.py
    #!/usr/bin/env python
    # -*- coding:utf8 -*-
   
   
    import hashlib
    import logging
    from datetime import timedelta
   
    from flask import Flask
    from flask import request
    from flask import config
    from flask import session
    from flask import render_template_string
   
   
    from Config import ProductionConfig
   
    app = Flask(__name__)
    handler = logging.StreamHandler()
    logging_format = logging.Formatter(
                '%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s - %(lineno)s - %(message)s')
    handler.setFormatter(logging_format)
    app.logger.addHandler(handler)
   
    app.config.secret_key = "xe8xf7xb9xaexfbx87xea4
    app.config.from_object(ProductionConfig) #将装备类中的装备导入程序
    app.permanent_session_lifetime = timedelta(hours=6) #session cookies 有效期
    page_size = 60
    app.config['UPLOAD_DIR'] = '/var/www/html/upload'
    app.config['PLUGIN_UPDATE_URL'] = 'https://ForrestX386.github.io/update'
    app.config['PLUGIN_DOWNLOAD_ADDRESS'] = 'https://ForrestX386.github.io/download'
   
   
   
    @app.route('/')
    def hello_world():
        return 'Hello World!'
   
    @app.errorhandler(404)
    def page_not_found(e):
        template = '''
    {%% block body %%}
       
            Oops! That page doesn't exist.
            %s
       
    {%% endblock %%}
    ''' % (request.url)
        return render_template_string(template, dir=dir,help=help, locals=locals), 404
   
    if __name__ == '__main__':
        app.run(host='0.0.0.0')
 Config.py
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
   
   
    class Config(object):
        ACCOUNT = 'vpgame'
        PASSWORD = 'win666666'
   
   
    class DevlopmentConfig(Config):
        pass
   
   
    class TestingConfig(Config):
        pass
   
   
    class ProductionConfig(Config):
        HOST = '127.0.0.1'
        PORT = 65521
        DBUSERNAME = 'vpgame'
        DBPASSWORD = 'win666666'
        DBNAME = 'vpgame'
履行 python Flask-test.py

0×02. Flask/Jinja2 开发中的SSTI 利用之恣意文件读取
先介绍一些概念
关于类目标
instance.__class__ 能够获取当时实例的类目标

咱们知道python中新式类(也便是显现承继object目标的类)都有一个特点__class__能够获取到当时实例对应的类,随意挑选一个简略的新
式类实例,比方”,一个空字符串,便是一个新式类实例,所以”.__class__ 就能够获取到实例对应的类(也便是)
类目标中的特点__mro__
class.__mro__ 获取当时类目标的一切承继类

[1] [2] [3]  黑客接单网

相关文章

黑客接单多少钱_找黑客删除通话记录

V4版别· 日本最大的加密钱银买卖所Coincheck被黑,导致约580亿日元(约合5.33亿美元)的虚拟钱银新经币(NEM)忽然消失。 网络金融违法指的是针对银行等金融机构的网络进犯,在曩昔许多传统...

Badtunnel长途歹意绑架使用

BadTunnel 这个缝隙出来现已近一个月了,笔者在刚刚迸发这个缝隙的时分对其进行了剖析,而且写出了POC,最近闲来无事,又从头翻起这个缝隙,改进了进犯脚本,使之成为一个实践浸透测验中可用的一个东西...

手机信息安装,找黑客定位,微博上怎么找黑客

遥控器上的操控杆的一个方向(如上+下,左+右)由12bit来表明。 如表明左右方向及力度的数值power_lr由上数据的第5个字节和第6个字节的低4位决议,操控杆居中时power_lr为0x400(1...

新Mirai Variant瞄准企业无线演示和显现体系

2019年1月初,Unit 42发现了臭名远扬的IoT / Linux僵尸网络Mirai的一个新版别。 Mirai最知名的是在2019年,用于大规模、史无前例的DDoS进犯。一些最著名的方针包括:网络...

Hack the box靶机实战:Bastion-黑客接单平台

介绍 方针: 0.10.10.134 (Windows) Kali:10.10.16.65 总的来说,Bastion 其实并不是一个特别简略的机器。假如运用 windows 能够更方便地处理这台靶机。...

Java Web 工程源代码安全审计实战,第 2 部分: SQL 注入

前语 本文是 Java Web 工程源代码安全审计实战的第 2 部分,首要解说 WebGoat 工程的 SQL 注入源码审计思路和攻防演练。包含一般的 SQL 字符注入和 SQL 盲注两个事例,并扩展...