百家姓

baijiaxing.txt

百家姓解码:http://anhao.tlrkl.top/

16.txt

十六进制转字符串:https://www.sojson.com/hexadecimal.html

str.txt

image

17insanity

打开就有flag

image

17sanity

打开就有flag

image

签到

提示平台就是题目,打开源码

149行发现base64

image

两次base64解码得到flag

image

八卦迷宫

image

1
2
cazy{战长恙长战恙河长山山安战疫疫战疫安疫长安恙}
cazy{zhanchangyangchangzhanyanghechangshanshananzhanyiyizhanyianyichanganyang}

Bear

熊曰:http://hi.pcmoe.net/

领悟熊所言奥秘

image

西安加油

导出全部的http对象

image

把hint.txt base32解码

image

把secret.txt base64解码

image

还原压缩包文件

image

flag: cazy{make_XiAN_great_Again}

xcel破解

image

flag:flag{office_easy_cracked}

FireFox Forensics

logins.json文件:将用户所有登录信息(包括URL,用户名,密码和其他元数据)存储为JSON。值得注意的是,这些文件中的用户名和密码均经过3DES加密,然后经过ASN.1编码,最后写入base64编码的文件中,用一个测试登录信息如下所示,其中encryptedUsername和encryptedPassword就是被加密的用户名和密码

题目提示是火狐的登陆凭证,推荐使用破解。将key4.db、logins.json复制到firepwd目录下,用firepwd.py破解。​**

1
python firepwd.py logins.json

image

1
GKCTF{9cf21dda-34be-4f6c-a629-9c4647981ad7}

Game

index.html中发现一串base32

suctf{hAHaha_Fak3_F1ag} 不是真的flag

图片的LSB发现base64

1
U2FsdGVkX1+zHjSBeYPtWQVSwXzcVFZLu6Qm0To/KeuHg8vKAxFrVQ==

解码后头部是Salted,应该是AES或者3DES

https://www.sojson.com/encrypt_triple_des.html

密钥为之前的假flag:suctf{hAHaha_Fak3_F1ag}

image

好怪哦

16进制编辑器打开发现文件被倒转

编写脚本进行倒序,得到正常的zip

1
2
3
4
f=open('fuck.zip','rb').read()
m=open('flag.zip','wb')
m.write(f[::-1])
m.close()

解压得到flag.png,无法正常打开,发现缺少PNG文件头,补齐89 50 4E 47后可以打开,但缺少一半,修改图片高度得到flag

image

flag:DASCTF{f8b275b06baf4204fa62743eab5eca98}

caesar

1
2
3
4
题目:caesar
描述:gmbhjtdbftbs
flag格式:XXX 明文
提交:直接提交明文 (小写)

凯撒解密

image

flag:flag{flagiscaesar}

just_a_rar

爆破得到密码

image

图片放到十六进制编辑器里面查看得到flag

image

flag:flag{Wadf_123}

Top1

密文:Top1.txt

15次base64解密之后得到flag

flag:qsnctf{35ff2b53-2e50-4ea5-9554-3cdce083a096}

Attack

(28条消息) BUUCTF:[安洵杯 2019]Attack_末初mochu7的博客-CSDN博客

easyrsa

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from Crypto.Util.number import getPrime,bytes_to_long
from sympy import Derivative
from fractions import Fraction
from secret import flag
p=getPrime(1024)
q=getPrime(1024)
e=65537
n=p*q
z=Fraction(1,Derivative(arctan(p),p))-Fraction(1,Derivative(arth(q),q))
m=bytes_to_long(flag)
c=pow(m,e,n)
print(c,z,n)
'''
output:
7922547866857761459807491502654216283012776177789511549350672958101810281348402284098310147796549430689253803510994877420135537268549410652654479620858691324110367182025648788407041599943091386227543182157746202947099572389676084392706406084307657000104665696654409155006313203957292885743791715198781974205578654792123191584957665293208390453748369182333152809882312453359706147808198922916762773721726681588977103877454119043744889164529383188077499194932909643918696646876907327364751380953182517883134591810800848971719184808713694342985458103006676013451912221080252735948993692674899399826084848622145815461035
32115748677623209667471622872185275070257924766015020072805267359839059393284316595882933372289732127274076434587519333300142473010344694803885168557548801202495933226215437763329280242113556524498457559562872900811602056944423967403777623306961880757613246328729616643032628964072931272085866928045973799374711846825157781056965164178505232524245809179235607571567174228822561697888645968559343608375331988097157145264357626738141646556353500994924115875748198318036296898604097000938272195903056733565880150540275369239637793975923329598716003350308259321436752579291000355560431542229699759955141152914708362494482
15310745161336895413406690009324766200789179248896951942047235448901612351128459309145825547569298479821101249094161867207686537607047447968708758990950136380924747359052570549594098569970632854351825950729752563502284849263730127586382522703959893392329333760927637353052250274195821469023401443841395096410231843592101426591882573405934188675124326997277775238287928403743324297705151732524641213516306585297722190780088180705070359469719869343939106529204798285957516860774384001892777525916167743272419958572055332232056095979448155082465977781482598371994798871917514767508394730447974770329967681767625495394441
'''

