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

一、[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



相关文章
|
7月前
|
安全 网络安全 数据安全/隐私保护
BUUCTF:Misc 解析(八)
BUUCTF:Misc 解析(八)
|
5月前
|
安全 Java Linux
攻防世界:Misc 解析(一)
攻防世界:Misc 解析(一)
|
7月前
|
安全 网络安全 数据安全/隐私保护
BUUCTF:Crypto 解析(三)
BUUCTF:Crypto 解析(三)
|
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种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析

推荐镜像

更多