ctf-cybrics

https://cybrics.net

Warmup

在这里插入图片描述
下载该链接获取html即可:
在这里插入图片描述
在这里插入图片描述

Zakukozh

在这里插入图片描述
Zakukozh.bin:
Zakukozh.bin
题目说明文件是一个图像文件,但是被仿射密码加密。
在这里插入图片描述
目前常见的图片文件有:jpg、png、bmp、gif。根据magic num来判断原文件格式。
jpg魔数:ff d8 ff e0,对比可知不是jpg文件。
在这里插入图片描述
png魔数: 89 50 4E 47 0D 0A 1A 0A,对比可知可能为png文件。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


int main()
{
	long inv_a = inverse(0xF, 0x100);
	char c;

	ifstream inFile("../Debug/zakukozh.bin", ios::binary | ios::in);  //以二进制读模式打开文件
	if (!inFile) {
		cout << "Source file open error." << endl;
		return 0;
	}


	ofstream outFile("../Debug/zakukozh.png", ios::binary | ios::out);  //以二进制写模式打开文件
	if (!outFile) {
		cout << "New file open error." << endl;
		inFile.close();  
		return 0;
	}

	while (inFile.get(c))  //每次读取一个字符
	{
		char tmp = inv_a * (c - 0x59) % 0x100;
		outFile.put(tmp);  //每次写入一个字符
	}
	outFile.close();
	inFile.close();
	return 0;
}

在这里插入图片描述

Oldman Reverse

在这里插入图片描述
oldman.asm

.MCALL  .TTYOUT,.EXIT
START:
    mov   #MSG r1  
    mov #0d r2
    mov #32d r3
loop:       
    mov   #MSG r1 
    add r2 r1 			
    movb    (r1) r0		
    .TTYOUT
    sub #1d r3    
    cmp #0 r3
    beq     DONE
    add #33d r2
    swab r2
    clrb r2
    swab r2    
    br      loop      
DONE: 
    .EXIT

MSG:
    .ascii "cp33AI9~p78f8h1UcspOtKMQbxSKdq~^0yANxbnN)d}k&6eUNr66UK7Hsk_uFSb5#9b&PjV5_8phe7C#CLc#<QSr0sb6{%NC8G|ra!YJyaG_~RfV3sw_&SW~}((_1>rh0dMzi><i6)wPgxiCzJJVd8CsGkT^p>_KXGxv1cIs1q(QwpnONOU9PtP35JJ5<hlsThB{uCs4knEJxGgzpI&u)1d{4<098KpXrLko{Tn{gY<|EjH_ez{z)j)_3t(|13Y}"
.end START

SWAB指令交换指定字的高字节和低字节,并且没有字节寻址。
在这里插入图片描述
以上资料来自维基百科。得知swab为word的字节交换,clrb为字节清除。还原为C代码如下所示。

#include <stdio.h>

int main()
{
	char msg[] = "cp33AI9~p78f8h1UcspOtKMQbxSKdq~^0yANxbnN)d}k&6eUNr66UK7Hsk_uFSb5#9b&PjV5_8phe7C#CLc#<QSr0sb6{%NC8G|ra!YJyaG_~RfV3sw_&SW~}((_1>rh0dMzi><i6)wPgxiCzJJVd8CsGkT^p>_KXGxv1cIs1q(QwpnONOU9PtP35JJ5<hlsThB{uCs4knEJxGgzpI&u)1d{4<098KpXrLko{Tn{gY<|EjH_ez{z)j)_3t(|13Y}";
	char* pMsg = msg;

	short index = 0;

	for (int i = 32; i != 0; i--)
	{
		pMsg = msg + index;
		char tmp = *pMsg;
		printf("%c", tmp);
		index += 33;
		index = index & 0xff;
	}
	
	return 0;
}

在这里插入图片描述

Tone

在这里插入图片描述
该链接是一个y站的视频地址,画面没有啥的,有声音,下载并转换格式为wav,使用audacity打开。
在这里插入图片描述
对比频率一一获取到按键序号:

222 999 22 777 444 222 7777 7777 33 222 777 33 8 8 666 66 2 555 333 555 2 4

电话按键对应字母:

cybricssecrettonalflag

参考链接:https://www.freebuf.com/geek/5507.html

Sender (Network, Baby, 10 pts)

从txt中获取flag:https://cybrics.net/files/intercepted_text.txt

220 ugm.cybrics.net ESMTP Postfix (Ubuntu)
EHLO localhost
250-ugm.cybrics.net
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH LOGIN
334 VXNlcm5hbWU6
ZmF3a2Vz
334 UGFzc3dvcmQ6
Q29tYmluNHQxb25YWFk=
235 2.7.0 Authentication successful
MAIL FROM: <fawkes@ugm.cybrics.net>
250 2.1.0 Ok
RCPT TO: <area51@af.mil>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
From: fawkes <fawkes@ugm.cybrics.net>
To: Area51 <area51@af.mil>
Subject: add - archive pw
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0