c,e,n已知,求出p,q即可
题目中关于p,q的线索在变量z,分析z,推导公式如下:
在这里插入图片描述

其中Derivative()是求导函数,Fraction(a,b)相等于a/b,经过计算可知z = p^2 + q^2
又因为n = p * q,所以

1
2
3
p + q = sqrt(z + 2 * n)
p - q = sqrt(z - 2 * n)
连立方程组即可解出p,q

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import gmpy2
from Crypto.Util.number import *
c = 7922547866857761459807491502654216283012776177789511549350672958101810281348402284098310147796549430689253803510994877420135537268549410652654479620858691324110367182025648788407041599943091386227543182157746202947099572389676084392706406084307657000104665696654409155006313203957292885743791715198781974205578654792123191584957665293208390453748369182333152809882312453359706147808198922916762773721726681588977103877454119043744889164529383188077499194932909643918696646876907327364751380953182517883134591810800848971719184808713694342985458103006676013451912221080252735948993692674899399826084848622145815461035
z = 32115748677623209667471622872185275070257924766015020072805267359839059393284316595882933372289732127274076434587519333300142473010344694803885168557548801202495933226215437763329280242113556524498457559562872900811602056944423967403777623306961880757613246328729616643032628964072931272085866928045973799374711846825157781056965164178505232524245809179235607571567174228822561697888645968559343608375331988097157145264357626738141646556353500994924115875748198318036296898604097000938272195903056733565880150540275369239637793975923329598716003350308259321436752579291000355560431542229699759955141152914708362494482
n = 15310745161336895413406690009324766200789179248896951942047235448901612351128459309145825547569298479821101249094161867207686537607047447968708758990950136380924747359052570549594098569970632854351825950729752563502284849263730127586382522703959893392329333760927637353052250274195821469023401443841395096410231843592101426591882573405934188675124326997277775238287928403743324297705151732524641213516306585297722190780088180705070359469719869343939106529204798285957516860774384001892777525916167743272419958572055332232056095979448155082465977781482598371994798871917514767508394730447974770329967681767625495394441
x = gmpy2.iroot(z + 2 * n, 2)[0]
y = gmpy2.iroot(z - 2 * n, 2)[0]
e = 65537
p = (x + y) // 2
q = x - p
d = gmpy2.invert(e, (p - 1) * (q - 1))
print(long_to_bytes(pow(c, d, n)))
) * (q - 1))
print(long_to_bytes(pow(c, d, n)))

从尾看到头

16进制编辑器打开发现文件被倒转

编写脚本进行倒序,得到正常的zip

1
2
3
4
f=open('fuck.zip','rb').read()
m=open('flag.zip','wb')
m.write(f[::-1])
m.close()

galf.zip再次进行倒叙解压需要密码

扫吧.7z有32个二维码,python脚本解一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# -*- coding: utf-8-*-
from PIL import Image
import pyzbar.pyzbar as pyzbar

def QRcode_message(image):
img = Image.open(image)
# 因为一张图片可能是一张二维码,也可能里面有许多二维码
barcodes = pyzbar.decode(img)
for barcode in barcodes:
barcodeData = barcode.data.decode("utf-8")
print(barcodeData,end='')
with open('./1.txt','a')as f:
f.write(barcodeData)
f.close()

