12:07 For those starting out in gdb, as I am: I believe what he was looking for there was x/500b (or x/500xb). It was already printing in xw (hex, word) mode, so x/500 (i.e. x/500xw) gave the *hex* of the 500 *words* at that address. b = byte h = half-byte (2 bytes) w = word (4 bytes) g = giant word (8 bytes) 👍 13:18 or, as Scooby would say, the "ROPportunities" 😜
@aminel2a2 жыл бұрын
28:25 I'm just like* why not sh(), but I was too hasty, great work john💖
@FurikuriYugi2 жыл бұрын
Awesome as always my friend.
@moosematrix Жыл бұрын
Currently on my binary exploitation journey and this was engaging!! Thank you John
@sikkavilla39962 жыл бұрын
hey john, have you tried using the command cyclic to find the padding size for your buffer? I would recommend that if you need to find the length quicker for easier calculations. Overall a great video, and keep up the good work!
@AlmostEpic892 жыл бұрын
In early today, was awesome seeing you at the Ninja one summit!
@davidyoder58902 жыл бұрын
Ninja does summits now?!
@themightiestofbooshes94432 жыл бұрын
There he is!
@timothysnyders14262 жыл бұрын
JOHN!!!!!! I don't really understand what you did.. but you talking us through this challenge is inspiring.. This must be what my employers think when I'm explaining things to them haha.. Love you man!! Keep doing this because I'm going to be here to watch and listen... Maybe stay away from binary bruv :)
@KFLawless1412 Жыл бұрын
Thank you for the awesome and educational video, John. I have a question that you or maybe someone else could answer (and I'll post it elsewhere too) Considering the stack was exectuable, could you not have done the following instead of using ROP? 1. Load the shellcode for "cat flag.txt" in your initial input instead of the 500 'C' bytes 2. For your injected return address after the buffer of 'A' bytes, simply put the address (in the stack) of the shellcode you just injected Maybe I'm missing something, but assuming that ASLR isn't enabled since you were able to discern the address of the jump instruction, you could know the address in memory of the stack location you pushed your initial input to in the first place. Maybe I'm not making any sense, but thank you again.
@getellied2 жыл бұрын
Okay, this one was really freaking cool
@secinject8142 жыл бұрын
Hey Hey My. Hammond! Excuse any typos as I am barely awake right now. But I just wanted to ask if you knew any good reverse engineering/binary exploitation books/e-books out there. Or the best youtubers that showcase, explain, and demonstrate how binary exploit/reverse exploit works. As I have focused far more on web exploit like XSS, SSRF, LFI etc... Thanks again as always for all the educational content and hope you continue being an inspiration!! Thanks!!
@fhajji8 ай бұрын
This was really interesting!
@j3r3miasmg2 жыл бұрын
I don't get it why the stack canary is not accusing *** stack smashing detected *** when you overflow the buffer, canary and the return address. Did I miss something?
@sepp1042 жыл бұрын
The stack canary is not present in the vuln-function. it is only present in some library-functions.
@j3r3miasmg2 жыл бұрын
@@sepp104 I only know it's not present because his exploit worked (I didn't looked into the binary). But if you look at 02:20, it clearly says "Canary found". Something is misleading me.
@christiansanchez4883 Жыл бұрын
@@j3r3miasmg yeah there are specific things that 'checksec' looks for when it's looking for a canary, and it found a canary "somewhere" in the file, but luckily for us, not in the vuln() function. Or for any function that would naturally be called for that matter. So there essentially is no Canary. Try using ghidra to disassemble and you'll see what i mean
@j3r3miasmg Жыл бұрын
@@christiansanchez4883 Thanks for your answer. A little bit misleading this if there is no canary in the function, but checksec did his best for us... ^^
@v01d_r34l1ty2 жыл бұрын
NICE!~ANOTHER VIDEO LETS GO JOHN!
@hugos67173 ай бұрын
omg this is fuckin cool, i love it
@PaulBeesley-x2w3 ай бұрын
Are you simple?
@lethanhat3612 жыл бұрын
What is 16 bytes of nop for ? At first, I didn't use any nop instructions before the shell code and it failed. After that i tried adding 2 bytes of nop and it worked miraculously. Does it have anything to do with stack alignment ?
@weirdstuffsforyou2 жыл бұрын
That depends. processor can jump to any point. Just for safer side we can use long NOPs so that our shell code will not get effected by it.
@zer0012 жыл бұрын
Cool, now i know that there is a Bird in my (HayStack). Nice. :)
@坂井正樹-g1y Жыл бұрын
This video is just great ! How do you write a python script to solve this challenge ?
@learn-with-noob-0072 жыл бұрын
Sir i am getting problems in Forensics last one left in 300 pts and one 400 pts
@sireynolds73342 жыл бұрын
Your Rop-Fu is strong.
@SESUAV2 жыл бұрын
Pardon my noob question but I would like to know if this exploit will work if we replace the "A" with a NOP sled.. It would automatically enter the buffer then. Would it not? We wouldn't need the short jump then
@ani-zxk9 ай бұрын
how did you automatically know to jmp 10 bytes forward?
@BryanChance2 жыл бұрын
Hmmmmm..i have no idea what's going on but it looks very interesting! And who are you talking to? LOL
@franciscolucarini87612 жыл бұрын
When the Solfire challenge?
@vanievors2476 Жыл бұрын
How did you overwrite the EIP pointer if the executable is Canary-Protected??
@christiansanchez4883 Жыл бұрын
The function we are using "vuln()" is not canary protected. A different function in the file is.
@Dr.DomAPI2 жыл бұрын
Make video on cryptography 😍
@jaroslavhromatka32572 жыл бұрын
Hi, I enjoy your content but lately you've been having issues with audio. Please, can you normalize audio before you upload the video? For example, this video sound levels are so low that in order to listen to it I had to put volume to 100% and put even +12dB gain on my external mixer... when youtube played an ad in the middle of the video, it almost made me deaf... :-( just FYI: for example I listen to movies on Netflix or videos on other KZbin channels on 25-40% volume (usually no more than 50%)...
@aminel2a2 жыл бұрын
best comment 👌
@davidyoder58902 жыл бұрын
💯
@davidbellecy17092 жыл бұрын
I have to connect my phone to a USB speaker and put both at 100%.
@Joel-gf4zl2 жыл бұрын
I'm on my phone and hear it fine at 45% volume while in the same room as a loud TV. It is a little lower, but not that low. For me anyway.
@fjr2go2 жыл бұрын
interesting!
@guilherme50942 жыл бұрын
👍
@bhagyalakshmi1053 Жыл бұрын
Wos1,2,3?
@Johnstuart20232 жыл бұрын
hey, can you tell me what does the short jump do and why do we need it in this case ?
@weirdstuffsforyou2 жыл бұрын
It's used for jumping from new_eip to NOPs as payload will get back to eax from short_jump so that we can add return address to stack for execution
@Dr.DomAPI2 жыл бұрын
Hi
@bhagyalakshmi1053 Жыл бұрын
Ret vlu Designer explain powerful
@bhagyalakshmi1053 Жыл бұрын
Binck mins root madal Bank "credit card"filles ?
@bhagyalakshmi1053 Жыл бұрын
Atti. Time files?
@bhagyalakshmi1053 Жыл бұрын
John lon please
@ani-zxk10 ай бұрын
i dont understand, why do the most interesting videos you post have get the least amount of views!
@bhagyalakshmi1053 Жыл бұрын
Please assembly code file's
@bhagyalakshmi1053 Жыл бұрын
Str
@rsvv68282 жыл бұрын
Why he took \xeb\x08
@weirdstuffsforyou2 жыл бұрын
It's for a short jump. Short jump can be used like EB 0 to EB 7F. He used eb 08 which jumped to the next address as mentioned and written as \xeb\x08.
@rsvv68282 жыл бұрын
@@weirdstuffsforyou Thanks for your answer
@bhagyalakshmi1053 Жыл бұрын
Dword ptr this fu ?
@bhagyalakshmi1053 Жыл бұрын
Emi lon please request 🎄🎁 give me lon please request
@SplitUnknown2 жыл бұрын
Ohh my god how do you do that @john 🫣 To hard for me to understand 😅🤣
@vanievors2476 Жыл бұрын
How did you overwrite the EIP pointer if the executable is Canary-Protected??
@christiansanchez4883 Жыл бұрын
If you disassemble the source code in ghidra, you'll see that there is no canary in the vuln() function