Misc

签到

“献祭”了三个小朋友的人脸就得到了一枚热腾腾的flag呢~

24c

根据提示,先搜索资料。发现24c是一种常见的EEPROM链接)。

Saleae Logic打开logicdata文件,看到一组双通道电平数据。由于先前的24c提示,推测是使用I2C进行元件读写,尝试用I2C对电平数据进行解码。得到以下内容:

Time [s], Analyzer Name, Decoded Protocol Result
0.843705500000000,I2C,Setup Write to [0xA0] + ACK
0.843872000000000,I2C,0x20 + ACK
0.844038500000000,I2C,0x66 + ACK
0.844205000000000,I2C,0x31 + ACK
0.844371000000000,I2C,0x36 + ACK
0.844537500000000,I2C,0x33 + ACK
0.844704000000000,I2C,0x62 + ACK
0.844870500000000,I2C,0x64 + ACK
0.845036500000000,I2C,0x66 + ACK
0.845203000000000,I2C,0x34 + ACK
0.845369500000000,I2C,0x65 + ACK
0.845536000000000,I2C,0x7D + ACK
0.845702500000000,I2C,0x00 + ACK
0.945796000000000,I2C,Setup Write to [0xA0] + ACK
0.945962500000000,I2C,0x00 + ACK
0.946154000000000,I2C,Setup Read to [0xA1] + ACK
0.946318000000000,I2C,0x66 + ACK
0.946481500000000,I2C,0x6C + ACK
0.946645000000000,I2C,0x61 + ACK
0.946808500000000,I2C,0x67 + ACK
0.946972000000000,I2C,0x7B + ACK
0.947135500000000,I2C,0x63 + ACK
0.947299500000000,I2C,0x34 + ACK
0.947463000000000,I2C,0x36 + ACK
0.947626500000000,I2C,0x64 + ACK
0.947790000000000,I2C,0x39 + ACK
0.947953500000000,I2C,0x65 + ACK
0.948117500000000,I2C,0x31 + ACK
0.948281000000000,I2C,0x30 + ACK
0.948444500000000,I2C,0x2D + ACK
0.948608000000000,I2C,0x65 + ACK
0.948771500000000,I2C,0x39 + ACK
0.948935500000000,I2C,0x62 + ACK
0.949099000000000,I2C,0x35 + ACK
0.949262500000000,I2C,0x2D + ACK
0.949426000000000,I2C,0x34 + ACK
0.949589500000000,I2C,0x64 + ACK
0.949753000000000,I2C,0x39 + ACK
0.949917000000000,I2C,0x30 + ACK
0.950080500000000,I2C,0x2D + ACK
0.950244000000000,I2C,0x61 + ACK
0.950407500000000,I2C,0x38 + ACK
0.950571000000000,I2C,0x38 + ACK
0.950734500000000,I2C,0x33 + ACK
0.950898000000000,I2C,0x2D + ACK
0.951061500000000,I2C,0x34 + ACK
0.951225000000000,I2C,0x31 + ACK
0.951388500000000,I2C,0x63 + NAK
5.946480500000000,I2C,Setup Write to [0xA0] + ACK
5.946647000000000,I2C,0x09 + ACK
5.946813500000000,I2C,0x61 + ACK
5.946980000000000,I2C,0x63 + ACK

根据24c元件的写规则,不难想到这里是将flag连续地写在了EEPROM中,其中每个Write命令后的第一个字节用于指定偏移,后面的数据就是ASCII下的字符。拼接出以下部分

0x20 : cf163bdf4e}
0x00 : flag{c46d9e10-e9b5-4d90-a883-41
0x09 : ac

模拟写入过程,即可得到flag

saleae

首先下载题目发现是个saleae.logicdata

根据百度资料发现了Saleae Logic 1.2.17这个软件

因为题干提到了U盘,不难想到SPI这个分析

SPI是串行外设接口(Serial Peripheral Interface)

用来分析U盘传输数据流

img

发现只有Channel 0Channel 2有可疑数据,使用SPI分析,这是MOSIMISOchannel 1channel 2,输出为ASCII模式,发现字符

img

即可得flag

usbasp

题干还是U盘(SPI是串行外设接口),仍然使用SPI进行分析,输出为ASCII,在最下面发现了类似字符的地方,寻找一番发现flag字样

img

Crypto

puzzles

question 0:使用四元一次方程组计算器可得a1a2a3a4

图片.png

question1:大素数表如下

图片.png

question2、3、4:手算结果如下

图片.png

拼接即为flag

warmup

分析题目可知,本题使用了AES-CTR加密,在CTR模式下,加密模式会被转换为类似OTP加密的模式,仔细分析脚本,发现每次加密,计数器的prefix、suffix都是相同的

mark

也就是不安全的重用了密码本,因为AES-CTR的加密模式可简化为

mark

所以存在以下关系

P1=C1^K
P2=C2^K

那么

P1^P2=C1^K^C2^K=C1^C2

又发现加密时是以十六位为一个分组,于是想到如果输入

AAAAAAAAAAAAAAAB

那么flag必然会被拼接到后面

AAAAAAAAAAAAAAABflag...

那么加密后窝们可以得到B的密文,接下来输入

AAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAflag... //拼接后
AAAAAAAAAAAAAAABflag...//与第一次做比较

于是窝们可以得到明文'B',明文'B'的密文C_1,未知明文_1(其实是'f')的密文C_2

未知明文='B'^C_1^C_2

计算后得到'f',接下来可以借助明文'f',明文'f'的密文C_1,未知明文_2(其实是'l')的密文C_2

进而推算整个未知明文

EXP如下

from pwn import *
sh=remote('fc32f84bc46ac22d97e5f876e3100922.kr-lab.com',12345)
result_1=0
result_2=0
char_temp='A'
flag=""
for i in range(0,42):
    sh.recvuntil('plaintext>')
    payload='A'*(48-i)
    sh.sendline(payload)
    sh.recvuntil('result>')
    result_1=int(sh.recvline()[94:96],16)
    sh.recvuntil('plaintext>')
    payload='A'*(48-i-1)
    sh.sendline(payload)
    sh.recvuntil('result>')
    result_2=int(sh.recvline()[94:96],16)
    char_temp = chr(result_1^result_2^ord(char_temp))
    flag += char_temp
    print(flag)

Reverse

easyGo

查看文件格式,是ELF文件,放进虚拟机运行试一试

img

IDA打开,根据题干猜测这是Golang语言去符号化逆向题目,首先需要考虑符号表修复

https://github.com/sibears/IDAGolangHelper

需要加载该py插件,使用方法:用File->Script File加载脚本文件,选Rename Function

img

Golang的主程序为main_mainF5反编译,发现最后有一个if分开输出两个结果,在此下一个断点

img

再使用IDA动态调试虚拟机中ELF文件,

img

动调时,配合伪C代码感觉寄存器有点不对,查看寄存器,在RDX中发现flag

img

提取flag{92094daf-33c9-431e-a85a-8bfbd5df98ad},提交通过

分类: CTF

0 条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注