if __name__ == '__main__':
for i in range(1,32):
QRcode_message(str(i)+'.png')

base64解出来就是galf.zip的密码

image

再用base64解一下就是flag

base64:https://icyberchef.com

image

119sanity

打开就是flag

上号

文件->导出对象->http对象

使用steghide工具

1
steghide extract -sf shanghao.jpg -p qsnctf

image

BASE64隐写

base64隐写,利用脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
def get_base64_diff_value(s1, s2):
base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
res = 0
for i in xrange(len(s2)):
if s1[i] != s2[i]:
return abs(base64chars.index(s1[i]) - base64chars.index(s2[i]))
return res
def solve_stego():
with open('ComeOn!.txt', 'rb') as f:
file_lines = f.readlines()
bin_str = ''
for line in file_lines:
steg_line = line.replace('\n', '')
norm_line = line.replace('\n', '').decode('base64').encode('base64').replace('\n', '')
diff = get_base64_diff_value(steg_line, norm_line)
print diff
pads_num = steg_line.count('=')
if diff:
bin_str += bin(diff)[2:].zfill(pads_num * 2)
else:
bin_str += '0' * pads_num * 2
print goflag(bin_str)
def goflag(bin_str):
res_str = ''
for i in xrange(0, len(bin_str), 8):
res_str += chr(int(bin_str[i:i + 8], 2))
return res_str
if __name__ == '__main__':
solve_stego()

image

ez-usb

3_2.zip

取 USB 信息

根据题目信息,直接获取键盘数据即可

在 Wireshark 上方输入过滤器 usb.src==”1.8.1” ,回车确认,点击 文件、导出特定分组 把这些数据导出

成功得到一个新的 pcapng 文件

提取信息

使用了 github 的脚本,其中使用了 tshark 来提取流量信息,如果在 Linux 下无法安装 tshark 可手动更改此脚本,先使用 Wireshark 自带的 tshark 提取信息再拿去处理

1
https://github.com/WangYihang/UsbKeyboardDataHacker

image

双击 exe 文件,输入密码即可得到 flag{y0u_Are_prettY_g@od}

image

excel骚操作

flag.xlsx

打开文件 除了第一行的文字再没发现其他东西
随便点点,发现有些单元格显示值为1,有些不显示。

image

image

第二步
将值为1 的单元格显示出来。
选中若干单元格,右击,单元格格式,如图所示。

image

第三步
看样子像是二维码一样的排列,将值为1的单元格涂黑。(明明excel这步怎么做是最重要的好多教程一笔带过,真是服了)
选中单元格,点击条件格式,突出显示单元格规则,等于,自定义格式为黑色。

image

得到图案稍微调整一下行高。设置行高27

image

第四步
扫码 看上去不像是二维码,用微信扫不出来
查资料发现是汉信码。
打开中国编码网下载对应app,扫码得到flag。

Flag:flag{9ee0cb62-f443-4a72-e9a3-43c0b910757e}

疑惑点:

这是哪个功能给隐藏的?网上查到了能达到题目中隐藏效果的操作。

数字——自定义——类型中输入;;;

gakki

gakki.rar

图片分离得到rar

暴破得到压缩包的密码

image

大量无特征、无规律字符 python脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# -*- coding:utf-8 -*-
#Author: mochu7
alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_+- =\\{\\}[]"
strings = open('./flag.txt').read()

result = {}
for i in alphabet:
counts = strings.count(i)
i = '{0}'.format(i)
result[i] = counts

res = sorted(result.items(),key=lambda item:item[1],reverse=True)
for data in res:
print(data)

for i in res:
flag = str(i[0])
print(flag[0],end="")

image

flag:GXY{gaki_IsMyw1fe}

EZjoanDaemen

EZjoanDaemen.zip

  1. 伪加密
1
2
3
50 4B 01 02 14 00 14 00 01 00 08
改为
50 4B 01 02 14 00 14 00 00 00 08

解压后得到一个 docx 文档

  1. SNOW 隐写

复制 docx 最下面的字符进入空白的 txt 文件

1
.\SNOW.EXE -C .\2.txt

得到:aes_key:welcome_to_misc!

  1. DOCX 隐写

以压缩包格式打开 docx 文件,在目录 word/media/images 下得到以 new_ 开头的 166 张图片

  1. LSB 隐写

使用任意工具查看图片的最低有效位的拼接数据,发现一串类似 base64 加密的数据,结合上文 AES 相关信息,解密得到字符 f

1
数据:0WRw/OqyTiaWX9ZN+AI+Ew==
  1. 批量处理

按顺序查看以下 3 张图片,结合第一张图片共得到 4 个字符 flag

脚本在 exp 文件夹内

1
2
$ python exp.py
flag{Vm0xd1IyRXhTWGxUV0dST1ZsZG9VVll3V25kVU1WWjBZMGhLYkdKSFVucFdWM1JyWVVkR05sSnJiRlZXYlZFd1ZqRlZkMlZHVG5GVGJHaFRVbGQzTUZkVVFtdFNNV1JJVTJ0c2FsSnVRbkphVjNCQ1RsRTlQUT09}

多次 Base64 解密后得到最终答案

1
flag{Yah0oo0_we1c0me_to_miiisc}

原sher

sher.zip

压缩包密码 qsnctf

image

修改图片高度得到flag

image

flag:qsnctf{c1f5e391-83dd-47e3-9f15-0e32eaafdc95}

三体

发现是兽音译者
https://roar.iiilab.com/

解开后ATCR3mQzvYSfQFbZiSxXtvEna9zmTKGVsaqFo78tSECjNEkBWj5suc3mf6ZkHzuJ5wgNqzQwcuHWYhLq7RpmUCoDC5Ye1d7AZvPHjfVnsDFxs
然后base58解密
7476716677697b776b756868657267625f6c765f64715f6c717768756876776c716a5f6572726e7d
16进制转换字符
tvqfwi{wkuhhergb_lv_dq_lqwhuhvwlqj_errn}

凯撒解码

qsnctf{threebody_is_an_interesting_book}

剑拔弩张的小红

flag在群文件里面

flag:qsnctf{b01135af-a3ce-4f25-89d3-aff4670ad214}

取 USB 信息

根据题目信息,直接获取键盘数据即可

在 Wireshark 上方输入过滤器 usb.src==”1.8.1” ,回车确认,点击 文件、导出特定分组 把这些数据导出

成功得到一个新的 pcapng 文件

提取信息

使用了 github 的脚本,其中使用了 tshark 来提取流量信息,如果在 Linux 下无法安装 tshark 可手动更改此脚本,先使用 Wireshark 自带的 tshark 提取信息再拿去处理

1
https://github.com/WangYihang/UsbKeyboardDataHacker

image

双击 exe 文件,输入密码即可得到 flag{y0u_Are_prettY_g@od}

image

excel骚操作

flag.xlsx

打开文件 除了第一行的文字再没发现其他东西
随便点点,发现有些单元格显示值为1,有些不显示。

image

image

第二步
将值为1 的单元格显示出来。
选中若干单元格,右击,单元格格式,如图所示。

image

第三步
看样子像是二维码一样的排列,将值为1的单元格涂黑。(明明excel这步怎么做是最重要的好多教程一笔带过,真是服了)
选中单元格,点击条件格式,突出显示单元格规则,等于,自定义格式为黑色。

image

得到图案稍微调整一下行高。设置行高27

image

第四步
扫码 看上去不像是二维码,用微信扫不出来
查资料发现是汉信码。
打开中国编码网下载对应app,扫码得到flag。

Flag:flag{9ee0cb62-f443-4a72-e9a3-43c0b910757e}

疑惑点:

这是哪个功能给隐藏的?网上查到了能达到题目中隐藏效果的操作。

数字——自定义——类型中输入;;;

gakki

gakki.rar

图片分离得到rar

暴破得到压缩包的密码

image

大量无特征、无规律字符 python脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# -*- coding:utf-8 -*-
#Author: mochu7
alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_+- =\\{\\}[]"
strings = open('./flag.txt').read()

result = {}
for i in alphabet:
counts = strings.count(i)
i = '{0}'.format(i)
result[i] = counts

res = sorted(result.items(),key=lambda item:item[1],reverse=True)
for data in res:
print(data)

for i in res:
flag = str(i[0])
print(flag[0],end="")

image

flag:GXY{gaki_IsMyw1fe}

