y0u_bat
[CodeGate 2013] vuln200 풀이 여기 보면 처음에 메뉴에서 buf에 400바이트 입력받을수 있다. sub_8048eeb 함수에 첫번재 인자로 buf를 넘겨주고 2번재는 fd , 3번째는 buf에 입력한 길이를 넘겨준다. sub_8048eeb함수를 보면 memcpy에서 버퍼오버플로우 취약점이 터지게 된다. 우선 저기로 갈려면 메뉴에서 write을 입력해줘야된다. write + 페이로드 이런식으로 하면 되는데 저기 memcpy 보면 아까 입력한 버퍼값 +5부터 dest로 복사된다. 즉 write가 5글자니 그뒤 페이로드부터 복사된다는 뜻.! 이제 간단히 bind shellcode로 하던지 rtl로 하던지 하면 된다. from socket import *from struct import *fr..
ROP ( Return Oriented Programming )는 BOF + 여러가지 미티게이션을 우회 할 수 있는 테크닉이다. 미티게이션이란?- 취약점을 막는게 아니라 취약점을 통한 익스플로잇을 막는것이다. 5개정도 있으며 아래 대중적으로 3개가 있다. 1. ASLR2. NX3. SSP 1. ALSR ( address sapce layout randomization의 약자) - 주소를 난수화 한다.- 거는방법 /proc/sys/kernel/randomize_va_space 값이 0이면 안걸림 1이면 반 2면 풀 aslr 해결책- 랜덤화 안해주는 주소값을 찾아서 이용하자 (정적영역)- 리눅스 32비트 로컬환경에서는 ulimit -s unlimit을 통해 스택의 크기를 풀로 늘려주자 2. NX ( Non ..
C언어 - strcpy 함수구현 ihaechan-ui-MacBook-Pro:C ihaechan$ vi strcpy.c #include void str_cpy(char *dst,char *src); int main(int argc,char *argv[]){ char buf1[] = "i'm love iu\n"; char buf2[] = "me to\n"; printf("%s\n",buf2); str_cpy(buf2,buf1); printf("%s\n",buf2); return 0;} void str_cpy(char *dst,char *src){ int i=0; while(dst[i] = src[i]) { i++; } }