2024蓝桥杯网络安全部分赛题wp

发布于:2024-05-09 ⋅ 阅读:(36) ⋅ 点赞:(0)

爬虫协议

题目给了提示访问robots.txt

会出三个目录

image-20240427112645810

访问最后一个

image-20240427112704617

点进去就flag{22560c15-577c-4c8b-9944-815473758bad}

image-20240427112728860

packet

下载附件,这个是流量包

放wireshark流量分析

搜http协议

image-20240427112958684

发现有cat flag命令,直接看他返回的流量

image-20240427113053628

最后base64解码即可

image-20240427113208588

flag{7d6f17a4-2b0a-467d-8a42-66750368c249}

cc

首先下载附件,先上平台

image-20240427130935558

选择左侧aes 解密,然后复制对应的key,选择input为hex,output为raw 4da72144967f1c25e6273950bf29342aae635e2396ae17c80b1bff68d90f16679bb45c15852e0ce88d4864d93e9e3be2

image-20240427131031172

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,作为 r1n 的模反函数。r1 是签名过程中生成的 x

    运行结果出flag

flag{403550552314060975042709401217983554393636168322908751408434
17522164091270174}

rc4

image-20240427132550857

无魔改RC4,其中 "gamelab@" 作为密钥。RC4 是一种对称密钥加密算法,因此加密和解密使用相同的密钥。"gamelab@" 是一个 8 字节长的密钥。

动态dump可出v5

image-20240427133058275

然后出

image-20240427133418962

flag{12601b2b-2f1e-468a-ae43-92391ff76ef3}