2022重庆大学生信安大赛misc

sunflower

附件里是一张向日葵的图片

foremost可以分离出来两张看起来一模一样的图片,显然是盲水印:

python3 bwmforpy3.py decode 1.png 2.png flag.png

打开flag.png就看到flag了

precision

precision的中文是精度,这一点很重要。

附件里是一个打不开的文件,没有后缀名,用foremost可以分离出来两个文件,一个是上锁了的压缩包,另一个是一个打不开的jpg图片。

用010editor打开这个打不开的jpg图片,运行jpg模板,然后查看模板运行结果,把精度从16改成8即可看到正常的图片:

如果Image里默认没有JPG模板可以选那个模板存储库找到JPG然后下载就有了
把这个精度也就是precision从16改成8,图片就正常了

然后我们可以打开这张图片

然后我们可以用隐形水印提取工具从这张图片上提取出那个压缩包的密码

d5fadf801bb5f7c2

打开压缩包里是一个base.txt,里面是一大堆base编码过的数据

一眼base隐写,不知道是32的还是64的,都试试

#base64隐写
import base64

table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
file = open("base.txt")
flag=''
tmpbin=''

for line in file.readlines():
    line=line.strip('\n')
    if(line[-1]=='='):
        if(line[-2]=='='):
            i=table.index(line[-3])
            b=bin(i)[2:]
            b=b.zfill(6)
            print(line)
            print(b)
            print(b[-4:]+'\n')

            tmpbin+=b[-4:]
        else:
            i = table.index(line[-2])
            b = bin(i)[2:]
            b = b.zfill(6)
            print(line)
            print(b)
            print(b[-2:]+'\n')

            tmpbin+=b[-2:]

length= len(tmpbin)/8
for i in range(int(length)):
    flag+=chr(int(tmpbin[i*8:i*8+8],2))

print(flag)
#base32隐写
import base64

table='ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'
file = open("base.txt")
flag=''
tmpbin=''

for line in file.readlines():
    line=line.strip('\n')
    if(line[-1]=='='):
        if(line[-3]=='='):
            if(line[-4]=='='):
                if (line[-6] == '='):
                    i=table.index(line[-7])
                    b = bin(i)[2:]
                    b = b.zfill(5)
                    tmpbin+=b[-2:]
                    print(line)
                    print(b)
                else:
                    i = table.index(line[-5])
                    b = bin(i)[2:]
                    b = b.zfill(5)
                    tmpbin += b[-4:]
                    print(line)
                    print(b)
            else:
                i = table.index(line[-4])
                b = bin(i)[2:]
                b = b.zfill(5)
                tmpbin += b[-1:]
                print(line)
                print(b)
        else:
            i = table.index(line[-2])
            b = bin(i)[2:]
            b = b.zfill(5)
            tmpbin += b[-3:]
            print(line)
            print(b)

length= len(tmpbin)/8
for i in range(int(length)):
    flag+=chr(int(tmpbin[i*8:i*8+8],2))

print(tmpbin)
print(flag)

用base32隐写脚本跑出来了:

总结

虽然我做的很烂,但我觉得我们重邮办的更烂一点😓

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