All-Army CyberStakes! AES-ECB Plaintext Recovery

27,424
15
Published 2020-05-22

All Comments (21)
  • @gnews1
    You probably all know whats John did there, but if you dont ill try to explain. Input for AES_ECB needs to be multiple of 16B (if its not than padding is added). Here we have some encrypted data that consist of our password + some secret(16B in total) that we need to get. So if we have 15B of password the 1B of secret will be appended to out password and this 16B will be encrypted. Remaining 15B of secret will be padded and encrypted. Thus we have 2*16B. To get secret we need to create password that will have 15B at the begining X = AES_ECB( password(15B) || secret(1B) ) Than we will try to guess this 1B of secret by doing: Y = AES_ECB( password(15B) || x) where x: printable character If X = Y that we got 1B of secret. That we will decreasse our password size by 1B add our known 1B of secret and repete: X = AES_ECB( password(14B) || known(1B) || secret(1B ) Y = AES_ECB( password(14B) || known(1B) || x ) where x: printable character
  • @ARZ10198
    Man i can't understand what he is doing but enjoying it xD
  • @sirw369
    Back to back, love it! 👊🏼💪🏼🙌🏼
  • @develepre
    I love this video series Regards from Italy
  • @caryhooper
    John I had the exact same issue with the semicolons on this problem! Unfortunately, I didn't solve the issue. Thanks for the video!
  • Great. I wonder if you could skip the part at the beginning for getting the length of the blocks though, using the fact that in AES the input and output block lengths are always 16 bytes (the output blocks are shown to be 32 characters but each of them represent a hex symbol, so 32*4 = 128 bits, or 16 bytes!)
  • @zer001
    I love to watch you programming Python.
  • @UnknownSend3r
    Any tips in how you learnt to translate your thoughts into code so smoothly
  • @FunnyPantsTV124
    trying to sign up after the video to only realize its not open to the general public lol great video though!
  • @auleoo
    hey John, how do you have your build output be a separate tab in Sublime?
  • @omerreich1926
    10:25 When you found the block size, doesn't it have to be 16 when using AES with 128-bit key?
  • Wait, the hints say that the strongtoken does not contain any ';' characters, was that a mistake or did you just broke the CTF?
  • @threeMetreJim
    Request url for signup not https? Man-in-the-middle attack coming.
  • @crump404
    Start _block_fap... damn John you got me good :L