HITB-GSEC-CTF-2017-WriteUp

2017, Dating in Singapore

1
01081522291516170310172431-050607132027162728-0102030209162330-02091623020310090910172423-02010814222930-0605041118252627-0203040310172431-0102030108152229151617-04050604111825181920-0108152229303124171003-261912052028211407-04051213192625

题目给了一串神秘数字。分析,这些数字用{-}分成了12组,有很多连续的数字以及相差为7的数字。并且题目有Dating等字样,想到日历上的数字,因为日历上的数字横着相差1,竖着刚好差一周7。打印出日历开始对比:

1

发现符合。一直画下去得出flag为

HITB{CTFFUN} (这题脑洞真大。。)

Cephalopod

We’ve found some strange networktraffic, we suspect it contains a flag.

这个比赛很多流量题,于是就去搜了一些提取流量中文件的方法,这些题都迎刃而解了。

当然可以手工去提取,有时候容易出错。

这里直接用tcpxtract, kali 下直接apt安装就好了。

2

simple_transfer

The file contains a flag, find it.

这题也是流量题,同理

XZ~@5BPC2V~1N4%5VK_%0

打开PDF就得到flag了

prime

Do you know prime?

下载得到一个Android文件,逆向之后发现是一道数学题,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//主要类
public class MainActivity extends AppCompatActivity
{
private static long N = ()Math.pow(10.0D, 16.0D);
//计算CalcNumber
private long CalcNumber(long paramLong)
{
long l1 = 0L;
for (long l2 = 1L; l2 <= paramLong; l2 += 1L)
if (isOk(l2).booleanValue())
l1 += 1L;
return l1;
}
// 这是个坑,看似是计算质数的函数,实则不是
private Boolean isOk(long paramLong)
{
if (paramLong == 1L)
return Boolean.FALSE;
if (paramLong == 2L)
return Boolean.TRUE;
// 细心会发现这里的判断条件少了个=导致质数的平方也会返回TRUE
for (long l = 2L; l * l < paramLong; l += 1L)
if (paramLong % l == 0L)
return Boolean.FALSE;
return Boolean.TRUE;
}
protected void onCreate(Bundle paramBundle)
{
super.onCreate(paramBundle);
setContentView(2130968603);
Button localButton = (Button)findViewById(2131427422);
Log.i("Number", String.valueOf(N));
localButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View paramAnonymousView)
{
String str = "HITB{" + MainActivity.this.CalcNumber(MainActivity.N) + "}";
Toast.makeText(MainActivity.this, str, 0).show();
}
});
}
}

读代码可知:以上注释

再根据素数定理得到

279238341033925+5761455=279238346795380

所以flag是

HITB{279238346795380}

Flying_High

We found a crashed drone, are you able to recover information what this drone was doing?
Flying_High.tar.gz:43ce56686b4f38b68108140825434f76bfed47530a92f3a6469c202746c257f2

下载得到一个压缩包,解压了之后file一下得知是ubi文件,于是挂载

1
mount -t ubifs image.bin /mnt/ubi

可惜挂载不成功,直接用工具读文件吧

找到一个https://github.com/jrspruitt/ubi_reader

安装之后在image3的目录下的video里面发现了flag的视频

3