BUUOJ CTF, 日常刷题记录, 包含题目flag, 以及使用的脚本.

这是关于杂项题目的WP, 之前写过密码学的WP, 如果有需要可以转到BUUCTF 密码学思路

签到

emm, 直接给flag了。
flag{buu_ctf}

金三胖

是一个gif, 可以通过网站分解, 也可以自己写个脚本.

import os
from PIL import Image

if "images" not in os.listdir():
    os.mkdir("images")

img = Image.open("aaa.gif")

for i in range(200):
    try:
        img.seek(i)
        img.save(f"images/{i}.png")
    except EOFError:
        break


flag{he11ohongke}

二维码

打开之后扫描, 结果是secret is here, 并没啥用处.
扔进binwalk直接分离, 得到了一个有密码的压缩包, 压缩包内的文件名叫4number.txt, 也就是密码是长度为4的纯数字! 直接开始爆破.
得到密码7639
flag{vjpw_wnoei}

N种方法解决

下载下来是个.exe的windows可执行文件, 但是双击并不能运行, 使用notepad++打开发现是Data URI scheme, 直接本地建一个.html文件

<img src="data:......">

然后双击打开就可以看到一个二维码, 扫描就可得到flag.
flag{dca57f966e4e4e31fd5b15417da63269}

大白

打开图片看到大白的下半身不见了, 图片格式是png, 通过题目的提示看不到图? 是不是屏幕太小了, 基本可以判断是通过修改高度来显示出来大白的下半身得到flag.

将原本的01 00改成04 00, 即可显示出下半身.
flag{He1l0_d4_ba1}

基础破解

题目提到了是四位数字加密, 直接爆破.
密码是: 2563, 解开之后是个base64, 解码一下就可以.
flag{70354300a5100ba78068805661b93a5c}

你竟然赶我走

一个图片, 使用notepad++打开, 按ctrl + end直接跳转到最后一行, 可以看到flag
flag{stego_is_s0_bor1ing}

乌镇峰会种图

和头上一道题一样的操作步骤.
flag{97314e7864a8f62627b26f3f998c37f1}

LSB

看到LSB, 我直接开启了Stegsolve.jar

可以看到最低位隐写了一个PNG文件, savebin下来. 看到是一个二维码, 扫码得到flag
flag{1sb_i4_s0_Ea4y}

rar

题目提示是rar的密码是4位纯数字, 爆破得到密码8795, 解压得到flag
flag{1773c5da790bd3caff38e3decd180eb7}

qr

得到一个二维码, 扫码直接得到flag
flag{878865ce73370a4ce607d21ca01b5e59}

文件中的秘密

图片右键属性就可以看到flag

flag{870c5a72806115cb5439345d8b014396}

wireshark

题目提示是登陆网站的一段流量包, 那么直接打开wireshark过滤出http协议.

flag{ffb7567a1d4f4abdffdb54e022f8facd}

ningen

通过notepad++看到最后有类似ningen.txt, 扔进binwalk分离出了一个zip文件, 文件有密码, 通过题目提示知道了秋明特别讨厌中国的六位银行密码,喜欢四位数。
那就是四位的纯数字, 爆破就好了, 得到密码8368, 解压得到flag
flag{b025fc9ca797a67d2103bfbc407a6d5f}

zip伪加密

使用winHex打开, 修改09 0000 00, 再次进行解压, 得到flag
flag{Adm1N-B2G-kU-SZIP}

镜子里面的世界

一开始没分析出来, 看了看图片名… steg? stegsolve????? 哦?… 使用Stegsolve.jar打开.

哦. 还真是啊, 那没事了.
flag{st3g0_saurus_wr3cks}

小明的保险箱

其实就是套娃题目, binwalk分离出压缩包, 爆破出4位数字, 得到flag
压缩包密码7869
flag{75a3d68bf071ee188c418ea6cf0bb043}

被嗅探的流量

wireshark, tcp.stream eq 2, 追踪tcp流, 即可找到flag

flag{da73d88936010da1eeeb36e945ec4b97}

爱因斯坦

得到图片, 右键查看属性, 得到一条this_is_not_password
binwalk分离出了一个压缩包, 有密码, 不知道密码怎么办呢? 那就试试上面这条吧.
压缩包密码: this_is_not_password, 解压缩得到flag, sb题目.
flag{dd22a92bf2cceb6c0cd0d6b83ff51606}

easycap

是个流量包, wireshark打开直接追踪tcp流, ….嗯..直接就是flag
flag{385b87afc8671dee07550290d16a8071}

假如给我三天光明

给了一个带有密码的压缩包和一张图片, 图片下面是盲文, 直接从网上找个图片挨个对照, 得到压缩包密码kmdonowg
解压得到一个音频文件, 听声音是摩斯电码, 通过Audacity可以看到音频长短, 然后去解密, 得到flag
flag{wpei08732?23dz}

FLAG

通过StegSolve.jar得到了一个zip

savebin后, 解压, 得到一个elf文件, 直接通过notepad++搜索ctf关键字, 就可以看到flag
flag{dd0gf4c3tok3yb0ard4g41n~~~}

