[pwn] You know 0xDiablos

Can you post a link to some good tutorials on bof-ing?

I see both functions in g**ra and I love how params form words in hex :), but I don’t know the basics I guess, as payload I’m creating does nothing.
Shall I just fill the whole 384 reserved bytes and put params and f
ag function adrress just after it? Or maybe if I just put any string delimiter and some sort of JMP or call just after?

I’m stuck here as well. I created a payload that overrides ESP with the function I want to jump to address and got this when running locally:

“Hurry up and try in on server side.”

When I tried it on the instance, it just disconnects. am I missing something silly here?

Type your comment> @lamorim said:

I’m stuck here as well. I created a payload that overrides ESP with the function I want to jump to address and got this when running locally:

“Hurry up and try in on server side.”

When I tried it on the instance, it just disconnects. am I missing something silly here?

Same here. In addition, if I create the file on my machine and run the exploit again + arguments it crashes with one of the arguments as EIP. I don’t really know how to interpret this.

Whoohoo, this was a nice one! Strange though that it is rated so easy. It took me considerable effort to solve it.

kinda confused because both the printf and puts are returning absolutely no output for some reason :confused:
EDIT: just had to solve it in a probably convoluted and unintended way, but many roads lead to shellcode 8)

Anyone able to get shell via shellcode or rop system(/bin/sh) ?

Did this yesterday, its pretty easy as there is not dynamic addresses or other protections involved.

Type your comment> @laser07 said:

Can you post a link to some good tutorials on bof-ing?

I see both functions in g**ra and I love how params form words in hex :), but I don’t know the basics I guess, as payload I’m creating does nothing.
Shall I just fill the whole 384 reserved bytes and put params and f
ag function adrress just after it? Or maybe if I just put any string delimiter and some sort of JMP or call just after?

dont know where u got that number but its not correct. find the correct number and how does the stack works and u will solve it.

Just solved this problem. Had the right answer for a while but nc was the thing that was throwing me off. As a tip, if you connect with nc, make sure you hang around long enough to get a response from the server. :wink:

I think i have the correct payload but i just can not get it to work. If anybody would be willing to discuss my idea/sample and nudge me into the right direction it would be very much appreciated.

Hi there.
Any resources to start learning pwning? Or any resources to start learning hiw to solve challenges? It is easier for me to solve machines than challenges. Any info is appreciated.

1 Like

Hi there.
I`ve wrote payload and read file with some text and have segmentaion fault after it.
How i can send my payload to docker.hackthebox.eu port:32133
Then i use nc I dont have any answer. It because i have segmentation fault?

For those not using pwntools (kinda overkill for this challenge IMO):

(cat payload; echo) | nc docker.hackthebox.eu xxxx
1 Like

Type your comment> @fr0ster said:

Hi there.
I`ve wrote payload and read file with some text and have segmentaion fault after it.
How i can send my payload to docker.hackthebox.eu port:32133
Then i use nc I dont have any answer. It because i have segmentation fault?

I forgot add ‘\n’ into payload. All works.

Type your comment> @lamorim said:

I’m stuck here as well. I created a payload that overrides ESP with the function I want to jump to address and got this when running locally:

“Hurry up and try in on server side.”

When I tried it on the instance, it just disconnects. am I missing something silly here?

I’m exactly at this point and I don’t know how to fix this. I have read posts above mentioning how to send this payload via netcat, but it just won’t work.

I have created a payload. When running:
(cat payload; echo) | ./vuln
the “Hurry up…” message is returned.
Yet when I try this on the server:
(cat payload; echo) | nc docker.hackthebox.eu xxxx
I get nothing :frowning:

If anybody could give another hint, I’d be grateful :slight_smile:

@mrtn82 disassemble the function where you are jumping to see what’s going on, It’s not just jumping there.

How do you figure out the return address of the remote binary without a format string vuln, i’m missing something simple here?

There is no position independent code, so the main binary will always be loaded at the same address. However, ASLR will affect shared libraries and stack location.

got it, if someone need help, feel free to PM me

could someone please explain me where did these Zeros after the return address and after the Parameters come ???

0xfff0a90c: 0x41414141 0x41414141 0x41414141 0x41414141
0xfff0a91c: 0x080491e2 0x00000000 0x21524111 0x00000000
0xfff0a92c: 0x3f212ff3 0x00000000 0x00000000 0x00000000

got it!
really good for beginners like me :slight_smile: