前言
研究这个问题主要是打比赛的时候遇到了,题目内容大概是这样的【查看资料】
# 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

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

被折叠的 条评论
为什么被折叠?