另外一个世界

一张图片, 通过notepad++打开之后, 最后有一段神秘的二进制01101011011011110110010101101011011010100011001101110011, 把二进制转化为字符串, 得到flag
flag{koekj3s}

隐藏的钥匙

通过notepad++打开, 搜索flag

bas64解码得到flag
flag{377cbadda1eca2f2f73d36277781f00a}

荷兰宽带数据泄露

工具 + 猜谜题目, 没工具就做不出来, 工具名: RouterPassView

没错, 用户名就是flag
flag{053700357621}

[BJDCTF 2nd]最简单的misc-y1ng

notepad++打开, 发现了一段16进制字符串424A447B79316E677A756973687561697D

HEXASCII, 得到flag
flag{y1ngzuishuai}

后门查杀

直接D盾扫描, 木马文件在/include/include.php, 得到flag
flag{6ac45fb83b3bc355c024f5034b947dd3}

[BJDCTF 2nd]A_Beautiful_Picture

png文件, 修改图片高度, 得到flag
flag{Png_He1ghT_1s_WR0ng}

来首歌吧

没错, 是首歌, 一开始左声道没声音, 音乐到中间的时候, 左声道响起了摩斯电码…
使用Audacity进行分析即可得到摩斯, 解码摩斯得到flag (flag要大写)
flag{5BC925649CB0188F52E617D70929191C}

神秘龙卷风

根据题目提示, 4位数字, 先爆破, 密码为5463, 解压看到了BrainFuck, 在线转码
flag{e4bbef8bdf9743f8bf5b727a9f6332a8}

九连环

binwalk得到了一个图片和压缩包, 压缩包有密码, 只能从图片入手了, 这里要用到一个工具stgehide, 从图片提取出了一个txt, 内容是..

看到这个图片就是压缩包的密码:
bV1g6t5wZDJif^J7

解压, 得到flag
flag{1RTo8w@&4nK@z*XL}

[BJDCTF 2nd]小姐姐-y1ng

通过notepad++的正则匹配搜索{(.*?)}, 找到了flag

flag{haokanma_xjj}

snake

通过binwalk分离出了一个cipherkey
key: 是一个base64, 解码得到What is Nicki Minaj's favorite song that refers to snakes? 答案是…anaconda
cipher: 需要使用在线工具

flag{who_knew_serpent_cipher_existed}

面具下的flag

通过binwalk得到了一个flag.vmdk, emm? 虚拟机文件? 直接通过7zip解压开, 得到了一段brainfuck, 解码得flag{N7F5_AD5, 还少了一半…
另一半通过

strings flag.vmdk

找到了一堆ook,

解码得到_i5_funny!}, so? 拼接得到最后的flag
flag{N7F5_AD5_i5_funny!}

webshell后门

D盾直接扫描, 后门文件是/member/zp.php.
flag{ba8e6c6f35a53933b871480bb9a9545c}

梅花香之苦寒来

通过notepad++打开图片, 翻着翻着看到一堆hex, 复制一小部分拿去解码, 发现是类似与坐标的东西. 直接自己写个脚本搞出来.

from PIL import Image

# 通过坐标的最大值数字 + 1计算出来的.
width = 272
height = 272

img = Image.new("RGB", (width, height), "white")

# cipher文件就是那一堆hex
with open("cipher", "r") as fp:
    data = fp.read()
    temp = ""

    for i in range(0, len(data), 2):
        strHex = "0x" + data[i:i+2]
        decResult = int(strHex, 16)
        item = chr(decResult)

        if decResult == 10:
            print(temp)
            x = temp.replace("(", "").replace(")", "").split(",")[0]
            y = temp.replace("(", "").replace(")", "").split(",")[1]

            img.putpixel((int(x),int(y)), (0,0,0))
            temp = ""
        else:
            temp += item

    img.show()

执行完毕后生成了一个二维码

得到flag
flag{40fc0a979f759c8892f4dc045e28b820}

数据包中的线索

wireshark打开看到了一个fenxi.php的包, 很多base64, 直接Base64 To Image
即可看到flag
flag{209acebf6324a09671abc31c869de72c}

刷新过的图片

根据题目, 刷新 F5, 一定是F5隐写, 直接使用工具(F5-steganography-james)就可以解出一个zip文件, 然后直接解压得到flag
flag{96efd0a2037d06f34199e921079778ee}

被劫持的神秘礼物

直接FOLLOW TCP STREAM

flag就是adminaadminb的小写md5

flag{1d240aafe21a86afc11f38a45b541a49}

[BJDCTF 2nd]EasyBaBa

文件很大, 绝对不一般, 扔进binwalk, 看到一个zip, 使用dd命令手动分割出来

dd if=ezbb.jpg of=2.zip bs=1 skip=28227

解压出来发现是一个.jpg, 但是大小很可以, 使用file命令查看是.avi的视频文件, 于是改后缀 就可以播放了.

视频看着看会闪过几张图片, 图片上有二维码, 用PR一帧一帧分析 + 扫描就可以了.
flag{imagin_love_Y1ng}

菜刀666

