一、这是一张单纯的图片
key{}
点击下载,获取文件
将下载的图片后缀名改为.html,打开后
flag为:
key{you are right}
二、隐写
下载压缩包,解压之后是一张图片,显示BugKu
我们使用tweakPNG工具来解决,先去下载压缩包,并对它进行解压
将照片放入
将照片尺寸修改为相同的,并对其进行保存
得到结果
flag为:
BUGKU{a1e5aSA}
三、telnet
下载文件得到压缩包,对其进行解压获得networking.pcap
将文件后缀名改为.txt,用记事本的方式打开,获取flag
flag为:
flag{d316759c281bf925d600be698a4973d5}
四、眼见非实
下载文件,获得file.zip压缩包,解压后得到眼见非实.docx文件
zip压缩软件的发明者叫Phil Katz,所以压缩包文件开头都是pk
眼见非实.docx更改后缀未zip
解压后在全局里面搜索flag
flag为:
flag{F1@g}
五、啊哒
下载压缩包解压,得到ada.jpg
查看照片属性
对其进行16进制到文本字符串的转换 ,得到 sdnisc_2018
将图片ada.jpg的后缀名改为.zip,再次解压,弹出输入密码框,刚好是我们转换出来的sdnisc_2018
解压后得到flag.txt
打开txt文件,得到flag
flag为:
flag{3XiF_iNf0rM@ti0n}
六、pign
下载压缩包ping.zip,解压得到ping.pcap
使用Wireshark打开文件,从第一个数据包开始,浏览发现规律,每个数据包图中所指示的位置的字母数字连起来就是正确答案
flag为:
flag{dc76a1eee6e3822877ed627e0a04ab4a}
七、Snowfall
对下载的压缩包进行解压,解压后得到两个文件。
Whitelips the Esoteric Language IDE
首先打开
WhiteSpace在线解析网站
,复制step1.txt到网站的文本框,然后点击run,两个run随便那个都行。
OK now you can run whitespace code. By the way, the key is H0wt0Pr1ntAWh17e5p4ceC0de.
复制Debug栈流程保存到Debug.txt文件,并分析里面的流程,一共是有5个函数,分别是push, printc, dup, drop, add。
函数功能如下:
push:将数字压入栈顶
printc:将栈顶元素弹出并以ASCII字符形式输出
dup:复制栈顶元素后压入栈顶drop:弹出栈顶元素
add:将堆栈最上方的两个元素弹出,二者做加法运算,得到的结果入栈
紧接着编写Python代码,运行后得到1个1.7z的压缩包。
import re
from queue import LifoQueue
with open("Debug.txt", "r") as f:
data = f.read()
data = data.splitlines()
stack = LifoQueue()
ret = ""
for line in data:
if "push" in line:
num = int(re.findall("push (.*?)$", line)[0])
stack.put(num)
elif line == "add":
stack.put(stack.get() + stack.get())
elif line == "dup":
num = stack.get()
stack.put(num)
stack.put(num)
elif line == "drop":
stack.get()
elif line == "printc":
asc = chr(stack.get())
# print(asc, end="")
ret += asc
# save file
bin_data = ret.encode("latin1")
with open("1.7z", "wb") as f:
f.write(bin_data)
对其进行解药,发现需要密码(密码是之前step1.txt解析出来的key,也就是H0wt0Pr1ntAWh17e5p4ceC0de),解压后得到flag.txt文件。
打开文件后,重复上面的操作。
分析栈流程,我们把栈流程复制粘贴到Debug2.txt,仔细观察发现没有printc这个函数了,所以解析不出结果也很正常。我也是根据WP知道了,是要把drop这个函数换成printc
取flag稍加修改之前的脚本后,代码如下:
import re
from queue import LifoQueue
with open("Debug2.txt", "r") as f:
data = f.read()
data = data.splitlines()
stack = LifoQueue()
ret = ""
for line in data:
if "push" in line:
num = int(re.findall("push (.*?)$", line)[0])
stack.put(num)
elif line == "add":
stack.put(stack.get() + stack.get())
elif line == "dup":
num = stack.get()
stack.put(num)
stack.put(num)
elif line == "drop":
asc = chr(stack.get())
print(asc, end="")
flag为:
bugku{F1xAnE5olangPr0gr4mT0Cap7ureTh3F14g}
八、贝斯手
得到贝斯手的压缩包,进行解压。
我们对flag.zip解压发现需要密码。
介绍.txt中,滑动到最低段出现以下这排字,女神剧照.jpg发现是娜扎,在百度中搜索后的出密码为1992
得到密码后,我们将其解压得到flag.txt
结果分析,我们发现5的意思是MD5,58的意思是base58
选择前32位进行md5解码
327a6c4304ad5938eaf0efb6cc3e53dc
将余下的进行Base58解码。
CFmZknmK3SDEcMEue1wrsJdqqkt7dXLuS
flag为:
flag{this_is_md5_and_base58}
九、可爱的故事
得到压缩包将其解压
查看hint.txt分析得出flag在png两个图中。
通过观察发现这道题其实考的是游戏原神中的“提瓦特文”
通读全文去找带bugku的提瓦特文。发现在第一章图片的最后一句话中。
将这一句话全部翻译。得到了一句“i am learning teyvat in bugku”
在hint.txt文档的提示中,我们得到了flag
flag为:
bugku{iamlearningteyvatinbugku}
十、1和0的故事
下载后得到1和0的故事.txt文档
1和0可联想到黑和白两颜色,尝试转成二维码
在Excel里设置该单元格格式,把它改成文本格式
将文档中的1、0复制进去。
将其进行分列,选中一列——数据——分列——固定宽度——按提示开始分列)
使用快捷键:ctrl+h。把0替换成空格,再定位出1所在的位置,填充成黑色。定位的时候选择数据,然后勾选常量、数字,别的都不要勾选。
截图,然后直接在ps中进行最后的拼接得到二维码。
flag为:
flag{QR_c0de_1s_1nterest1n9}