BUUCTF:Misc 解析(八)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: BUUCTF:Misc 解析(八)

前言


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 的特点、挑战和机遇,为未来的发展做好准备。

一、[ACTF新生赛2020] base64隐写(Base64 解码)

点击链接下载文件

打开后有一个 txt,-推测为 Base64 编码

编写 Python 脚本解码每一行

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('ComeOn!.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()

拿到 flag

flag{6aseb4_f33!}

二、[GXYCTF2019] gakki(Binwalk 提取 & Archpr 爆破 & 字频统计)

点击链接下载文件

打开后是一张图片

使用 Binwalk 发现隐藏文件 RAR

解压缩需要密码

使用 Archpr 爆破出密码

打开后发现是乱码,emm……

补充知识:大量无规律、无特征字符应该是要做字频统计

编写 Python 脚本

alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_+- =\\{\\}[]"
strings = open('./flag.txt').read()
 
result = {}
for i in alphabet:
  counts = strings.count(i)
  i = '{0}'.format(i)
  result[i] = counts
 
res = sorted(result.items(),key=lambda item:item[1],reverse=True)
for data in res:
  print(data)
 
for i in res:
  flag = str(i[0])
  print(flag[0],end="")

执行结果如下:

PS C:\Users\Administrator\Downloads\attachment\output\rar\00000268> python .\count.py
('G', 2508)
('X', 2481)
('Y', 2453)
('{', 2301)
('g', 2221)
('a', 2087)
('k', 1981)
('i', 1797)
('_', 1531)
('I', 1448)
('s', 1402)
('M', 1398)
('y', 1389)
('w', 1386)
('1', 1376)
('f', 1373)
('e', 1372)
('}', 1264)
('A', 1164)
('D', 1164)
('O', 1163)
('Q', 1163)
('W', 1163)
('J', 1162)
('H', 1161)
('E', 1160)
('K', 1160)
('N', 1160)
('S', 1160)
('U', 1160)
('P', 1159)
('Z', 1158)
('8', 1158)
('&', 1158)
('*', 1158)
('B', 1157)
('C', 1157)
('2', 1157)
('4', 1157)
('9', 1157)
('#', 1157)
('%', 1157)
('^', 1157)
('F', 1156)
('R', 1156)
('T', 1156)
('V', 1156)
('3', 1156)
('@', 1156)
('$', 1156)
('(', 1156)
(')', 1156)
('-', 1156)
('L', 1155)
('5', 1155)
('6', 1155)
('7', 1155)
('0', 1155)
('=', 1155)
('h', 1151)
('o', 1151)
('q', 1150)
('d', 1148)
('u', 1147)
('j', 1146)
('l', 1144)
('c', 1143)
('m', 1143)
('n', 1143)
('p', 1143)
('x', 1143)
('z', 1143)
('b', 1142)
('t', 1141)
('v', 1141)
('r', 1140)
('!', 1058)
('[', 4)
(' ', 1)
('+', 0)
('\\', 0)
(']', 0)
GXY{gaki_IsMyw1fe}ADOQWJHEKNSUPZ8&*BC249#%^FRTV3@$()-L5670=hoqdujlcmnpxzbtvr![ +\]

推测 flag 应该就是:flag{gaki_IsMyw1fe}

三、[MRCTF2020] ezmisc(CRC 宽高 & WinHex 修改)

点击链接下载文件

解压缩后是这样一张图片

使用 Python 脚本宽高

import struct
import binascii
import os
 
m = open("flag.png", "rb").read()
k = 0
for i in range(5000):
    if k == 1:
        break
    for j in range(5000):
        c = m[12:16] + struct.pack('>i', i) + struct.pack('>i', j) + m[24:29]
        crc = binascii.crc32(c) & 0xffffffff
        if crc == 0x370c8f0b:
            k = 1
            print(hex(i), hex(j))
            break

出宽高值

WinHex 修改后保存

拿到 flag

四、[HBNIS2018] caesar(凯撒密码枚举)

点击链接下载文件

打开文件内容如下

根据题目凯撒应该是凯撒密码加密了,直接枚举拿到 flag

五、[HBNIS2018] 低个头(键盘解密)

点击链接下载文件

文件内容如下

emmm……这题太抽象了,网上看是键盘上的字母连在一起就是 CTF(果真低头)

所以 flag 就是:flag{CTF}

六、[SWPU2019] 伟大的侦探(IBM EBCDIC 编码 & 跳舞的小人解码)

点击链接下载文件

解压缩文件需要密码,有个 密码.txt 文件内容如下

可以看出编码方式不对,在 WinHex 中换成 IBM EBCDIC 编码

密码为:wllm_is_the_best_team!

解压出来后看到一堆小人图片

网上查了查说是跳舞的小人密码——来自《福尔摩斯:跳舞的小人》 (刚好与题目对应)

解密得到 iloveholmesandwllm

七、黑客帝国(十六进制转文件 & Archpr 爆破 & WinHex 修改)

点击链接下载文件

打开文件,有经验的话能看出这是 RAR 头文件

编写 Python 代码将十六进制数写成 RAR 文件

import binascii
 
hex_data='这里填十六进制数据'
out=open('res.rar','wb')
out.write(binascii.unhexlify(hex_data))
out.close()

解压缩发现需要密码

使用 Archpr 爆破得到密码

最后修改文件头部拿到 flag

八、[SUCTF2018] single dog

点击链接下载文件

打开后是一张图片,使用 Binwalk 分析发现有隐藏文件

打开压缩包发现密文

aaencode 解码即可

相关文章
|
5月前
|
安全 Java Linux
攻防世界:Misc 解析(一)
攻防世界:Misc 解析(一)
|
7月前
|
安全 网络安全 数据安全/隐私保护
BUUCTF:Crypto 解析(三)
BUUCTF:Crypto 解析(三)
|
7月前
|
安全 网络安全 数据安全/隐私保护
BUUCTF:Misc 解析(十)
BUUCTF:Misc 解析(十)
|
7月前
|
SQL 安全 网络协议
BUUCTF:Misc 解析(九)
BUUCTF:Misc 解析(九)
|
7月前
|
安全 Linux 网络安全
BUUCTF:Misc 解析(七)
BUUCTF:Misc 解析(七)
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
77 2
|
2月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
81 0
|
2月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
67 0
|
3天前
|
存储 设计模式 算法
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为类行为模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象行为模式比类行为模式具有更大的灵活性。 行为型模式分为: • 模板方法模式 • 策略模式 • 命令模式 • 职责链模式 • 状态模式 • 观察者模式 • 中介者模式 • 迭代器模式 • 访问者模式 • 备忘录模式 • 解释器模式
【23种设计模式·全精解析 | 行为型模式篇】11种行为型模式的结构概述、案例实现、优缺点、扩展对比、使用场景、源码解析
|
3天前
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 结构型模式分为以下 7 种: • 代理模式 • 适配器模式 • 装饰者模式 • 桥接模式 • 外观模式 • 组合模式 • 享元模式
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析

推荐镜像

更多