본문 바로가기

Pwnable

canary leak python code 평소에는 반복문, 조건문 3개로 약간 복잡하게 했는데,이런식으로 하니깐 보기도 편하고 좋은거 같다. 더보기
TUM CTF Teaser 2015: greeter writeup This program open and read from flag.txt' toward 0x600ca0 address.how can read it?, if you know fsb, it's so simple.write the custom address and read them with fsb vulnerability. ksg@ubuntu:~/pwn/tum$ ./greeter Hi, what's your name?%x Pwn harder, ffffbdc0! 64bit system calling convention is different then 32bit.32bit operator system calling use stack(esp) ex) esp, esp+4, esp+8, esp+0xc ...but th.. 더보기
tum ctf 2015 teaser - c0unter c0unter 프로그램 안에는 이미 execl로 쉘을 실행 시키는 코드가 들어 있다. .text:00000000004006E0 mov edi, offset aBinSh ; "/bin/sh".text:00000000004006E5 sub rsp, 8.text:00000000004006E9 xor edx, edx.text:00000000004006EB mov esi, 4008D9h.text:00000000004006F0 xor eax, eax.text:00000000004006F2 call _execl => execl("/bin/sh","sh",NULL); rip value를 00000000004006E0로 하면 문제를 풀 수 있다. 아래 루틴에 rdx에는 입력한 문자가 하나 씩 들어가게 된다.현재 rsp에.. 더보기
strtap address overflow call plt -> jmp got -> jmp _dl_runtime_resolve -> call _dl_fixup메모리에 올려진 동적 C 라이브러리에서 특정 함수에 주소를 가지고 올 때의 루틴이다.dynamic section에 존재하는 strtap 주소를 참고하여, strtap 내부에 있는 함수명의 문자열을 갖고 온다. dynamic section + ? : strtapstrtap + offset(?) : "puts"puts got = puts함수의 주소가 저장됨 이런 식이다.그래서 만약 strtap에 쓰기 권한이 있어서 puts를 system으로 변경 한다면 system 함수의 주소가 puts got에 저장 된다.하지만 strtap에 권한은 READ ONLY, 그래서 우리가 Overflow 할 부분은.. 더보기
stdin@@GLIBC_2.0 그냥 이 녀석이 궁금하다. stdin을 사용하면 항상 bss 영역에 있다.일단 GLIBC는 GNU C Library이고, 2.0은 Verison이겠지 뭐..이 녀석은 libio/stdio.c라는 곳에 있고, stdio.h 헤더 파일을 import 하면 쓸 수 있겠지 뭐.._IO_FILE *stdin = (FILE *) &_IO_2_1_stdin_;_IO_FILE 구조체를 보면 아래와 같이 엉청 길게 있겠지 뭐.. struct _IO_FILE { int _flags; /* High-order word is _IO_MAGIC; rest is flags. */ #define _IO_file_flags _flags /* The following pointers correspond to the C++ stream.. 더보기
pwnable.kr uaf 보호되어 있는 글입니다. 더보기