=62=74=77=2E=0A=0A=70=61=73=73=77=6F=72=64 =66=6F=72 =74=68=65 =61=72=63=
=68=69=76=65 =77=69=74=68 =66=6C=61=67=3A =63=72=61=63=6B=30=57=65=73=74=
=6F=6E=38=38=76=65=72=74=65=62=72=61=0A=0A=63=68=65=65=72=73=21=0A
.
250 2.0.0 Ok: queued as C4D593E8B6
QUIT
221 2.0.0 Bye

扫描域名 ugm.cybrics.net,获取到三个开放端口。
在这里插入图片描述

看起来就像是base64编码:
在这里插入图片描述在这里插入图片描述
获取到用户名和密码,尝试远程登陆。其中pop3端口查看邮件,telnet ugm.cybrics.net 110
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
很明显这是一个名为"secret_flag.zip"的压缩文件,将base64解密后的数据保存为zip文件。
在这里插入图片描述

最下面的等号加数字一串看起来像编码,尝试后为:url解码
在这里插入图片描述
整理后得到:flag压缩包的密码为crack0Weston88vertebra。解压得到flag。

ProCTF

在这里插入图片描述
登陆后环境swi-prolog相关链接:shell执行指令, 有人已经拿到了flag,在user目录下(emmmm,这就是经验吗)。

Bitkoff Bank

Need more money! Need the flag!
http://45.77.201.191/index.php
Mirror: http://95.179.148.72:8083/index.php

在这里插入图片描述
使用1$购买flag, $通过btc兑换,btc需要手动点击mine btc按钮,每次增加一点点点点点点点点点点点点。一开始通过截获修改请求但是无效,最后解决办法是保存增加btc的请求,通过脚本循环点击一直到btc足够。

### CTF-NetA 介绍 CTF-NetA 是一款专注于 CTF 比赛的网络流量分析工具,旨在为参赛者提供更高效的流量分析能力[^2]。与功能全面但操作复杂的 Wireshark 不同,CTF-NetA 更加聚焦于 CTF 场景下的特定需求,例如快速识别关键流量、提取敏感信息等。 ### 功能概述 CTF-NetA 的核心功能包括但不限于以下几点: - **流量捕获与过滤**:支持对指定网络接口进行实时流量捕获,并通过自定义规则对流量进行过滤[^2]。 - **数据包解析**:能够解析多种常见协议的数据包内容,帮助用户快速定位关键信息。 - **日志记录与分析**:通过配置文件中的 `[General]` 部分设置日志级别,记录分析过程中的重要事件[^2]。 - **数据库集成**:支持将解析结果存储到数据库中,便于后续查询和统计。数据库连接信息可以通过 `config.ini` 文件中的 `[Database]` 部分进行配置[^2]。 ### 使用方法 #### 1. 目录结构 CTF-NetA 的项目目录结构清晰明了,主要文件及其作用如下: - `LICENSE`:项目的许可证文件,明确了使用权限。 - `README.md`:项目的说明文档,提供了基本的使用指导。 - `main.py`:项目的启动文件,包含主逻辑和入口点。 - `config.ini`:项目的配置文件,用于调整运行环境和功能选项[^2]。 #### 2. 启动工具 要启动 CTF-NetA 工具,用户需要运行 `main.py` 文件。以下是启动代码示例: ```python import sys from core import CTFNetA def main(): ctf_neta = CTFNetA() ctf_neta.run() if __name__ == "__main__": main() ``` 在执行过程中,`CTFNetA` 类会根据 `config.ini` 中的配置加载必要的模块并开始运行[^2]。 #### 3. 配置文件 `config.ini` 文件是 CTF-NetA 的核心配置文件,用户可以根据实际需求修改其中的参数。以下是一个典型的配置示例: ```ini [General] log_level = INFO [Database] host = localhost port = 3306 user = root password = 123456 ``` - `[General]` 部分用于设置全局参数,如日志级别(`log_level`)。 - `[Database]` 部分用于配置数据库连接信息,包括主机地址、端口、用户名和密码。 ### 技术细节 CTF-NetA 的技术实现基于 Python 编程语言,利用了多种第三方库来完成流量捕获、解析和存储等功能。具体技术细节如下: - **流量捕获**:通过调用 `scapy` 或类似库实现对网络数据包的捕获。 - **数据包解析**:利用 `dpkt` 或其他解析库对捕获的数据包进行深度解析。 - **日志管理**:采用 Python 的标准日志模块 `logging`,支持多级日志输出。 - **数据库集成**:通过 `SQLAlchemy` 或原生 SQL 操作库与数据库交互,确保解析结果的持久化存储[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值