Gu-f 发表于 2019-6-9 13:50:08

【第四届山东省网络安全技能大赛】爬坡道 writeup

爬坡道:对文件进行16进制分析发现里面有压缩包然后kalilinux中利用foremost进行提取zip包
解压缩后发现key联想题目爬坡道的英文为hill猜测为希尔加密那么key为一个可逆矩阵(需要有线性代数基础和了解希尔加密原理)求解密钥key的逆矩阵,然后用逆矩阵与密文ciphertext的ascii值进行相乘后对26取余,然后专程字符串即可得到答案求解逆矩阵脚本(可手算):
import numpy as np
a=np.matrix([,])
print a.I
print a**(-1)
print np.linalg.inv(a)

解密攻击脚本如下:
import numpy as np
cip="mttpjbpexfdzcegtdzeanutg"
key=[,[-2,3]]

hang_len=len(key)

def pla_index(strs):
   result=[]
   for i in strs:
       result.append(ord(i)-97)
   return result

cip_group =[]
for i in range(0,len(cip),hang_len):
   a=""
   a=cip
   cip_group.append(list(pla_index(a)))

result=[]
for i in cip_group:
   result.append(list(np.dot(key,i)%26))

pla=""
for i in result:
   for j in i:
       pla +=chr(j+97)
print("Result:")

print "flag{"+pla+"}"

运行即可得到flag

roger 发表于 2019-6-9 15:22:55

代码排版有问题,我给你修复好了
页: [1]
查看完整版本: 【第四届山东省网络安全技能大赛】爬坡道 writeup