https://cybrics.net
ctf-cybrics
- Warmup
- Zakukozh
- Oldman Reverse
- Tone
- Sender (Network, Baby, 10 pts)
- ProCTF
- Bitkoff Bank
Warmup 【ctf-cybrics】

文章图片
下载该链接获取html即可:

文章图片

文章图片
Zakukozh

文章图片
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
beqDONE
add #33d r2
swab r2
clrb r2
swab r2
brloop
DONE:
.EXITMSG:
.ascii "cp33AI9~p78f8h1UcspOtKMQbxSKdq~^0yANxbnN)d}k&6eUNr66UK7Hsk_uFSb5#9b&PjV5_8phe7C#CLc#rh0dMzi>_KXGxv1cIs1q(QwpnONOU9PtP35JJ5
SWAB指令交换指定字的高字节和低字节,并且没有字节寻址。

文章图片
以上资料来自维基百科。得知swab为word的字节交换,clrb为字节清除。还原为C代码如下所示。
#include int main()
{
char msg[] = "cp33AI9~p78f8h1UcspOtKMQbxSKdq~^0yANxbnN)d}k&6eUNr66UK7Hsk_uFSb5#9b&PjV5_8phe7C#CLc#rh0dMzi>_KXGxv1cIs1q(QwpnONOU9PtP35JJ5

文章图片
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:
250 2.1.0 Ok
RCPT TO:
250 2.1.5 Ok
DATA
354 End data with .
From: fawkes
To: Area51
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足够。
推荐阅读
- 解护网杯一道web(EasyChallenge)
- ctf|ctf-htctf-misc
- C++|一些关于程序内存布局的问题
- QCTF 2018xman夏令营选拔赛
- 第一届桂林电子科技大学绿盟杯CTF大赛 wp
- Capture the flag
- CTF|BUUOJ [2019红帽杯]easyRE
- Buuctf -web wp汇总(二)
- #|CTF-网络信息安全攻防学习平台(脚本关)
- ctf