File tree 1 file changed +49
-0
lines changed
2020/zer0pts-2020/nibelung
1 file changed +49
-0
lines changed Original file line number Diff line number Diff line change
1
+ from pwn import *
2
+ from sage .all import *
3
+
4
+ def get_matrix (proc ):
5
+ ans = []
6
+ for i in range (6 ):
7
+ x = proc .recvline ().strip ("\n []" )
8
+ ans .append (map (int , x .split (", " )))
9
+ return ans
10
+
11
+ proc = remote ('13.231.224.102' , 3002 )
12
+
13
+ proc .recvline ()
14
+
15
+ flag = get_matrix (proc )
16
+ p = int (proc .recvline ().strip ().split ()[- 1 ])
17
+
18
+ print flag
19
+
20
+ R = IntegerModRing (p )
21
+
22
+ curr_pow = 1
23
+ ans = Matrix (R , matrix .zero (6 ))
24
+
25
+ for b in range (0 , 512 , 8 ):
26
+ print b
27
+ curr = [0 for i in range (36 )]
28
+ for i in range (6 ):
29
+ for j in range (6 ):
30
+ curr [i * 6 + j ] = (flag [i ][j ] >> b ) % 256
31
+ proc .recvuntil ("> " )
32
+ proc .sendline ("2" )
33
+ proc .recvuntil ("Data: " )
34
+ payload = b64e ('' .join (map (chr , curr )))
35
+ proc .sendline (payload )
36
+ proc .recvline ()
37
+ resp = Matrix (R , get_matrix (proc ))
38
+ ans += 2 ** b * resp
39
+
40
+ print ans
41
+
42
+ sice = ''
43
+ for i in range (6 ):
44
+ for j in range (6 ):
45
+ sice += chr (int (ans [i ][j ]))
46
+
47
+ print sice
48
+
49
+ # zer0pts{r1ng_h0m0m0rph1sm_1s_c00l}
You can’t perform that action at this time.
0 commit comments