强网拟态预选赛

我好菜,拖后腿了

Posted by JBNRZ on 2022-11-05
Estimated Reading Time 1 Minutes
Words 267 In Total
Viewed Times

S3qUenCEs

payload

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from pwn import *
def run(n: int, m: int, a1: list):
sign = []
minn = []
summary = 0
sum1 = 0
sum2 = 0
for i in range(m):
a = int(a1[i])
sign.append(1)
if a < 0:
sign[i] *= -1
a *= -1
summary += a
minn.append(a)
for i in range(n-m):
a = int(a1[i+m])
if a < 0:
sign[i % m] *= -1
a *= -1
summary += a
if a < minn[i % m]:
minn[i % m] = a
for i in range(m):
if sign[i] > 0:
sum1 += minn[i]
else:
sum2 += minn[i]
return summary-2*min(sum1, sum2)
pro = remote('172.52.4.26', 9999)
for i in range(100):
print(f'round: {i}')
b = pro.recvuntil(b'Give me your output:\n').decode().split('\n')[-4:-2]
print(b)
_len = int(b[0].split()[0])
k = int(b[0].split()[1])
a1 = b[1].split()
print(_len, k, len(a1))
answer = run(_len, k, a1)
print(answer)
pro.sendline(str(answer).encode())
pro.interactive()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from pwn import *
from pwnlib.util.iters import mbruteforce
from hashlib import sha256

def proof_of_work(sh):
sh.recvuntil("XXXX + ")
suffix = sh.recvuntil(')').decode("utf8")[:-1]
log.success(suffix)
sh.recvuntil("== ")
cipher = sh.recvline().strip().decode("utf8")
proof = mbruteforce(lambda x: sha256((x + suffix).encode()).hexdigest() == cipher, string.ascii_letters + string.digits, length=4, method='fixed')
sh.sendlineafter("Give me XXXX:", proof)

sh=remote("123.57.1.42","29518")

proof_of_work(sh)
sh.interactive()


如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !