【WEB安全】flask不出网回显方式

本文介绍了在不联网的情况下,如何利用Flask框架进行回显,特别是在web安全的场景中。文章探讨了debug模式下的错误回显利用,以及尝试通过import模块和sys.modules获取app的不同方法。作者指出,通过sys.modules可以在非debug模式下成功添加后门路由,从而实现命令回显。文章以实战案例解析了这一过程,并提醒读者关注作者以获取更多网络安全学习资源。

前言

研究这个问题主要是打比赛的时候遇到了,题目内容大概是这样的【查看资料

# app.py
from flask import Flask, request, session, render_template_string, url_for, redirect
import pickle
import io
import sys
import base64
import random
import subprocess
from config import notadmin

app = Flask(__name__)


class RestrictedUnpickler(pickle.Unpickler):
    def find_class(self, module, name):
        if module in ['config'] and "__" not in name:
            return getattr(sys.modules[module], name)
        raise pickle.UnpicklingError("'%s.%s' not allowed" % (module, name))


def restricted_loads(s):
    """Helper function analogous to pickle.loads()."""
    return RestrictedUnpickler(io.BytesIO
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值