爬虫协议
题目给了提示访问robots.txt
会出三个目录
访问最后一个
点进去就flag{22560c15-577c-4c8b-9944-815473758bad}
packet
下载附件,这个是流量包
放wireshark流量分析
搜http协议
发现有cat flag命令,直接看他返回的流量
最后base64解码即可
flag{7d6f17a4-2b0a-467d-8a42-66750368c249}
cc
首先下载附件,先上平台
选择左侧aes 解密,然后复制对应的key,选择input为hex,output为raw 4da72144967f1c25e6273950bf29342aae635e2396ae17c80b1bff68d90f16679bb45c15852e0ce88d4864d93e9e3be2
flag{6500e76e-15fb-42e8-8f29-a309ab73ba38}
Theorem
使用搓脚本
from Crypto.Util.number import long_to_bytes,inverse from sympy import primefactors n = 94581028682900113123648734937784634645486813867065294159875516514 52055688146161196609688356680657169187911576691783311712369577613 14430816583648550875750066410222111367510719007105896991719825637 53011439999297865781908255529833932820965169382130385236359802696 280004495552191520878864368741633686036192501791 # n 值 e = 65537 c = 36423517465893675519815622861961872192784685202298519340922692662 55940244955459630951838626303512855103758603437561393603693525644 41850386406257007287912012999608666889490566328748666218250121349 73285965672502404517179243752689740766636653543223559495428281042 737266438408338914031484466542505299050233075829 # 密文 c 值 # 分解 n 得到 p 和 q factor = primefactors(n) p,q = factor[0],factor[1] phi = (p - 1)*(q - 1) d = inverse(e,phi) m = pow(c,d,n) # 计算私钥 d flag = long_to_bytes(m) # 解密密文 # 将解密后的明文转换为字节形式 print(flag)
使用私钥 d
对密文 c
进行解密,即通过模幂运算 pow(c, d, n)
得到明文。 上面代碼里说明了解释
flag{5f00e1b9-2933-42ad-b4e1-069f6aa98e9a}
signature
根据给的代码手搓脚本
from Crypto.Util.number import * import gmpy2 from hashlib import * n = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036414 1 a = 0 b = 7 y1 = b'Hi.' y2 = b'hello.' r1,s1,s2 = (4690192503304946823926998585663150874421527890534303129755098666 293734606680, 1111573633478939999148976013901369100316595255254199892506384265 89503279490788, 7448630581958450824005624731832523980516033928825298717859712248 9325719901254) #计算了 y1 和 y2 的 SHA-1 哈希,并将它们转换为整数 h1 和 h2 h1 = bytes_to_long(sha1(y1).digest()) h2 = bytes_to_long(sha1(y2).digest()) k = gmpy2.invert((s1 - s2),n) * (h1 - h2) % n r = gmpy2.invert(r1,n) d = ((k * s1) - h1) * r % n print('flag{' + str(d) + '}')]()
-
使用签名参数和哈希计算了
k
,这是签名过程中使用的临时密钥。 -
计算了
r
,作为r1
模n
的模反函数。r1
是签名过程中生成的 x运行结果出flag
flag{403550552314060975042709401217983554393636168322908751408434 17522164091270174}
rc4
无魔改RC4,其中 "gamelab@" 作为密钥。RC4 是一种对称密钥加密算法,因此加密和解密使用相同的密钥。"gamelab@" 是一个 8 字节长的密钥。
动态dump可出v5
然后出
flag{12601b2b-2f1e-468a-ae43-92391ff76ef3}