Pulling an all nighter to try and roll the DPSD over and get back on a semi-reasonable sleep schedule, so I'm putting an hour into a pwnable, might tweet a whole bunch of findings etc in the hope that someone has either good advice or learns something.
-
Show this thread
-
Ok, so, getting started, I'm working on the brainf*ck challenge on http://pwnable.kr , its in the second tier of difficulty (i.e. second-easiest) since I'm just getting started with app-level pwning. Was told this challenge is particularly fun.pic.twitter.com/eaqpZ1I0w8
2 replies 0 retweets 6 likesShow this thread -
Alright, so, grabbing the files, we have "bf", which binwalk says is a pretty tiny executable with a blob encrypted via blowfish-448, and "bf_libc.so". I haven't poked at them before, but usually .so implies shared object. Unsure if in this context its normal for a .so to be ELF?pic.twitter.com/csrxYFO2fh
2 replies 0 retweets 2 likesShow this thread -
So, I'll definitely be learning at least one thing here, which is how shared objects are called in linux dynamic linking. Whether or not that will end up playing into the pwn or not, i'm unsure. Before we figure out how to move forward, I like to just trying running the app so...
1 reply 0 retweets 1 likeShow this thread -
Running the app, we're immediately presented with a brainf*ck interpreter. This is a problem, because I have never written any brainf*ck before and don't like esoteric langs. I try to copy parts of the "hello, world!" script from wikipedia, with... mixed results.pic.twitter.com/PslGWeUtUl
2 replies 0 retweets 2 likesShow this thread -
so, first off tried to quickly print off just "01". + is add 1 to cell, . is write cell as ascii to stdout, and > is shift cell. Of course, the first program is me thinking in decimal instead of hex :/ Anyway, since we dont have [] we have no loops or branches....pic.twitter.com/NpW0Lgt2Zz
1 reply 0 retweets 1 likeShow this thread -
basically this "interpreter" is just a calculator. exploiting this will absolutely be interesting.
1 reply 0 retweets 2 likesShow this thread -
Benefits of working in an application level space: stuff loads into IDA super easily. Even get some symbols and libc stuff. Throw it into hexrays and we immediately get a clean dissassembly. I have no idea what "p" or "tape" are but i have a feeling we'll find out soon.pic.twitter.com/65JVYGfok6
3 replies 1 retweet 2 likesShow this thread
I knew it was going to be brainfuck just from 'p' and 'tape'. Depending on how evil it is that pwnable could get very interesting.
-
-
Replying to @marcan42
Oh it definitely is. This is a "rookie" one because im just looking for something simple to practice, but the encrypted blob in memory makes me think the flags in there. and since the actual target is on a server, i'd need to create a blowfish decryption payload. having fun.
1 reply 0 retweets 0 likes -
Replying to @hedgeberg
If it's an encryption problem, just dump the ciphertext and key? I was thinking more like ASLR and W^X requiring computing addresses from a leak in brainfuck to craft the payload without interaction.
1 reply 0 retweets 0 likes - Show replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.