爬虫协议
题目给了提示访问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}