Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. from pwn import *
  2. from paddingoracle import BadPaddingException, PaddingOracle
  3. import json
  4. from Crypto.Cipher import AES
  5.  
  6. class PadBuster(PaddingOracle):
  7. def oracle(self, data):
  8. while True:
  9. try:
  10. r = remote("2018shell3.picoctf.com", 24933)
  11. r.recvuntil("cookie?")
  12. s = data
  13. s = str(data).encode("hex")
  14. r.sendline(s)
  15. out = r.recvall()
  16. if "invalid padding" in out:
  17. raise BadPaddingException
  18. return
  19. except (socket.error, socket.gaierror, socket.herror, socket.timeout) as e:
  20. print str(e)
  21.  
  22. if __name__ == '__main__':
  23. d = {"username": "User", "is_admin": "true", "expires": "2019-01-01"}
  24. s = json.dumps(d)
  25. print s
  26. padbuster = PadBuster()
  27. encrypted = padbuster.encrypt(s, block_size=AES.block_size, iv="This is an IV456")
  28.  
  29. print "Ciphertext: %r" % (str(encrypted).encode("hex"))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement