Summary only read rax control read내부 syscall 이용 Analysis int __cdecl main(int argc, const char **argv, const char **envp) { char buf; // [rsp+0h] [rbp-30h] alarm(0x3Cu); read(0, &buf, 0x400uLL); return 0; } stack overflow가 발생한다. 하지만 writeable한 함수는 없고, 오직 read함수만 있기때문에 일반적인 rop로는 풀이가 불가능하다. Use syscall(in libc_read) 따라서 이 문제를 풀기 위해서는 read내부에 있는 syscall을 이용해야 한다. ba0bab➤ disas read Dump of assembl..
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..
- 해킹
- fastbindup
- hacking
- pwnable.tw
- pwnable
- srop
- HackCTF
- shellcoding
- pwable
- oob
- fsop
- heap
- codegate
- tcache
- SQLi
- glibc
- fastbin
- stack reusing
- ebp change
- 본선가고싶다
- TLS
- overflow
- rt_sigreturn
- exit
- FSB
- Total
- Today
- Yesterday