Write up (Wargame)/Pwnable

Write up (Wargame)/Pwnable

[Dreamhack Wargame] basic_exploitation_000 Write up

쓸데없는 얘기 없이 바로 풀이로 들어가겠습니다. 아마(?) 풀이가 이미 드림핵에 나와있는 걸로 기억하기 때문에 풀이 문제는 다음과 같습니다. 환경은 다음과 같습니다. 리눅스에서 checksec 명령어 하면 뜨는 화면 32bit 파일이고 보호기법이 적용되지 않았습니다.(-fno-stack-protector) cat basic_exploitation_000.c를 통해 소스코드를 읽어봅니다. setvbuf에 관해선 이전 글을 참고하시면 좋습니다. 해당 소스코드는 buf라는 배열에 0x80바이트를 할당하고 buf의 주소값을 출력합니다. (실행해보면 주소값이 계속 바뀌는 것을 알 수 있는데 ASLR이 적용되어 있기 때문입니다.) 이후 buf에 최대 141byte만큼 문자열을 입력받습니다. 141은 그닥 중요하지 ..

Write up (Wargame)/Pwnable

[Dreamhack Wargame] Return Address Overwrite Writeup, setvbuf 함수

서론 안녕하세요, 이번에는 Return Address Overwrite라는 문제를 풀어보겠습니다. 언제동안 버퍼오버플로우만 하는건지. 이제야 다시 몇년 전의 제 진도를 따라잡는군요.. 음.. 이 글을 다 쓴 줄 알아서, 면접 때 보여줄려다가 없길래 굉장히 쪽팔렸습니다.. 쓸데없는 소리는 그만하고 풀이를 시작하겠습니다. 이 문제는 예제에서 풀었던 그대로 풀이하시면 됩니다. 풀이 (겉보기) 문제 파일을 다운로드하고 cat 명령어를 통해 소스코드를 읽습니다. setvbuf라는 함수를 자주 까먹는데 이참에 기억해둬야겠습니다. 분석은 사실상 예제를 보면 됩니다만 여기서도 적어보겠습니다. 입력이 scanf("%s",buf);인 것을 보아 여기에서 오버플로우가 일어나기 쉽습니다. %s는 입력 문자열의 길이제한을 두지..

Write up (Wargame)/Pwnable

[Dreamhack Wargame] Shell_basic Write up과 pwntools의 사용

서론 드림핵을 시작해보면서 처음 해보는 wargame인 shell_basic을 풀이해보겠습니다. 드림핵이 아무것도 모르는 사람에게 좀 불친절한건 저만 그런걸까요.. 두 가지 방법이 있고 참고한 사이트는 다음과 같습니다. https://qzqz.tistory.com/366 쉘 코드 제작 2 (Shellcode) 쉘 코드 제작 순서 1. C언어로 기능 구현 2. gdb로 역 어셈블링해서 필요한 부분을 찾음 3. 시스템 콜에 필요한 부분을 어셈블리어로 구현 4. objdump로 기계어 추출 5. null 값이 있을 경우 제거 작업 (3 qzqz.tistory.com https://ludere.tistory.com/53 [드림핵] shell_basic 풀이 / write up 드림핵에서 쉘코드에 대한 학습을 마..

Write up (Wargame)/Pwnable

[Pwnable] Pwnable.kr Write up - [bof]

안녕하세요, Pwnable.kr에서 bof문제의 풀이를 작성하겠습니다. 풀이 문제는 [bof] 입니다. BOF 문제의 제목인 bof는 프로그램 취약점 중 하나인 Buffer Overflow 의 줄임말입니다. BOF는 버퍼 즉, 변수의 공간과 같은 것을 초과하여 다음 메모리를 덮어 씌우도록 유도합니다. BOF의 개념에 대해서는 https://xixon.tistory.com/5 에서 더욱 쉽게 이해하실 수 있습니다. C 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include #include #include void func(int key){ char overflowme[32]; printf("overflow me : "); gets(overflowme); // ..

그믐​
'Write up (Wargame)/Pwnable' 카테고리의 글 목록 (8 Page)