Caesar’s Secert
凯撒加解密
偏移量为5时,得到:
1 | flag{ca3s4r's_c1pher_i5_v4ry_3azy} |
brainfuck
在搜索引擎搜索题目,得知这是一种编程语言,可进行加解密
在线工具:https://ctf.bugku.com/tool/brainfuck
1 | flag{Oiiaioooooiai#b7c0b1866fe58e12} |
Fence
提示栅栏,栅栏加密是一种简单的加密方法
栏数为2时,得到结果
1 | flag{reordering_the_plaintext#686f8c03} |
Vigenère
意大利语,翻译过来是维吉尼亚,因此大概是维吉尼亚密码
介绍里还有这么一串:
le chiffre indéchiffrable
维吉尼亚是需要key的,本来因为那一串意大利语就是key,但是维吉尼亚只有英文字母,所以可能需要我们自己推算密钥
看前面四个字母,由前几题可以得知,flag的格式是:“flag{……}”
所以前面四个字母经过解密后一定是flag四个字母
根据这张码表
原文如果是x,则密钥是y,密文是z
则z=(x,y),即为坐标处的字母
现在我们知道了z,和x,如何知道y呢
先找x对应的列,在这列中找z,找到z后,看z对应的行,即为y的值
由此,我们得知,密钥是kfc
利用在线工具或者编写脚本得到flag:、
1 | flag{la_c1fr4_del_5ign0r_giovan_batt1st4_b3ll5s0} |
babyrsa
rsa加密算法,需要先知道它的数学运算规则,然后根据一致量求解未知量,可以先搞清楚原理,在草稿纸上写出算法,然后通过python或者其他编程语言写脚本
终端运行:
1 | pip install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple |
安装密码学模块,然后,先学习一下rsa加密算法吧……
学习之后得知,flag是一个位置的函数,是需要我们自己来写的,写的方法是按照rsa解密的原理进行的的
(d*e)对t取模 = 1,已知t,e,如何计算d
使用扩展欧几里得算法计算 d 的步骤如下:
- 调用
gcd(e, t)
函数,计算 e 和 t 的最大公约数。 - 将最大公约数作为 d 的返回值。
题目说是分解n,分解得到15个32位质数相乘,以前本来以为rsa只能是两个质数进行算法加密,但是实际上是可以选择多个质数的,利用下面的网站分解n:http://factordb.com/
1 | 2217990919 2338725373 2370292207 2463878387 2706073949 2794985117 2804303069 2923072267 2970591037 3207148519 3654864131 3831680819 3939901243 4093178561 4278428893 |
然后解密:
1 | from Crypto.Util.number import * |
1 |
CyberChef’s Secret
base系列编码,basecrack一下:
flag{Base_15_S0_Easy_^_^}
机密图片
二维码扫出来是:
1 | Welcome to NewStarCTF 2023! |
binwalk一下,没有隐藏文件:
用zsteg,得到隐写信息:
flag{W3lc0m3_t0_N3wSt4RCTF_2023_7cda3ece}
流量!鲨鱼!
流量分析,wireshark
1 | [truncated]<a href="http://www.zend.com/"><img border="0" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPoAAAAvCAYAAADKH9ehAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAEWJJREFUeNrsXQl0VNUZvjNJSAgEAxHCGsNitSBFxB1l0boUW1pp3VAU |
点击追tcp流
然后他会自动筛选这一组
1 | tcp.stream eq 62 |
逐一查看,发现base编码,放到basecrack里面
1 | Wm14aFozdFhjbWt6TldnMGNtdGZNWE5mZFRVelpuVnNYMkkzTW1FMk1EazFNemRsTm4wSwo= |
1 | 是两次base64 |