SHCTFWP

  1. Misc
    1. [Week1-Week4] 签到题
  2. [Week1]拜师之旅①
  3. [Week1]真真假假?遮遮掩掩!
  • Web
    1. [Week1] 1zflask
    2. [Week1] 单身十八年的手速
  • Misc

    [Week1-Week4] 签到题

    关注公众号得flag

    [Week1]拜师之旅①

    这题考察了对png文件头的理解,只要加上png的文件头即可恢复图片

    png文件头:89 50 4E 47 0D 0A 1A 0A

    恢复图片以后放入随波宽高修复一把梭即可得到flag

    [Week1]真真假假?遮遮掩掩!

    这题考察了伪加密和掩码攻击,上来先用随波修复一下伪加密的zip文件即可解开第一层,然后得到的就是真加密,然后压缩包的注释提示了密码是SHCTF??????FTCHS

    其实一看六位猜也能猜到是202410,也就是比赛举办的时间,当然用APCHPR进行掩码攻击也可以很快的得到密码

    Web

    [Week1] 1zflask

    robots.txt发现题目路径,访问后得到了题目源码

    import os
    import flask
    from flask import Flask, request, send_from_directory, send_file
    
    app = Flask(__name__)
    
    @app.route('/api')
    def api():
        cmd = request.args.get('SSHCTFF', 'ls /')
        result = os.popen(cmd).read()
        return result
        
    @app.route('/robots.txt')
    def static_from_root():
        return send_from_directory(app.static_folder,'robots.txt')
        
    @app.route('/s3recttt')
    def get_source():
        file_path = "app.py"
        return send_file(file_path, as_attachment=True)
     
    if __name__ == '__main__':
        app.run(debug=True)
    

    发现了传参SSHCTFF 即可实现rce,ls一下看到flag在根目录

    [Week1] 单身十八年的手速

    开个连点器点到520下即可,当然也可以控制台传参,我看这题次数不多就直接连点器启动了,然后得到flag的base64形式,解密一下就可以了。