I recently found out about a cool CTF site called “MicroCorruption“. They provide CTFs revolving around assembly language, disassembly/reverse engineering, etc. And it looks like a lot of them take advantage of real-world vulnerabilities and sometimes even string multiple vulnerabilities together on different levels. So far I’ve completed the tutorial, and the first level which is named “New Orleans” (the focus of this write-up).
Opening up the level, we are greeted with a fun little story. I love the extra work these guys put in just to make these more fun! So from this little readme though, we can gather that this one actually uses a password. The only reason I say this, is because the tutorial level only looked for a password of a certain character length.
From there we see that in main there is a function being called right off the bat called “create_password”. I’m going to assume it’s pretty important, so let’s take a look at it.
The function itself points r15 towards an address in memory. At this point, make sure you’ve run your program once and haven’t reset it, because this spot in memory won’t exist until then. Now we just need to go find #0x2400 in our “Live Memory Dump” section.
And there it is! Just sitting there, waiting for us to grab it. We’ll need to test it first though.
And they’re in! I know this was a little short, but there will be more of these levels as I work through them. Thanks for reading!