[NISACTF 2022]babyupload
一开始以为是传统的文件上传,但是怎么传传不上去


按f12查看源代码,显示有/source文件,直接访问然后下载了一个备份文件

然后开始代码审计。。。。(难蚌)
from flask import Flask, request, redirect, g, send_from_directory
import sqlite3
import os
import uuid
app = Flask(__name__)
SCHEMA = """CREATE TABLE files (
id text primary key,
path text
);
"""
def db():
g_db = getattr(g, '_database', None)
if g_db is None:
g_db = g._database = sqlite3.connect("database.db")
return g_db
@app.before_first_request
def setup(

文章描述了一个CTF挑战,其中涉及一个Web应用的文件上传功能。由于代码审计发现的绝对路径拼接漏洞,上传文件名以/开头时,可以绕过限制读取服务器根目录下的flag文件。通过将文件名设置为/flag,攻击者能够直接访问到flag的内容。
最低0.47元/天 解锁文章
1195

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