EZjoanDaemen

EZjoanDaemen.zip

  1. 伪加密
1
2
3
50 4B 01 02 14 00 14 00 01 00 08
改为
50 4B 01 02 14 00 14 00 00 00 08

解压后得到一个 docx 文档

  1. SNOW 隐写

复制 docx 最下面的字符进入空白的 txt 文件

1
.\SNOW.EXE -C .\2.txt

得到:aes_key:welcome_to_misc!

  1. DOCX 隐写

以压缩包格式打开 docx 文件,在目录 word/media/images​ 下得到以 new_ 开头的 166 张图片

  1. LSB 隐写

使用任意工具查看图片的最低有效位的拼接数据,发现一串类似 base64 加密的数据,结合上文 AES 相关信息,解密得到字符 f

1
数据:0WRw/OqyTiaWX9ZN+AI+Ew==
  1. 批量处理

按顺序查看以下 3 张图片,结合第一张图片共得到 4 个字符 flag

脚本在 exp​ 文件夹内

1
2
$ python exp.py
flag{Vm0xd1IyRXhTWGxUV0dST1ZsZG9VVll3V25kVU1WWjBZMGhLYkdKSFVucFdWM1JyWVVkR05sSnJiRlZXYlZFd1ZqRlZkMlZHVG5GVGJHaFRVbGQzTUZkVVFtdFNNV1JJVTJ0c2FsSnVRbkphVjNCQ1RsRTlQUT09}

多次 Base64 解密后得到最终答案

1
flag{Yah0oo0_we1c0me_to_miiisc}

原sher

sher.zip

压缩包密码 qsnctf

image

修改图片高度得到flag

image

flag:qsnctf{c1f5e391-83dd-47e3-9f15-0e32eaafdc95}

三体

发现是兽音译者
https://roar.iiilab.com/

解开后ATCR3mQzvYSfQFbZiSxXtvEna9zmTKGVsaqFo78tSECjNEkBWj5suc3mf6ZkHzuJ5wgNqzQwcuHWYhLq7RpmUCoDC5Ye1d7AZvPHjfVnsDFxs
然后base58解密
7476716677697b776b756868657267625f6c765f64715f6c717768756876776c716a5f6572726e7d
16进制转换字符
tvqfwi{wkuhhergb_lv_dq_lqwhuhvwlqj_errn}

凯撒解码

qsnctf{threebody_is_an_interesting_book}

剑拔弩张的小红

flag在群文件里面

flag:qsnctf{b01135af-a3ce-4f25-89d3-aff4670ad214}

欢迎

welcome.zip

考点:拼图

折磨!!!!直接放原图(某次群聊打电话的截图):

image

tcp流量分析

image

追踪HTTP流得到flag

image

我看他是喜欢套娃!

1、开始是一个压缩包伪加密,把他扔到010Editor里面,把50 4B 01 02 1F 00 14 00 09 00中的09改为00即可
2、拿到题目,先用ASCII转字符串,得到摩斯密码(福尔摩斯,提示为摩斯密码)
—– —– .—- .—- .—-/.—- .—- —– .—- .—-/—– .—- .—- —– .—-/.—- .—- —– —– —–/.—- .—- —– .—- .—-/.—- —– .—- —– —–/.—- —– .—- .—- .—-/.—- —– .—- —– .—-/.—- .—- —– .—- .—-/—– .—- .—- —– .—-/.—- —– .—- .—- .—-/—– .—- .—- —– —–
3、接着摩斯密码解码
00111 11011 01101 11000 11011 10100 10111 10101 11011 01101 10111 01100
4、五个一组,可以推测是培根密码(描述中也有提示是培根密码),于是将1转换为A,将0转换为B,得到
BBAAA AABAA BAABA AABBB AABAA ABABB ABAAA ABABA AABAA BAABA ABAAA BAABB
5、培根密码解码后,得到yeshelikesit,就是flag

flag: qsnctf{yeshelikesit}

babyflash

(13条消息) BUUCTF:[*CTF2019]babyflash_末初mochu7的博客-CSDN博客

七七的礼物

1解压缩发现密码

2暴力破解得到密码12138

3.解压之后发现一张图片、一个txt文本和一个压缩包

