12345678910111213141516171819202122232425262728293031323334353637 |
- from base64 import b64decode
- import socket
- from Crypto.Cipher import AES
- server = '127.0.0.1'
- port = 8000
- chars = 'abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ{}_'
- flag_blocks = 2
- block_size = 16
- index = {}
- flag = ''
- for i in range(block_size-1, 1, -1):
- for j in chars:
-
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.connect((server, port))
- data = s.recv(4096)
- s.send(('a'*i).encode('ascii'))
- value = b64decode(s.recv(4096)).hex()[0:32]
- s.close()
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.connect((server, port))
- data = s.recv(4096)
- s.send(('a'*i+flag+j).encode('ascii'))
- test = b64decode(s.recv(4096)).hex()[0:32]
- s.close()
- if value == test:
- flag += j
- break
- print(flag)
|