NSS [NISACTF 2022]babyupload

这篇具有很好参考价值的文章主要介绍了NSS [NISACTF 2022]babyupload。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

NSS [NISACTF 2022]babyupload

源码给了提示,/source路径

NSS [NISACTF 2022]babyupload,CTF-web(零散wp合集),web安全

访问后得到一个文件,是源码

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():
    os.remove("database.db")
    cur = db().cursor()
    cur.executescript(SCHEMA)


@app.route('/')#返回源码】
def hello_world():  
    return """<!DOCTYPE html>
<html>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="file">
    <input type="submit" value="Upload File" name="submit">
</form>
<!-- /source -->
</body>
</html>"""


@app.route('/source')#访问时下载文件】
def source():
    return send_from_directory(directory="/var/www/html/", path="www.zip", as_attachment=True)


@app.route('/upload', methods=['POST'])
def upload():
    if 'file' not in request.files:
        return redirect('/')
    file = request.files['file']
    if "." in file.filename:#过滤了带文件名中带  .   的文件。】
        return "Bad filename!", 403
    conn = db()
    cur = conn.cursor()
    uid = uuid.uuid4().hex#这个代码是进行一个sql语句,表示增加一个数据,数据为uid和文件名。】#因此我们只需要传输一个文件名为/flag的文件就可以得到flag的uid。然后再访问对应路径就可以得到flag】
	try:
        cur.execute("insert into files (id, path) values (?, ?)", (uid, file.filename,))
    except sqlite3.IntegrityError:
        return "Duplicate file"
    conn.commit()

    file.save('uploads/' + file.filename)
    return redirect('/file/' + uid)


@app.route('/file/<id>')
def file(id):
    conn = db()
    cur = conn.cursor()
    cur.execute("select path from files where id=?", (id,))
    res = cur.fetchone()
    if res is None:
        return "File not found", 404

    # print(res[0])

    with open(os.path.join("uploads/", res[0]), "r") as f:
        return f.read()


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=80)

解题

1、随便选择一个文件NSS [NISACTF 2022]babyupload,CTF-web(零散wp合集),web安全

2、抓包,修改文件名字为/flag

NSS [NISACTF 2022]babyupload,CTF-web(零散wp合集),web安全

3、访问返回的文件路径即得flag

NSS [NISACTF 2022]babyupload,CTF-web(零散wp合集),web安全文章来源地址https://www.toymoban.com/news/detail-536137.html

到了这里,关于NSS [NISACTF 2022]babyupload的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 青少年CTF-Web-帝国CMS1-3通关记录

    本次进通过平台内题目进行,非真实环境。 首先下发题目链接 我们首先先找后台看看 后台地址为 /e/admin/ 随后,经过dirsearch进行扫描,得到了一个www.zip 访问扫描到的www.zip,得到网站源码 使用D盾扫描,得到eval后门。 蚁剑链接 得到根目录的Flag 这道题目和CMS01差不多,但是

    2024年02月03日
    浏览(49)
  • 【CTF-web】备份是个好习惯(查找备份文件、双写绕过、md5加密绕过)

    题目链接:https://ctf.bugku.com/challenges/detail/id/83.html 经过扫描可以找到index.php.bak备份文件,下载下来后打开发现是index.php的原代码,如下图所示。 由代码可知我们要绕过md5加密,两数如果满足科学计数法的形式的话,php会将其当作科学计数法所得的数字来进行比较,根据该原

    2024年02月12日
    浏览(41)
  • [CTF]2022美团CTF WEB WP

    最终排名 源码 由上源码可知想要造成pickle反序列化需要两步: 1.得到secret_key 2.绕过黑名单造成pickle反序列化漏洞 那么先来实现第一步: app.config[‘SECRET_KEY’] = os.urandom(2).hex() #设置key为随机打乱的4位数字字母组合例如a8c3 从这里知道,想要爆破key其实并不难,可以自己试试 那

    2024年02月06日
    浏览(48)
  • [NISACTF 2022]bingdundun

    1. 进入靶场环境,提示upload,应该是一个文件上传与文件包含相关的题目。 2. 点击upload进入文件上传页面。看到url有一个bingdundun的get传参,我们尝试传入其他值尝试一下。 3. 尝试传入index,发现index页面的内容被大量包含进来,并且会自动在后面添加.php 4. 在看文件上传点提

    2024年02月10日
    浏览(50)
  • NSS [MoeCTF 2022]ezphp

    先看题目,看到这个就想到了BUU的mark love cat。但是完全不一样,这道题exit()在foreach()之前 法一且唯一: echo回显flag 如果要echo,那么不能exit,那么必须传flag(get或者post),并且传入flag不能等于\\\"flag\\\",如果要¥flag的值不会被更改,那就得提前“储存”flag。顺序不能变,必须

    2024年02月12日
    浏览(39)
  • NSS [MoeCTF 2022]baby_file

    题目源码直接给了 使用data伪协议发现被ban了。 那就换一种伪协议 php://filter ,猜测flag在同目录下 flag.php 中或根目录下 /flag 中 读取文件源码(针对php文件需要base64编码) 解码后发现flag

    2024年02月13日
    浏览(48)
  • NSS [UUCTF 2022 新生赛]ez_upload

    考点:Apache解析漏洞 开题就是标准的上传框 起手式就是传入一个php文件,非常正常的有过滤。 .txt 、 .user.ini 、 .txxx 都被过滤了,应该是白名单或者黑名单加MIME过滤,只允许 .jpg 、 .png 。 猜测二次渲染,传了图片马上去,但是没什么用,还抓不到包了。 network看了一下报文

    2024年02月13日
    浏览(44)
  • NSS刷web(1)

    一点点做,简单的也不跳了,就当回忆知识了 ctrl+u 改ua xff 访问robots.txt 传phtml 改mime 绕过wakeup 低版本php可以让序列化中属性的个数与实际不符来绕过 生成的序列化值 O:6:\\\"HaHaHa\\\":2:{s:5:\\\"admin\\\";s:5:\\\"admin\\\";s:6:\\\"passwd\\\";s:4:\\\"wllm\\\";} 手动改完 O:6:\\\"HaHaHa\\\":3:{s:5:\\\"admin\\\";s:5:\\\"admin\\\";s:6:\\\"passwd\\\";s:4:\\\"wllm\\\";}

    2024年02月09日
    浏览(37)
  • [CTF]-ISCC2022复现

    一年一度的ISCC终于结束,题目质量很高,高到做不出来 讲道理,擂台题是真的为了出题而出题,真的卷不动了 以下是自己整理的wp,有详有略,感谢师傅们借鉴思路 图片CRC值报错 修改高度 得到 unicode 编码 所以rar的密码是 灯笼 得到 flag.jpg 用 txt 打开就是 flag png图片改高度

    2023年04月26日
    浏览(59)
  • 【2022Paradigm.ctf】random writeup

    区块链智能合约相关题目,挺有意思,简单分享。 题目内包含两个链接: https://github.com/paradigmxyz/paradigm-ctf-infrastructure 对应后端服务搭建相关,只看eth-challenge-base目录即可。 random.zip,合约代码内容,也是题目关键,合约代码贴在后面。 1 - launch new instance 2 - kill instance 3 - g

    2024年02月06日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包