wireshark分析可以找到菜刀连接的痕迹, 我这里是使用的foremost工具提取出来的压缩包.
拿到压缩包之后发现有密码, 于是又返回wireshark, 从wireshark找到了一堆16进制

可以看到是z2参数的, 开头是FFD8FF, 有经验的就可以看出是.jpg文件的头, 于是拿出来, 保存到文件, 使用xxd命令将其保存成图片. 这里保存成1

xxd -r -p 1 > 1.jpg

图片上就是压缩包的密码, 然后解压压缩包, 得到flag
flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}

[BJDCTF 2nd]Real_EasyBaBa

使用winhex打开, 发现有一个地方不太对劲…

这里我的屏幕是60Hz的, 上下滚动会有一点点拖影, 如果你也是, 不妨也跟我一样上下滚动鼠标, 就可以隐隐约约看清楚…BJD{… 好, flag出来了.
其实也可以根据这个画一下。

flag{572154976}

[BJDCTF 2nd]圣火昭昭-y1ng

图片右键属性查看到了信息新佛曰:諸壽隸僧壽降吽壽諸壽陀壽摩隸僧缽薩願心壽咤壽囉寂壽闍諸壽哆壽慧壽聞壽色吽愍壽所壽蜜如.

之前见过类似的, 但是这个是新佛曰, 没错, 更新换代了.

在线工具解出了gemlovecom, 根据题目说明, 去掉com, 得到flag…..? flag不对? 继续分析.

这里要用到outguess, 这个东西解密需要密钥, 所以我们刚才得到的gemlove.

嗯..打个Misc都有茄子啊 wdnmd。
flag{wdnmd_misc_1s_so_Fuck1ng_e@sy}

穿越时空的思念

一段音频文件, 右声道有摩斯电码, 使用Audacity分析, 得到flag

flag{f029bd6f551139eedeb8e45a175b0786}

Mysterious

真逆向题目, 使用IDA静态分析, 搜索字符串找到了well done, Buff3r_0v3rf|0w之类的字样, 追踪到使用这个字符串的函数中, 可以看到

首先是输入长度是6, v12会被+1, 要等于123, 也就是先写122, 后面120 122 121,
也就是需要

v14 = 120
v15 = 121
v16 = 122

转换成ascii码, 正好是xyz, 那么加上之前的122, 长度也刚好吻合, 最后的payload也就是122xyz

flag{123_Buff3r_0v3rf|0w}

sqltest

是一段sql盲注的包, 筛选出长度最长的包, 然后分析盲注语句.

1 and ascii(substr(((select concat_ws(chr(94), flag) from db_flag.tb_flag limit 0,1)), 1, 1)) > 101

此时需要一点sql基础, substr("test", 1,1)代表第一位开始取一位, 也就是取出t
那么substr("test", 3, 1)也就是取出s

ascii函数就是把取出来的内容转换成ascii码.

然后最后面的> 101就是一段判断取出来的字母的ascii码是否是大于101.

那么就好办了, 直接按照这个规律挨个看也行.

因为是大于号, 所以每个字母位置的最后一个包后面的数字要 + 1,

例子上的这个是第一个字母的包, 所以第一个字母的ascii就是102, 转换成字符串也就是f.

得到所有的ascii, 并保存为1.txt

102
108
97
103
123
52
55
101
100
98
56
51
48
48
101
100
53
102
57
98
50
56
102
99
53
52
98
48
100
48
57
101
99
100
101
102
55
125

写个脚本给他转出来

with open("1.txt", "r") as fp:
    for i in fp.readlines():
        print(chr(int(i.strip())), end="")

flag{47edb8300ed5f9b28fc54b0d09ecdef7}

[SWPU2019]神奇的二维码

得到一个二维码, 扫码得到swpuctf{flag_is_not_here}, 看来不是这个.

于是notepad++打开文件, 发现最后藏了个good/good.mp3, 于是binwalk分解, 得到了一个flag.jpg…嗯..很嘲讽…

还得到了一个看看flag在不在里面^_^.rarencode.txt, encode.txt里面是一段base64, 解出来的内容就是这个压缩包的密码, 里面的内容还是那个flag.jpg

也得到了一个flag.doc, 里面是一段很长的base64, 解码又得到了一个base64… 循环下去, 最终得到了一个.. comEON_YOuAreSOSoS0great, 这。。。也不像是flag啊…

嗯? 怎么回事? 怎么没有那个good.mp4, 于是看了看binwalk分解出来的其他压缩包, 发现了一个18394.rar, 有密码, 于是拿刚才解出的comEON_YOuAreSOSoS0great试了一下, 还真是… 得到了一段音频, 听声音是摩斯电码, 用Audacity分析出来, 拿去解码, 得到最终flag
flag{morseisveryveryeasy}

[GXYCTF2019]佛系青年

下载下来压缩包, 解压的时候有个txt文件提示密码错误, 于是扔进WinHEX, 一看是伪加密.

09 00修改成00 00, 解压文件, 没有报错了, 打开txt文件之后发现是与佛论禅, 直接在线工具解密就可以了.

flag{w0_fo_ci_Be1}


先写到这里吧,慢慢再补充辣。