ISCTF2023新生赛部分WP
MISC:
签到:
给的是 分开的图片 拼一下即可。
在线拼图:https://fulicat.com/lab/pintu/
PS:图片我就不放了,二维码过不了审
ISCTF{W3lcom3_7O_2023ISCTF&BlueShark}
你说爱我?尊嘟假嘟:
zip
没后缀放入010 PK
头直接修改后缀解压一个word
文档开始以为是二进制啥的替换
后面想到了是Ook
码刚好 三段 进行尝试!!
python
你说爱我 Ook.
尊嘟 Ook!
假嘟 Ook?
在线Ook
编码:https://www.splitbrain.org/services/ook
bash
ild3l4pXejwPcCwJsPAOq7sJczdRdTsJcCEUsP1Z #base64换表解码
ISCTF{9832h-s92hw-23u7w-2j8s0}
小蓝鲨的秘密:
放入010
发现存在伪加密09
改为00
(收尾都要改不然打不开呢!)
cpp
可爱的小蓝鲨不知道这个字符串是什么,强大的你,你能告诉小蓝鲨吗?
U2FsdGVkX1/ij5Hxtt6G8tDvbXIQcMLJ6isLpLmxqxW8mOmFIB4DgBGXSR3ceEcj
这里crc
爆破修改宽高 可以直接攻击梭哈 也可以手动 得到密码:15CTF2023
AES
在线解密:http://www.esjson.com/aesEncrypt.html
ISCTF{2832-3910-232-3742-7320}
easy_zip:
直接ARCHPR
直接爆破 得到密码:011865
ISCTF{b04c3d02-16e9-4735-b5d9-f0ad31fa2853}
杰伦可是流量明星:
得到一个压缩包进行解压,得到login.mp3
看到音频尝试 工具Audacity
无果
放入010
发现 存在wireshark
特征 修改后缀进行分析 直接筛选http
协议,搜到flag,url
解码
ISCTF{wddhr836459_83}
蓝鲨的福利:
添加文件头 89 50 4E 47
修改png
后缀,确实是福利题!!
ISCTF{blueshark_welcome_you}
Ez_misc:
ppt
里面最后一张下面有密码:M13c_!ps2s23
图片打不开 放入010
观察发现没有头和尾进行添加得到原图,发现里面能看到二维码进行扫码。
cpp
FF D8 FF E0
FF D9
PS:二维码过不了审,直接贴 结果把!!
ISCTF{5e093f8a-6b8c-4fa5-b9f7-0ae3b6b0da56}
PNG的基本食用:
cpp
part1:
crc爆破宽高01改08
part3
: 直接放入010
尾部 有 拼接即可。
ISCTF{png-is-for-you}
小猫:
binwalk -e
或者foremost
分离得到一张图片 发现没东西,然后尝试这张图 进行LSB
隐写查看
使用工具Stegsolve
在红色3
通道发现一串数组提取,猜测是核心价值观编码 然后进行数组替换
脚本如下:
python
key = [['富强','自由' ,'爱国'],['民主', '平等' ,'敬业'] ,['文明','公正','诚信'],['和谐','法治','友善']]
wdf = [ (3,2),(3,2),(3,2),(3,3),(3,1),(3,2),(2,1),
(3,2),(4,2),(4,2),(3,3),(2,1),(3,2),(2,1),
(3,2),(4,1),(3,2),(2,1),(4,1),(2,1),(4,1),
(2,3),(4,1),(2,2),(3,2),(3,2),(3,2),(1,2),
(4,1),(4,1),(3,2),(1,2),(4,1),(1,1),(3,2),
(3,2),(4,1),(3,1),(4,1),(4,1),(4,1),(2,3),
(4,1),(3,1),(4,1),(2,2),(4,1),(1,2),(4,1),
(1,3),(3,2),(1,2),(4,1),(1,1),(4,1),(3,1),
(4,1),(2,3),(4,1),(4,2),(4,1),(3,2),(4,1),
(4,2),(3,2),(1,2),(3,2),(3,1),(3,2),(3,2),
(4,1),(4,2),(4,1),(3,2),(4,1),(3,2),(4,2),
(4,3),(4,2)]
for i in wdf:
x = i[0]-1
y = i[1]-1
print(key[x][y],end='')
python
公正公正公正诚信文明公正民主公正法治法治诚信民主公正民主公正和谐公正民主和谐民主和谐敬业和谐平等公正公正公正自由和谐和谐公正自由和谐富强公正公正和谐文明和谐和谐和谐敬业和谐文明和谐平等和谐自由和谐爱国公正自由和谐富强和谐文明和谐敬业和谐法治和谐公正和谐法治公正自由公正文明公正公正和谐法治和谐公正和谐公正法治友善法治
在线核心价值观解码:http://anhao.tlrkl.top/hxjzg.html
flag{aca195fd3d0f2392548d029767dbf766}
MCSOG-猫猫:
PS:猫猫说的话带有一大段意义不明的东西,试试在linux下用vim看看?
在线0
宽字节解密:https://www.mzy0.com/ctftools/zerowidth1/
ISCTF{[o]F0o0.LliI_Bu_D4Ng_r3n}
镜流:
爆破得到密码:306256
hint:把图片缩小10倍
发现图片有很多像素点,写个脚本缩小10倍:
脚本如下:
python
from PIL import Image
img = Image.open('1new.png')
w = img.width
h = img.height
img_obj = Image.new("RGB",(w//10,h//10))
for x in range(w//10):
for y in range(h//10):
(r,g,b)=img.getpixel((x*10,y*10))
img_obj.putpixel((x,y),(r,g,b))
img_obj.save('ok.png')
bash
zsteg ok.png
ISCTF{JINGLIU_IS_SO_COOL}
小白小黑:
看数据长度为256*256
就知道是画图,然后生成二维码,写个脚本 如下:
python
from PIL import Image
# 创建一个256x256的灰度图像
img = Image.new('L', (256, 256))
# 打开文件并读取数据
with open('黑白.txt', 'r', encoding='utf-8') as f:
data = f.readlines()
# 遍历图像的每一个像素
for i in range(256):
for j in range(256):# 从数据中获取像素值并转换为整数
pixel_value = int(data[j][i])
img.putpixel((j, i), pixel_value)
# 保存图像
img.save('1.png')
得到一张图黑色看不出来,其实里面有二维码 通过工具Stegsolve
我是在绿色通道看到比较明显的二维码(不放二维码了 过不了审核)我这里QR
扫不到 你们可以通过在线网站,我直接手机扫出了
ISCTF{3a151409-1351-4e32-a5f5-74a89fa29699}
张万森,下雪了:
加个后缀zip
得到一个包和dic.txt
(很明显是字典,直接爆破)得到密码:blueSHARK666
tip.txt
有点像Base64
EZcrc:
因为这里字节是3
所以就使用3
字节的脚本:
python
import zipfile
import binascii
import string
from tqdm import tqdm
fname_fcrc = {}
fcrc_fnames = {}
fcrc_value = {}
archive = zipfile.ZipFile("C:/Users/Lucian/Downloads/flag.zip")
print('正在提取crc:')
for fname in tqdm(archive.namelist()):
name_info = archive.getinfo(fname)
fcrc = name_info.CRC
fname_fcrc[fname] = fcrc
fcrc_fnames[fcrc] = []
for fname in fname_fcrc:
fcrc = fname_fcrc[fname]
fcrc_fnames[fcrc].append(fname)
print('正在破解3字节长crc')
for i in tqdm(range(0, 256)):
tempi = hex(i)[2:]
if len(tempi) == 1:
tempi = '0' + tempi
tempi = binascii.a2b_hex(tempi)
for j in range(0, 256):
tempj = hex(j)[2:]
if len(tempj) == 1:
tempj = '0' + tempj
tempj = binascii.a2b_hex(tempj)
for k in range(0, 256):
tempk = hex(k)[2:]
if len(tempk) == 1:
tempk = '0' + tempk
tempk = binascii.a2b_hex(tempk)
fcrc = binascii.crc32(tempi + tempj + tempk)
if fcrc in fcrc_fnames:
fcrc_value[fcrc] = tempi + tempj + tempk
print(f'总crc个数:{len(fcrc_fnames)},破解成功个数:{len(fcrc_value)}')
result = {}
print('正在将结果编码:')
for fcrc in tqdm(fcrc_value):
for fname in fcrc_fnames[fcrc]:
result[fname] = fcrc_value[fcrc].decode()
print('编码结果:')
for i in range(0, len(result)):
print(result[f'{i}.txt'], end='')
dart
大写的乌壹大写的资大写的喔大写的日大写的佛大写的资大写的佛大写的巫基得大写的讷大写的迂大写的鹅伍日大写的特大写的巫坡讷大写的摸大写的乌伍陆啊叁大写的日大写的喔大写的日大写的哥得肆大写的特大写的乌大写的摸巫大写的摸大写的佛坡大写的鹅大写的欺大写的特大写的迂大写的摸大写的迂大写的哥希坡大写的巫勒得大写的日得大写的佛勒大写的希大写的日大写的希喝大写的喔大写的迂零大写的资坡大写的巫大写的迂大写的日科啊零壹大写的乌大写的日摸特摸大写的乌大写的特零玖
读音有两个衣,这个出题的作者很细节哈,把小写y
读音换成歪了,这个题两个y
,且都是小写的
dart
# -*- coding: GB2312 -*-
import base64
conversion_table = {
'A': '大写的啊',
'B': '大写的玻',
'C': '大写的雌',
'D': '大写的得',
'E': '大写的鹅',
'F': '大写的佛',
'G': '大写的哥',
'H': '大写的喝',
'I': '大写的衣',
'J': '大写的基',
'K': '大写的科',
'L': '大写的勒',
'M': '大写的摸',
'N': '大写的讷',
'O': '大写的喔',
'P': '大写的坡',
'Q': '大写的欺',
'R': '大写的日',
'S': '大写的思',
'T': '大写的特',
'U': '大写的乌',
'V': '大写的迂',
'W': '大写的巫',
'X': '大写的希',
'Y': '大写的衣',
'Z': '大写的资',
'a': '啊',
'b': '玻',
'c': '雌',
'd': '得',
'e': '鹅',
'f': '佛',
'g': '哥',
'h': '喝',
'i': '衣',
'j': '基',
'k': '科',
'l': '勒',
'm': '摸',
'n': '讷',
'o': '喔',
'p': '坡',
'q': '欺',
'r': '日',
's': '思',
't': '特',
'u': '乌',
'v': '迂',
'w': '巫',
'x': '希',
'y': '衣',
'z': '资',
}
numbers = {'0':'零','1':'壹', '2':'贰', '3':'叁', '4':'肆', '5':'伍', '6':'陆', 7:'柒', '8':'捌', '9':'玖'}
table=dict([val,key] for key,val in conversion_table.items())
numbers=dict([val,key] for key,val in numbers.items())
# print(table[])
test="大写的乌壹大写的资大写的喔大写的日大写的佛大写的资大写的佛大写的巫基得啊大写的迂大写的哥思壹大写的特勒得啊啊零伍大写的喝大写的特大写的希大写的日大写的喔大写的日大写的鹅大写的鹅歪大写的特零大写的摸巫大写的摸大写的佛勒欺大写的思大写的特大写的佛大写的摸大写的迂零大写的资特大写的特大写的巫壹大写的基得大写的鹅壹大写的希大写的特大写的特大写的基大写的喔大写的日大写的哥大写的日欺大写的特大写的迂大写的日喔玻大写的乌零歪大写的巫摸勒摸大写的乌大写的特零玖"
for key in table:
test=test.replace(key, table[key])
for key in numbers:
test = test.replace(key,str(numbers[key]))
for key in numbers:
test = test.replace("歪", "y") #这个地方比较特殊,在读音里面有两个衣
#print(test)
# print(test,conversion_table)
print(test)
print(base64.b64decode(base64.b64decode(test)))
ISCTF{e995fd4c-4068-4b25-af2b-1c647c18f3fb}