前言
Buuctf Web 是一个在线安全挑战平台,旨在提高参与者对网络安全的理解和实践能力。本文将详细介绍 Buuctf Web 的特点、挑战和机遇,帮助读者更好地了解这一领域。
一、Buuctf Web 的特点
多样化的挑战场景:Buuctf Web 提供了多种挑战场景,包括 Web 漏洞利用、密码破解、CTF 夺旗等,涵盖了网络安全领域的各个方面。
高质量的学习资源:平台提供了丰富的学习资源,包括视频教程、文章、案例分析等,帮助参与者提高技能水平。
实时排名和互动交流:Buuctf Web 支持实时排名和互动交流功能,参与者可以在平台上与其他选手一起讨论问题、分享经验。
二、Buuctf Web 的挑战
技术难度高:网络安全领域涉及的知识面广泛,技术难度较高,需要参与者具备较高的技术水平和学习能力。
时间压力大:在 CTF 夺旗等挑战中,时间是非常宝贵的资源,需要在有限的时间内快速定位问题并找到解决方案。
需要团队协作:在某些挑战中,需要团队协作才能更好地完成任务,如何有效地分工和协作也是一大挑战。
三、Buuctf Web 的机遇
提高技能水平:通过参与 Buuctf Web 的挑战,参与者可以不断提高自己的技能水平,增强在网络安全领域的竞争力。
拓展人脉资源:在平台上与其他选手交流互动,可以结识志同道合的朋友,拓展人脉资源。
获得实践机会:Buuctf Web 的挑战场景都是基于真实场景设计的,参与者在挑战中可以获得宝贵的实践机会。
为未来的工作做好准备:对于那些希望在未来从事网络安全相关工作的参与者来说,参与 Buuctf Web 可以为他们未来的工作做好准备。通过参与 Buuctf Web 的挑战,他们可以了解行业最新的动态和技术趋势,提高自己的职业竞争力。
四、如何参与 Buuctf Web 的挑战?
注册账号:首先需要在 Buuctf Web 平台上注册一个账号。
选择挑战场景:根据自己的兴趣和需求选择相应的挑战场景。
学习相关知识:为了更好地完成挑战,需要提前学习相关知识,如 Web 安全、密码学等。
参与挑战:按照挑战的要求完成相应的任务,与其他选手竞争排名。
交流与分享:在平台上与其他选手交流经验、分享技巧,共同提高技术水平。
总结:Buuctf Web 作为一个在线安全挑战平台,为网络安全爱好者提供了一个学习和交流的平台。通过参与 Buuctf Web 的挑战,不仅可以提高自己的技能水平,还可以拓展人脉资源、了解行业动态并为未来的工作做好准备。希望本文的介绍能帮助读者更好地了解 Buuctf Web 的特点、挑战和机遇,为未来的发展做好准备。
一、[GXYCTF2019] SXMgdGhpcyBiYXNlPw==(Base64 解码)
题目先解码一下
点击链接下载文件
下载文件是段 Base64 编码文本
使用 Python 脚本编码拿到 flag
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('flag.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()
GXY{fazhazhenhaoting}
二、间谍启示录(Foremost 提取)
点击链接下载文件
使用 Foremost 提取文件
打开 exe 文件报错已损坏
直接看 RAR 文件,运行 flag.exe 程序生成了一个 flag.txt,这就是答案
三、喵喵喵(LSB 隐写 & Stegsolve 提取 & WinHex 修改 & CRC 爆破宽高 & 手机扫码 & WinRAR 解压缩 & NtfsStreamEditor2 导出 & pyc 反编译 & 解码)
点击链接下载文件
打开是一张图片
使用 Stegsolve 发现一丝不正常,推测为 LSB 隐写
果然找到了隐藏的 PNG
另存后不能正常打开,在 WinHex 中发现文件头有问题,修改后可正常打开
但是肉眼可见二维码只有一半,高度做了修改
使用之前的 Python 脚本爆破宽高
拿到二维码
这里用 QR Research 扫不出来,但是用手机可以,最后是一个百度网盘链接
正常解压缩居然没有 flag
推测为 NTFS 数据流,使用 WinRAR 解压缩,再使用 NtfsStreamsEditor2 导出
看到文件是 pyc 文件,去第三方网站反编译
pyc 反编译https://tool.lu/pyc/代码如下
#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
# Version: Python 2.7
import base64
def encode():
flag = '*************'
ciphertext = []
for i in range(len(flag)):
s = chr(i ^ ord(flag[i]))
if i % 2 == 0:
s = ord(s) + 10
else:
s = ord(s) - 10
ciphertext.append(str(s))
return ciphertext[::-1]
ciphertext = [
'96',
'65',
'93',
'123',
'91',
'97',
'22',
'93',
'70',
'102',
'94',
'132',
'46',
'112',
'64',
'97',
'88',
'80',
'82',
'137',
'90',
'109',
'99',
'112']
参考大佬脚本解码
#Author: mochu7
def decode(arg1):
ciphertext = arg1[::-1]
flag = ''
for i in range(len(ciphertext)):
if i % 2 == 0:
s = int(ciphertext[i]) - 10
else:
s = int(ciphertext[i]) + 10
s = s ^ i
flag += chr(s)
print(flag)
if __name__ == '__main__':
ciphertext = [
'96',
'65',
'93',
'123',
'91',
'97',
'22',
'93',
'70',
'102',
'94',
'132',
'46',
'112',
'64',
'97',
'88',
'80',
'82',
'137',
'90',
'109',
'99',
'112']
decode(ciphertext)
得到 flag
flag{Y@e_Cl3veR_C1Ever!}
四、小易的 U 盘(Foremost 提取 & IDA 反编译)
点击链接下载文件
下载后是一个 ISO 文件,使用 Foremost 提取
使用 WinRAR 解压缩后找到一个 flag.txt 文件
另一个 FLAG.avi 是打不开的
只能一个一个看文件咯,最后在 autorun.inf 中找到提示
直接打开是打不开的,对于 EXE 文件只能扔进 IDA 里面反编译,最后找到 flag
标签:Web,ciphertext,BUUCTF,挑战,Misc,flag,Buuctf,str,解析 From: https://blog.csdn.net/2302_82189125/article/details/139159622