巅峰极客 2019部分题解 writeup

巅峰极客 2019部分题解 writeup

Misc

签到

1,直接丢进ida,搜索flag字符串,即可得到flag: flag{72643b92-37b4-4f7c-b40e-57d857869200}

MBP是最好的!

题目描述: enjoy yourself

1,下载附件得到一个压缩包,压缩包中包含了一个ctf.dmg文件。

2,使用UltraISO打开该dmg文件,在.Trashes/501文件夹下面得到flag.zip文件,但是发现此文件已损坏,如图:

3,这题misc考察是取证相关知识,我们首先使用UltraISO将dmg文件转换为iso文件,然后使用R-STUDIO进行文件恢复,再次打开.Trashes/501文件夹下面得到flag.zip文件即可发现该文件经过加密了,然后使用ziperello进行暴力破解即可。

4,成功拿到flag

steganography

题目描述: 有一天,V的同学给了他一张图片,说里面藏着巨大的秘密。你能帮V找出秘密么?

1,使用binwalk对图片中隐藏的文件进行分离,得到一个40FBE.zip和一个0kb的leaf.pyc文件:

2,对40FBE.zip文件进行解压缩操作,得到flag.xml文件:

3,推测20代表0,09代表1,使用winhex打开flag.xml文件,编辑》复制所有》十六进制数值:,然后使用python进行转换:

# with open("flag.txt", "r") as f:
#     flag = f.read()

crypto = "2009092020090920200909200909202020090920202020092009092020090909200909090920090920200909202009202020090909202020202009092020202020200909200909202020090920202009202009092020202020200909200920092009092020090920202009200909200920090920200920092009092020200909202009092009202020200909202009092020092009092009"

flag = ""
for i in range(0, len(crypto), 2):
    if crypto[i] == "2":
        flag = flag + "0"
    if crypto[i] == "0":
        flag = flag + "1"


for i in range(0, len(flag), 8):
    print(chr(int(flag[i:i+8], 2)), end="")

得到flag的一半:

4,继续分析,从40FBE.zip中提取出docx文件,或者直接将40FBE.zip改为40FBE.docx即可,然后打开文件,发现一行行的经过base64编码过的数据,由此可以确定可能是base64隐写,于是将40FBE.docx文件中的base64数据复制到stegoFile.txt文件中,使用脚本直接解密:https://github.com/cjcslhp/wheels/blob/bca4381c29d09dd668604119e2d5e6fa9295eae7/b64stego/b64DeStego.py

import base64

def deStego(stegoFile):
    b64table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    with open(stegoFile, 'r') as stegoText:
        message = ""
        for line in stegoText:
            try:
                text = line[line.index("=") - 1:-1]
                message += "".join([ bin( 0 if i == '=' else b64table.find(i))[2:].zfill(6) for i in text])[6-2*text.count('='):6]
            except:
                pass
    return "".join([chr(int(message[i:i+8],2)) for i in range(0,len(message),8)])

print(deStego("stegoFile.txt"))

由此得到压缩包的密码:

I4mtHek3y@

5,解密压缩包,得到leaf.pyc文件,首先可以进行反编译:得到提示"I am not the reverse"

6,推断此题为pyc隐写,使用脚本:https://github.com/AngelKitty/stegosaurus

得到另一半flag:57f3-8cb4-1add2793f508}

7,组合起来得到最终flag: flag{2806105f-ec43-57f3-8cb4-1add2793f508}

web

aweb_1

1,此题目主要考察二次注入,再uploadlabs中有类似的训练题,只是此处需要使用/**/进行绕过:

注册时邮箱使用:1406753911@qq.com 用户名使用:admin'/**/and/**/'1'='1 密码使用:123456

登录时候使用:1406753911@qq.com 123456
即可成功登录并查看flag。

upload

题目描述:所有的东西都给你了,自己好好寻找利用吧。

1,

原文地址:https://www.cnblogs.com/v01cano/p/11733532.html