前言
攻防世界是一个CTF(Capture The Flag)比赛平台,提供了一系列网络安全挑战题目,供安全爱好者进行实战演练和技术提升。
攻防世界的题目种类丰富多样,涵盖了网络安全领域的多个方面,包括但不限于Web安全、二进制安全、密码学、取证分析、逆向工程等。每个题目都有其独特的解题思路和技巧,旨在让参赛者能够在实践中学习和掌握各种安全攻防技术。
参与攻防世界的比赛需要注册账号,注册后可以选择不同的比赛类型,包括线上赛、实时赛和线下赛。线上赛是一个持续进行的比赛,参赛者可以根据自己的时间安排进行挑战。实时赛是定时进行的比赛,参赛者需要在指定时间内完成指定的题目。线下赛是通过线下活动的形式进行的比赛,通常是在某个特定场地组织的团体比赛。
攻防世界的题目难度各不相同,从初级到高级不等。初学者可以从简单的题目开始,逐渐提升自己的技术水平。每个题目都有详细的题解和解题思路,参赛者可以通过研究题解来学习和理解相关的安全技术。
在攻防世界上取得好成绩的参赛者还有机会获得奖励,包括但不限于积分、荣誉称号和实物奖品。这些奖励可以作为参赛者技术实力的认可,并且有助于提高参赛者的竞争力。
总之,攻防世界是一个提供CTF比赛的平台,旨在为安全爱好者提供实践和学习的机会。通过挑战各种题目,参赛者可以不断提升自己的安全攻防技术,拓宽自己的知识面,并与其他安全爱好者交流和竞争。
一、this_is_flag(签到题)
二、pdf(pdftotxt 转换)
根据题目描述猜测 flag 在图片下面
题目给出的是 PDF 文件,难点是怎么挪开图片呢?
使用 Kali Linux 下的工具 pdftotxt 将其转为 txt 文本
flag{security_through_obscurity}
三、如来十三掌(与佛论禅解码 & ROT13 解码 & Base 64 解码)
根据题目描述推测出:与佛论禅密码、rot13
下载附件后打开果然是加密后的密文
第三方网站解密
拿到密文
MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9
再拿去第三方网站解密
拿到字符串
ZmxhZ3tiZHNjamhia3ptbmZyZGhidmNraWpuZHNrdmJramRzYWJ9
推测为 Base64 编码,继续第三方网站解码
flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}
四、give_you_flag(Stegsolve 逐帧分析 & PS & QR Research 扫码)
下载文件后是一个 gif,看的时候会发现闪了一个二维码
使用工具 Stegsolve 逐帧分析
终于逮到了
但是少了点东西,需要自己 P 上二维码的三个角
保存后使用 QR Research 扫码拿到 flag
flag{e7d478cf6b915f50ab1277f78502a2c5}
五、坚持 60s(Binwalk 分析 & Foremost 提取 & JAVA 代码审计 & Base64 解码)
打开附件是一个小游戏
使用 Binwalk 发现 ZIP 文件
使用 Foremost 提取出来
在 ZIP 中找到 JAVA 源码
找到 flag,但是以 = 结尾,需要 Base64 解密
第三方网站解码
flag{DajiDali_JinwanChiji}
六、gif(二进制 & ASCII)
下载文件后打开得到如下图片
图片分为黑白两种,对应这二进制 0、1,假设白为 0,黑为 1
只取前八位将其转为 ASCII 码得到 f
说明方向没错,现在将全部图片转为对应二进制解码即可
01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101
flag{FuN_giF}
七、stegano(隐藏信息 & Python 脚本 & 摩斯密码解码)
PDF 打开内容如下
发现第一行有东西
全部复制下来到记事本中查看
两种字符推测为二进制,但是它自己分组了,所以应该是摩斯密码,用 Python 脚本转换
k = 'BABA BBB BA BBA ABA AB B AAB ABAA AB B AA BBB BA AAA BBAABB AABA ABAA AB BBA BBBAAA ABBBB BA AAAB ABBBB AAAAA ABBBB BAAA ABAA AAABB BB AAABB AAAAA AAAAA AAAAB BBA AAABB'
k1 = k.replace("A",".").replace("B","-").replace(" ","/")
print(k1)
得到摩斯密码
-.-./---/-./--./.-./.-/-/..-/.-../.-/-/../---/-./.../--..--/..-./.-../.-/--./---.../.----/-./...-/.----/...../.----/-.../.-../...--/--/...--/...../...../....-/--./...--
第三方网站解密拿到 flag
注意:提交时需要转为小写
flag{1nv151bl3m3554g3}
八、掀桌子(十六进制 & 十进制 & ASCII)
给出了密文,需要解密
密文中有数字和字母,且字母最大只有 F,应该是十六进制字符,将其转为十进制后减去 128 转为 ASCII
编写脚本
str1 = 'c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2'
flag = ''
for i in range(0, len(str1), 2):
s = "0x" + str1[i] + str1[i+1]
flag += chr(int(s, 16) - 128)
print(flag)
得到 flag
flag{hjzcydjzbjdcjkzkcugisdchjyjsbdfr}
九、ext3(Linux 挂载 & Linux 查找 & Base64 解码)
下载附件,根据题目需要挂载这个文件
sudo mount f1fc23f5c743425d9e0073887c846d23 /mnt
cd /mnt
find |grep "flag"
cat /mnt/O7avZhikgKgbF/flag.txt
得到密文
ZmxhZ3tzYWpiY2lienNrampjbmJoc2J2Y2pianN6Y3N6Ymt6an0=
以 = 结尾,第三方网站 Base64 解码即可
flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}