[DownUnderCTF2024]co2

admin999 2025-10-14 03:08:53 279 0 返回题目详情


题目描述:

一群喜欢"打破传统"做事的学生搭了一个网络安全博客站。你被雇佣对他们的网络应用进行深入的白盒测试。


附件下载下来开始审计

这里找到一个flag相关的函数,深入搜索发现变量flag没给用户赋值的机会,,,

!routes.py! ↓@app.route("/save_feedback", methods=["POST"])
@login_required
def save_feedback():
    data = json.loads(request.data)
    feedback = Feedback()
    # Because we want to dynamically grab the data and save it attributes we can merge it and it *should* create those attribs for the object.
    merge(data, feedback)
    save_feedback_to_disk(feedback)
    return jsonify({"success": "true"}), 200

@app.route("/get_flag")


目光移到save_feedback这个函数,注释写了会把接到的data里的属性全合并到feedback对象里,甚至包括feedback对象没有的属性,比如__class__.__init__.__global__.flag,这样就可以通过类污染来给flag赋值了。关于python类污染可以看这篇文章prototype pollution in python...

构建一个payload

再次访问/get_flag,此时ifflag=="true"已成立,触发

       return"DUCTF{NOT_THE_REAL_FLAG}"

分类:WEB
image
作者:admin999

1

提交

0

收入

相关WriteUP

  • cookiehead

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • WEB
    • 8月前
  • sqli-0x1 Writeup

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • WEB
    • 2年前
  • [HackINI-2022] lfi WriteUp

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • WEB
    • 2年前
  • just-work-type

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • WEB
    • 2年前
  • SQL注入.2

    ***收费WriteUP请购买后查看,VIP用户可免费查看***

    • WEB
    • 11月前
问题反馈