在winhex里放进小明的数学作业得到key

感觉像AES加密先放着

然后看小明的图片

使用Foremost工具进行分解发现存在压缩包文件,将压缩包解压后发现其中还有很多个压缩包里面全是图片。在搜索框中输入“*.jpg”,将所有jpg文件全部选中保存在另外一个文件夹中

把一下白块删除还剩下300张图然后合成

然后用gaps拼成

得到key

然后之前找到的14#AbbQ%C解压小明喜欢边吃奶酪边看故事边学单词

将两张图片置入ps,使用橡皮擦工具抠除奶酪的洞,只有live和ed是完整的,

所以解出后发现字符串lived

将拼图字符串scumbagtree和奶酪字符串lived合并得到scumbagtreelived,得到真正key将密文放入解密网站解密得到一个网址

打开网站好多加密最后在兽语中找到

转为摩斯

打开网址

图片保存下来在SilentEye里解出了一半flag

将被加密的部分进行A1z26密码进行解密得到部分flag,

flag{happybirthdayg

然后去扫描蛋糕上的二维码

将密文放入Quoted-printable解码得到字符串准银河编码解密

对照表解密

得到reentree

最后拼接得到flag

Flag:flag{happybirthdaygreentree}

表情包

image

qsnctf{5cab6ff8-0684-4adc-95c3-89283607073e}

Can_You_Find_Me

image

ZXSCTF{Wei_jia_mi_so_easy}

Flag走失了

image

qsnctf{c587e711-236d-46ca-a0d1-a94b51272808}

罗小黑的秘密

用zsteg工具得到

kali 安装方法 gem install zsteg

image

qsnctf{6acb3024-2ea8-4662-acbd-a820a1c8c583}

StegoTXT

1
2
3
4
5
6
7
8
9
10
11
原文
网络安全是一个全球性的问题,‌‌‌‌‌它不仅影响着我们的个人生活,也影响着我们的社会发展。因此,网络安全的发展发挥着至关重要的作用。‌‌‌‌‌‌‌‌‌‬‬‌‌‌‌‬‌
‌‌‌‌‌
首先,‌‌‌‌‬‬‌‌‌‌‬政府应该采取有效的措施来加强网络安全管理,‌‌‌‌‬‬并制定相应的法律法规来保护网络空间的安全。‌‌‌‌‌‌同时‌‌‌‌‬‬‌,政府也应该建立一个监管机构来负责网络安全的监督管理‌‌‌‌‬‌,以便及时发现和处理网络安全问题。‌‌‌‌‌‌‌‌‌‌‌‌‬‌
‌‌‌‌‌
其次,‌‌‌‌‬‬‌企业也应该加强网络安全管理‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‌‬‌‌,提高网络安全意识,定期对网络系统进行安全检查,实施网络安全策略‌‌‌‌‬‬,‌‌‌‌‌加强网络安全培训,建立网络安全框架,以最大程度地保护网络空间的安全‌‌‌‌‌‬‌‌‌‌‌‌‬‬。‌‌‌‌‬

此外‌‌‌‌‌‬‌‌‌‌‬‌‌‌‌,个人也应该加强网络安全意识,‌‌‌‌‬‬不要在网络上发布个人隐私信息,‌‌‌‌‬‌不要使用不安全的网络,不要轻信网络谣言,不要使用不安全的软件‌‌‌‌‌‌‌‌‌‬‬‌,不要下载不安全的文件‌‌‌‌,以免受到网络攻击。

总之,网络安全是一个复杂的系统工程,需要政府、企业和个人共同努力,才能确保网络安全的发展。

Unicode Steganography with Zero-Width Characters (mzy0.com)

image

qsnctf{n1ha0,th1s is zerowidth}

应急食品

1
2
3
4
5
6
7
8
9
10
import base64

f= open('F:\Ctf-Files\ctf-file\\food.txt','rb').read()
decode_file = base64.b64decode(f)
flag = open('F:\Ctf-Files\ctf-file\\flag.png','ab')
for i in range(len(decode_file)):
l= decode_file[i]<<4&255
w= decode_file[i]>>4
data=(l+w).to_bytes(1,'little')
flag.write(data)

使用zsteg提取出图片中隐藏信息。

image

第一张火车票

image

image