ctf-cybrics

https://cybrics.net

ctf-cybrics
  • Warmup
  • Zakukozh
  • Oldman Reverse
  • Tone
  • Sender (Network, Baby, 10 pts)
  • ProCTF
  • Bitkoff Bank

Warmup 【ctf-cybrics】ctf-cybrics
文章图片

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

ctf-cybrics
文章图片

Zakukozh ctf-cybrics
文章图片

Zakukozh.bin:
ctf-cybrics
文章图片

题目说明文件是一个图像文件,但是被仿射密码加密。
ctf-cybrics
文章图片

目前常见的图片文件有:jpg、png、bmp、gif。根据magic num来判断原文件格式。
jpg魔数:ff d8 ff e0,对比可知不是jpg文件。
ctf-cybrics
文章图片

png魔数: 89 50 4E 47 0D 0A 1A 0A,对比可知可能为png文件。
ctf-cybrics
文章图片

ctf-cybrics
文章图片

ctf-cybrics
文章图片

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; }

ctf-cybrics
文章图片

Oldman Reverse ctf-cybrics
文章图片

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指令交换指定字的高字节和低字节,并且没有字节寻址。
ctf-cybrics
文章图片

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

ctf-cybrics
文章图片

Tone ctf-cybrics
文章图片

该链接是一个y站的视频地址,画面没有啥的,有声音,下载并转换格式为wav,使用audacity打开。
ctf-cybrics
文章图片

对比频率一一获取到按键序号:
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,获取到三个开放端口。
ctf-cybrics
文章图片

看起来就像是base64编码:
ctf-cybrics
文章图片
ctf-cybrics
文章图片

获取到用户名和密码,尝试远程登陆。其中pop3端口查看邮件,telnet ugm.cybrics.net 110
ctf-cybrics
文章图片

ctf-cybrics
文章图片

ctf-cybrics
文章图片

很明显这是一个名为"secret_flag.zip"的压缩文件,将base64解密后的数据保存为zip文件。
ctf-cybrics
文章图片

最下面的等号加数字一串看起来像编码,尝试后为:url解码
ctf-cybrics
文章图片

整理后得到:flag压缩包的密码为crack0Weston88vertebra。解压得到flag。
ProCTF ctf-cybrics
文章图片

登陆后环境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
ctf-cybrics
文章图片

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

    推荐阅读