前言
学习CTF有一段时间了,现在做个小小的总结,加深印象。
习题下载(只含第一部分)
链接:https://pan.baidu.com/s/1j-_TlAek4Q9IlEwbMWv2GA?pwd=47pk
提取码:47pk
正文
1.1、MISC——找到证据
解压缩包,要密码,根据压缩包提示:
这道题要求求100-1000之内的素数。
我写的python算法:
sum=0
for i in range(101,1001):
prime = True
for j in range(2,i):
if i % j == 0:
prime = False
break
if prime:
sum+=i
print("101到1001的素数之和为:",sum)
再看了看大佬写的:
def is_prime(num):
if num<2:
return False
for i in range(2,int(num**0.5)+1):
if num % i == 0:
return False
return True
prime_sum = sum([x for x in range(100,1001) if is_prime(x)])
print(prime_sum)
发现大佬写的要比我的严谨一些。
结果是75067
,最后解压出来是一个图片。
搜索jpg图片十六进制结尾FFD9
发现隐藏的png图片,保存为html文件,并添加img src标签。
再通过网页打开,发现是一张二维码,扫码得到flag。
1.2、MISC——虚假的内存取证
给了一个1.qcow2的文件,在kali 里通过binwalk查看一下:
binwalk -e 1.qcow2 --run-as=root
发现一个可疑的文件,放到010editor中,通过快捷键Ctrl + F
搜flag。
就拿到flag了。
1.3、Wireshark——协议分析
拿到流量包,按照长度从大到小排序。
把这条最长的数据点击一下,发现下面有惊喜。
然后按照如下步骤,吧这串base64编码复制到cyberchef中。
然后按照如下步骤,进行解码,拿到flag。
1.4、Misc——PDF
下载下来的,不带文件后缀。
用010查看后,发现是压缩包。
PDF加密,但是压缩包解密后提示一句话。
输入密码20181231
,拿到flag。
1.5、Crypto——多次解码
发现0x打头,16进制。
复制到cyberchef中。
1.6、Crypto——NotOnlyBase
下载下来后是一个不带后缀的文件。
通过010 editor打开,发现像栅栏。
放到随波逐浪工具箱一键解密
,拿到flag.
2、Web——XFF+RE
抓包,通过在response文末加这两句话:
X-Forwarded-For: localhost
Referer: http://localhost/
拿到flag。
这些入门的CTF题做起来还是挺有意思的。再接再厉。